在AEM表单中启用单点登录 enabling-single-sign-on-in-aem-forms
AEM表单提供两种启用单点登录(SSO)的方法 — HTTP标头和SPNEGO。
实施SSO时,AEM Forms用户登录页面不是必需的,并且如果用户已经通过其公司门户进行了身份验证,则不会显示。
如果AEM Forms无法使用其中任一方法验证用户,则会将用户重定向到登录页面。
使用HTTP标头启用SSO enable-sso-using-http-headers
您可以使用“门户配置”页面在应用程序和支持通过HTTP标头传送身份的任何应用程序之间启用单点登录(SSO)。 实施SSO时,AEM Forms用户登录页面不是必需的,并且如果用户已经通过其公司门户进行了身份验证,则不会显示。
您也可以使用SPNEGO启用SSO。 (请参阅使用SPNEGO启用SSO。)
-
在管理控制台中,单击设置>用户管理>配置>配置门户属性。
-
选择“是”以启用SSO。 如果选择“否”,则页面上的其余设置将不可用。
-
根据需要设置页面上的其余选项,然后单击“确定”:
-
SSO类型: (必需)选择HTTP标头以使用HTTP标头启用SSO。
-
用户标识符的 HTTP标头: (必需)标头的名称,其值包含登录用户的唯一标识符。 “用户管理”使用此值在“用户管理”数据库中查找用户。 从此标头获取的值应当与从LDAP目录同步的用户的唯一标识符匹配。 (请参阅用户设置。)
-
标识符值映射到用户的用户ID,而不是用户的唯一标识符: 将用户的唯一标识符值映射到用户ID。 如果用户的唯一标识符是一个二进制值,无法通过HTTP标头轻松传播,请选择此选项(例如,如果从Active Directory同步用户,则选择objectGUID)。
-
域 的 HTTP标头(非必需)其值包含域名的标头名称。 仅当没有单个HTTP标头唯一标识用户时,才使用此设置。 当存在多个域且唯一标识符仅在一个域中唯一时,可使用此设置。 在这种情况下,请在此文本框中指定标头名称,并在域映射框中指定多个域的域映射。 (请参阅编辑和转换现有域。)
-
域映射: (必需)以 标头值=域名 的格式指定多个域的映射。
例如,考虑以下情况:域的HTTP标头是domainName,它可以具有domain1、domain2或domain3值。 在这种情况下,请使用域映射将domainName值映射到User Management域名。 每个映射必须位于不同的行上:
domain1=UMdomain1
domain2=UMdomain2
domain3=UMdomain3
-
配置允许的引用 configure-allowed-referers
有关配置允许的引用程序的步骤,请参阅配置允许的引用程序。
将角色分配给用户和组
单击了解将角色分配给用户和组的步骤。
使用SPNEGO启用SSO enable-sso-using-spnego
在Windows环境中使用Active Directory作为LDAP服务器时,可以使用简单和受保护的GSSAPI协商机制(SPNEGO)来启用单点登录(SSO)。 启用SSO后,AEM Forms用户登录页面不是必需的,因此不会显示。
您还可以使用HTTP标头启用SSO。 (请参阅使用HTTP标头启用SSO。)
-
决定使用哪个域来启用SSO。 AEM Forms Server和用户必须是同一Windows域或受信任域的一部分。
-
在Active Directory中,创建一个代表AEM Forms Server的用户。 (请参阅创建用户帐户。) 如果要将多个域配置为使用SPNEGO,请确保每个用户的密码不同。 如果密码不同,则SPNEGO SSO不起作用。
-
映射服务主体名称。 (请参阅映射服务主体名称(SPN)。)
-
配置域控制器。 (请参阅防止Kerberos完整性检查失败。)
-
添加或编辑企业域,如添加域或编辑和转换现有域中所述。 创建或编辑企业域时,请执行以下任务:
-
添加或编辑包含Active Directory信息的目录。
-
将LDAP添加为身份验证提供程序。
-
将Kerberos添加为身份验证提供程序。 在Kerberos的“新建身份验证”或“编辑身份验证”页面上提供以下信息:
- 身份验证提供程序: Kerberos
- DNS IP: 运行AEM表单的服务器的DNS IP地址。 您可以在命令行上运行
ipconfig/all
来确定此IP地址。 - KDC主机: 用于身份验证的Active Directory服务器的完全限定主机名或IP地址
- 服务用户: 传递到KtPass工具的服务主体名称(SPN)。 在前面使用的示例中,服务用户是
HTTP/lcserver.um.lc.com
。 - 服务领域: Active Directory的域名。 在前面使用的示例中,域名是
UM.LC.COM.
- 服务密码: 服务用户的密码。 在前面使用的示例中,服务密码为
password
。 - 启用SPNEGO: 允许将SPNEGO用于单点登录(SSO)。 选择此选项。
-
-
配置SPNEGO客户端浏览器设置。 (请参阅配置SPNEGO客户端浏览器设置。)
创建用户帐户 create-a-user-account
-
在SPNEGO中,将服务注册为域控制器上Active Directory中的用户,以表示AEM表单。 在域控制器上,转到“开始”菜单>管理工具> Active Directory用户和计算机。 如果“Administrative Tools(管理工具)”不在“Start(开始)”菜单中,请使用控制面板。
-
单击Users文件夹以显示用户列表。
-
右键单击用户文件夹,然后选择“新建”>“用户”。
-
键入“名字/姓氏”和“用户登录名” ,然后单击“下一步”。 例如,设置以下值:
- 名字: umspnego
- 用户登录名: spnegodemo
-
键入密码。 例如,将其设置为 密码。 确保选中了“密码永不过期”并且未选中其他选项。
-
单击“下一步”,然后单击“完成”。
映射服务主体名称(SPN) map-a-service-principal-name-spn
-
获取KtPass实用程序。 此实用程序用于将SPN映射到REALM。 您可以将KtPass实用程序作为Windows Server工具包或资源工具包的一部分获取。 (请参阅Windows Server 2003 Service Pack 1支持工具。)
-
在命令提示符下,使用以下参数运行
ktpass
:ktpass -princ HTTP/
主机@
领域-mapuser
用户例如,键入以下文本:
ktpass -princ HTTP/lcserver.um.lc.com@UM.LC.COM -mapuser spnegodemo
必须提供的值描述如下:
主机: Forms服务器的完全限定名或任何唯一URL。 在此示例中,它被设置为lcserver.um.lc.com。
领域: 域控制器的Active Directory领域。 在此示例中,它被设置为UM.LC.COM。 确保以大写字符输入领域。 要确定Windows 2003的领域,请完成以下步骤:
- 右键单击“我的电脑”并选择“属性”
- 单击“Computer Name(计算机名称)”选项卡。 域名值是领域名。
用户: 在上一个任务中创建的用户帐户的登录名。 在本例中,它被设置为spnegedemo。
如果您遇到此错误:
DsCrackNames returned 0x2 in the name entry for spnegodemo.
ktpass:failed getting target domain for specified user.
尝试将用户指定为spnegodemo@um.lc.com:
ktpass -princ HTTP/lcserver.um.lc.com@UM.LC.COM -mapuser spnegodemo
防止Kerberos完整性检查失败 prevent-kerberos-integrity-check-failures
- 在域控制器上,转到“开始”菜单>管理工具> Active Directory用户和计算机。 如果“Administrative Tools(管理工具)”不在“Start(开始)”菜单中,请使用控制面板。
- 单击Users文件夹以显示用户列表。
- 右键单击在前一个任务中创建的用户帐户。 在此示例中,用户帐户为
spnegodemo
。 - 单击重置密码。
- 键入并确认您之前键入的相同密码。 在此示例中,它被设置为
password
。 - 取消选择“下次登录时更改密码”,然后单击“确定”。
配置SPNEGO客户端浏览器设置 configuring-spnego-client-browser-settings
要使基于SPNEGO的身份验证正常工作,客户端计算机必须是创建用户帐户的域的一部分。 您还必须将客户端浏览器配置为允许基于SPNEGO的身份验证。 此外,需要基于SPNEGO的身份验证的站点必须是受信任的站点。
如果使用计算机名(如https://lcserver:8080 )访问服务器,则Internet Explorer不需要任何设置。 如果您输入的URL不包含任何点(“。”),则Internet Explorer会将该站点视为本地Intranet站点。 如果站点使用了完全限定的名称,则必须将该站点添加为受信任的站点。
配置Internet Explorer 6.x
- 转到“工具”>“Internet选项”,然后单击“安全”选项卡。
- 单击“本地Intranet”图标,然后单击“站点”。
- 单击高级,然后在“将此网站添加到区域”框中键入Forms服务器的URL。 例如,类型
https://lcserver.um.lc.com
- 单击“确定”,直到关闭所有对话框。
- 通过访问AEM Forms服务器的URL测试配置。 例如,在浏览器URL框中,键入
https://lcserver.um.lc.com:8080/um/login?um_no_redirect=true
配置Mozilla Firefox
-
在浏览器URL框中,键入
about:config
出现about:config - Mozilla Firefox对话框。
-
在“筛选器”框中,键入
negotiate
-
在显示的列表中,单击network.negotiate-auth.trusted-uri ,然后键入以下适合您环境的命令之一:
.um.lc.com
— 将Firefox配置为允许任何以um.lc.com结尾的URL使用SPNEGO。 确保包括点(“。”) 在开始的时候。lcserver.um.lc.com
— 将Firefox配置为仅允许特定服务器的SPNEGO。 此值不能以点(“。”)开头。 -
通过访问应用程序测试配置。 此时应会显示目标应用程序的欢迎页面。
单击了解将角色分配给用户和组的步骤。
将角色分配给用户和组 assign-roles-to-users-groups
- 在JEE环境中登录到您的AEM Forms 。
- 在管理控制台中,单击设置>用户管理>域管理。
- 选择您的域配置,例如LDAP ,然后单击它。 您可以在“目录”中找到所有已创建的用户和组。 如果需要,您可以创建新用户或组。
- 单击验证,在新页上选择一个验证提供程序,如LDAP。
- 导航到“域管理”页,选择LDAP,然后单击 立即同步 以将目录与您配置的身份验证方案同步,以便访问AEM。
- 转到“用户管理”,然后单击“用户和组”。
- 搜索具有其名称的用户或组,如下图所示。
- 根据需要将角色分配给用户或组。