單一登入 single-sign-on
單一登入(SSO)可讓使用者在提供一次驗證認證(例如使用者名稱和密碼)之後存取多個系統。 另一個系統(稱為受信任的驗證者)會執行驗證並提供使用者認證的Experience Manager。 Experience Manager會檢查並強制使用者的存取許可權(即決定允許使用者存取哪些資源)。
SSO驗證處理常式服務( com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler
)處理受信任的驗證器所提供的驗證結果。 SSO驗證處理常式會依此順序在下列位置搜尋SSO識別碼(SSID)作為特殊屬性的值:
- 請求標頭
- 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
disp_iis.ini
設定: (請參閱 使用Microsoft® Internet Information Server安裝Dispatcher 以取得完整詳細資訊)servervariables=1
(將IIS伺服器變數作為請求標頭轉送給遠端執行個體)replaceauthorization=1
(將任何名為「Authorization」的標頭(「Basic」除外)取代為其「Basic」同等標頭)
-
disable 匿名存取
-
啟用 整合式Windows驗證
您可以使用來檢視將哪個驗證處理常式套用到內容樹的任何區段。 驗證者 Felix主控台選項;例如:
http://localhost:4502/system/console/slingauth
系統會先查詢最符合路徑的處理常式。 例如,如果您為路徑設定處理常式A /
和路徑的處理常式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
至/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
至/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();