跳至内容

在 AWX 启动时启用 LDAP 集成(已弃用)

如下所示是一个额外的设置示例。所有可能的选项都可以在此处找到:https://django-auth-ldap.readthedocs.io/en/latest/reference.html#settings

有关如何配置额外设置的更多信息,请参阅额外设置页面。

提示

要信任 LDAP 服务器的自定义证书颁发机构,或指定密码 LDAP 绑定 DN,请参阅信任自定义证书颁发机构页面。

通过 extra_settings_files 配置 LDAP 集成

创建一个具有任意名称的 Python 文件,例如 custom_ldap_settings.py,并添加以下内容作为示例

custom_ldap_settings.py
AUTH_LDAP_SERVER_URI = "ldaps://ad01.abc.com:636 ldaps://ad02.abc.com:636"
AUTH_LDAP_BIND_DN = "CN=LDAP User,OU=Service Accounts,DC=abc,DC=com"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "DC=abc,DC=com",
    ldap.SCOPE_SUBTREE,
    "(sAMAccountName=%(user)s)",
)
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
    "OU=Groups,DC=abc,DC=com",
    ldap.SCOPE_SUBTREE,
    "(objectClass=group)",
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail",
}
AUTH_LDAP_REQUIRE_GROUP = "CN=operators,OU=Groups,DC=abc,DC=com"
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_superuser": ["CN=admin,OU=Groups,DC=abc,DC=com"],
}
AUTH_LDAP_ORGANIZATION_MAP = {
    "abc": {
        "admins": "CN=admin,OU=Groups,DC=abc,DC=com",
        "remove_admins": False,
        "remove_users": False,
        "users": True,
    }
}
AUTH_LDAP_TEAM_MAP = {
    "admin": {
        "organization": "abc",
        "remove": True,
        "users": "CN=admin,OU=Groups,DC=abc,DC=com",
    }
}

使用上述 Python 文件的内容创建一个 ConfigMap。

kubectl create configmap custom-ldap-settings \
  --from-file /PATH/TO/YOUR/custom_ldap_settings.py

然后将此 ConfigMap 指定给 extra_settings_files 参数。

spec:
  extra_settings_files:
    configmaps:
      - name: custom-ldap-settings
        key: custom_ldap_settings.py

注意

如果您在 Python 文件中嵌入了一些敏感信息,例如密码,您可以创建一个 Secret 而不是 ConfigMap 并将其传递。

kubectl create secret generic custom-ldap-settings \
  --from-file /PATH/TO/YOUR/custom_ldap_settings.py
spec:
  extra_settings_files:
    secrets:
      - name: custom-ldap-settings
        key: custom_ldap_settings.py

通过 extra_settings 配置 LDAP 集成

注意

这些值将插入 Python 文件中,因此请密切注意哪些值需要引号,哪些不需要。

spec:
  extra_settings:
    - setting: AUTH_LDAP_SERVER_URI
      value: >-
        "ldaps://ad01.abc.com:636 ldaps://ad02.abc.com:636"

    - setting: AUTH_LDAP_BIND_DN
      value: >-
        "CN=LDAP User,OU=Service Accounts,DC=abc,DC=com"

    - setting: AUTH_LDAP_USER_SEARCH
      value: 'LDAPSearch("DC=abc,DC=com",ldap.SCOPE_SUBTREE,"(sAMAccountName=%(user)s)",)'

    - setting: AUTH_LDAP_GROUP_SEARCH
      value: 'LDAPSearch("OU=Groups,DC=abc,DC=com",ldap.SCOPE_SUBTREE,"(objectClass=group)",)'

    - setting: AUTH_LDAP_GROUP_TYPE
      value: 'GroupOfNamesType()'

    - setting: AUTH_LDAP_USER_ATTR_MAP
      value: '{"first_name": "givenName","last_name": "sn","email": "mail"}'

    - setting: AUTH_LDAP_REQUIRE_GROUP
      value: >-
        "CN=operators,OU=Groups,DC=abc,DC=com"
    - setting: AUTH_LDAP_USER_FLAGS_BY_GROUP
      value: {
        "is_superuser": [
          "CN=admin,OU=Groups,DC=abc,DC=com"
        ]
      }

    - setting: AUTH_LDAP_ORGANIZATION_MAP
      value: {
        "abc": {
          "admins": "CN=admin,OU=Groups,DC=abc,DC=com",
          "remove_users": false,
          "remove_admins": false,
          "users": true
        }
      }

    - setting: AUTH_LDAP_TEAM_MAP
      value: {
        "admin": {
          "remove": true,
          "users": "CN=admin,OU=Groups,DC=abc,DC=com",
          "organization": "abc"
        }
      }