简单身份验证和安全层 (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 标识存储类型的新用户和群组存储属性
Portal for ArcGIS
标识存储配置
SASL GSS 身份验证机制可用于
Windows
或 LDAP 标识存储类型,并适用于门户层和 web 层身份验证。 此机制还包括维护和刷新 Active Directory 或 LDAP 群组成员资格。
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
。 必须设置为
支持时
或
从不
。