单点登录 single-sign-on
单点登录(SSO)允许用户在提供一次身份验证凭据(如用户名和密码)后访问多个系统。 单独的系统(称为受信任的验证器)执行验证并提供Experience Manager和用户凭据。 Experience Manager检查并强制用户访问权限(即确定允许用户访问哪些资源)。
SSO身份验证处理程序服务( com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler
)处理受信任的身份验证器提供的身份验证结果。 SSO身份验证处理程序将ssid(SSO标识符)作为特殊属性的值以此顺序搜索到以下位置:
- 请求标头
- Cookie
- 请求参数
找到值后,搜索即已完成,并且会使用此值。
配置以下两项服务以识别存储ssid的属性的名称:
- 登录模块。
- SSO身份验证服务。
您必须为两个服务指定相同的属性名称。 属性包含在 SimpleCredentials
提供给 Repository.login
. 属性值不相关且被忽略,仅存在属性值很重要且经过验证。
配置SSO configuring-sso
要为AEM实例配置SSO,您需要配置 SSO身份验证处理程序:
-
使用AEM时,可通过多种方法来管理此类服务的配置设置;请参阅 配置OSGi 以了解更多详细信息和建议的实践。
例如,对于NTLM集:
-
路径: (视需要);例如,
/
-
标题名称:
LOGON_USER
-
ID格式:
^<DOMAIN>\\(.+)$
其中
<*DOMAIN*>
将替换为您自己的域名。
对于CoSign: -
路径: (视需要);例如,
/
-
标题名称:remote_user
-
ID格式: 原样
对于SiteMinder:
- 路径: (视需要);例如,
/
- 标题名称: SM_USER
- ID格式:原样
-
-
确认单点登录可按要求运行;包括授权。
disp_iis.ini
- IIS
servervariables=1
(将IIS服务器变量作为请求标头转发到远程实例)replaceauthorization=1
(将除“Basic”之外的任何名为“Authorization”的标头替换为其“Basic”等效项)
-
禁用 匿名访问
-
启用 集成的Windows身份验证
您可以使用 身份验证器 Felix Console选项;例如:
http://localhost:4502/system/console/slingauth
首先查询最匹配路径的处理程序。 例如,如果为路径配置handler-A /
和handler-B /content
,然后请求 /content/mypage.html
将先查询处理程序B。
示例 example
对于Cookie请求(使用URL http://localhost:4502/libs/wcm/content/siteadmin.html
):
GET /libs/cq/core/content/welcome.html HTTP/1.1
Host: localhost:4502
Cookie: TestCookie=admin
使用以下配置:
-
路径:
/
-
标题名称:
TestHeader
-
Cookie名称:
TestCookie
-
参数名称:
TestParameter
-
ID格式:
AsIs
答复是:
HTTP/1.1 200 OK
Connection: Keep-Alive
Server: Day-Servlet-Engine/4.1.24
Content-Type: text/html;charset=utf-8
Date: Thu, 23 Aug 2012 09:58:39 GMT
Transfer-Encoding: chunked
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Welcome to Adobe® CQ5</title>
....
如果您请求:http://localhost:4502/libs/cq/core/content/welcome.html?TestParameter=admin
或者,您也可以使用以下curl命令发送 TestHeader
标题至 admin:
curl -D - -H "TestHeader: admin" http://localhost:4502/libs/cq/core/content/welcome.html
删除AEM注销链接 removing-aem-sign-out-links
使用SSO时,登录和注销在外部进行处理,这样AEM本身的注销链接便不再适用,应该删除。
可通过以下步骤删除欢迎屏幕上的注销链接。
-
叠加
/libs/cq/core/components/welcome/welcome.jsp
to/apps/cq/core/components/welcome/welcome.jsp
-
从jsp中删除以下部分。
<a href="#" onclick="signout('<%= request.getContextPath() %>');" class="signout"><%= i18n.get("sign out", "welcome screen") %>
要删除右上角用户个人菜单中可用的注销链接,请执行以下步骤:
-
叠加
/libs/cq/ui/widgets/source/widgets/UserInfo.js
to/apps/cq/ui/widgets/source/widgets/UserInfo.js
-
从文件中删除以下部分:
code language-none menu.addMenuItem({ "text":CQ.I18n.getMessage("Sign out"), "cls": "cq-userinfo-logout", "handler": this.logout }); menu.addSeparator();