简单身份验证和安全层 (SASL) 是 Internet 协议中身份验证和数据安全的框架。 从 10.9 版本开始,ArcGIS Enterprise 支持通过 Windows Active Directory 或其他 LDAP 提供者使用 GSS/Kerberos v5 SASL 机制将 SASL 作为身份验证的方式。
使用实例
当组织的域控制器被配置为需要与 LDAP 服务器进行签名认证时,通常使用 SASL GSS 认证。 此要求仅适用于通过 389 或 3268 端口在不加密的情况下连接到 LDAP 服务器的情况。 如果所有域控制器都完全支持 LDAPS,则不需要此签名要求。
要求
要使用 ArcGIS Enterprise 配置 SASL 身份验证,需要满足一些要求。
Kerberos 配置文件。
需要一个 Kerberos 配置文件向 Portal for ArcGIS 提供有关 Kerberos 域控制器的信息。 信息必须保存在文本文件中,例如 krb5.conf。 文本文件的副本必须存储在 Portal for ArcGIS 服务帐户可以访问的位置。 示例包括门户安装文件夹或门户内容目录。 门户内容目录的默认位置为 /arcgis/portal/usr。
这个配置文件是 Kerberos 的标准文件,应该包括默认的配置设置和每个 Kerberos 域的一个或多个 Kerberos 域控制器信息。 示例配置文件如下所示。
[libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_ccache_name = KEYRING:persistent:%{uid} dns_lookup_kdc = true default_realm = EXAMPLE.COM default_checksum = rsa-md5 [realms] EXAMPLE.COM = { kdc = domaincontroller.example.com admin_server = domaincontroller.example.com } [domain_realm] example.com = EXAMPLE.COM .example.com = EXAMPLE.COM
支持 Windows 和 LDAP 标识存储类型的新用户和群组存储属性
- "saslAuthenticationScheme" - 定义 Portal for ArcGIS 用于通过 LDAP 连接到域控制器的 SASL 身份验证方案。 在 10.9 版本,GSSAPI 是唯一受支持的 SASL 身份验证方案。 示例:"saslAuthenticationScheme": "GSSAPI"
- "krb5ConfigFilePath" - 定义上述 Kerberos 配置文本文件的路径。 该文件必须位于 Portal for ArcGIS 服务帐户具有读取权限的位置。
示例:"krb5ConfigFilePath": "/data/arcgis/krb5.conf"
Portal for ArcGIS 标识存储配置
SASL GSS 身份验证机制可用于 Windows 或 LDAP 标识存储类型,并适用于门户层和 web 层身份验证。 此机制还包括维护和刷新企业群组成员资格。
LDAP 用户和群组
当配置 Portal for ArcGIS 以使用 LDAP 用户和群组 SASL 身份验证时,必须添加 "saslAuthenticationScheme" 和 "krb5ConfigFilePath" 属性,且 "user" 属性中列出的用户名的格式必须更改为 username@realm。 ldapURLForUsers 和 ldapURLForRoles 必须包含 Kerberos 域控制器的完全限定域名 (FQDN)。 此处不支持使用 IP 地址。 如果将使用门户层身份验证,应将 "usernameAttribute" 设置为 "userPrincipalName",以使用户名的格式正确。 以下是使用 LDAP 的用户和群组存储配置
示例用户存储配置
{ "type": "LDAP", "properties": { "ldapURLForUsers": "ldap://kdc1.example.com:389/OU=users,DC=example,DC=com", "saslAuthenticationScheme": "GSSAPI", "krb5ConfigFilePath": "/data/arcgis/krb5.conf", "user": "entuser@example.com", "userPassword": "encrypted_password", "isPasswordEncrypted": "true", "usernameAttribute": "sAMAccountName", "userGivenNameAttribute": "givenName", "userSurnameAttribute": "sn", "userEmailAttribute": "mail", "caseSensitive": "false” } }
示例群组存储配置
{ "type": "LDAP", "properties": { "ldapURLForUsers": "ldap://kdc1.example.com:389/OU=users,DC=example,DC=com", “ldapURLForRoles”: "ldap://kdc1.example.com:389/OU=groups,DC=example,DC=com", "saslAuthenticationScheme": "GSSAPI", "krb5ConfigFilePath": "/data/arcgis/krb5.conf", "user": "entuser@example.com", "userPassword": "encrypted_password", "isPasswordEncrypted": "true", "usernameAttribute": "sAMAccountName", "caseSensitive": "false” } }
其他注意事项
当 LDAP 用户使用门户层身份验证登录至门户时,用户名的格式必须是 username@realm,例如 testuser@example.com。
Kerberos 域控制器设置
由于 Java 的限制,LDAP 服务器通道绑定令牌要求的域控制器设置不能设置为始终。 有关详细信息,请参阅 JVM Bug 8245527。 必须设置为支持时或从不。