單一登入

單一登入(SSO)可讓使用者在提供驗證憑證(例如使用者名稱和密碼)一次後,存取多個系統。 單獨的系統(稱為受信驗證器)執行該驗證並提供與用戶證書的Experience Manager。 Experience Manager會檢查並強制使用者的存取權限(亦即決定允許使用者存取哪些資源)。

SSO驗證處理程式服務(com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler)會處理受信任驗證程式提供的驗證結果。 SSO驗證處理程式會依此順序在下列位置中,將ssid(SSO標識符)搜索為特殊屬性的值:

  1. 請求標題
  2. Cookie
  3. 請求參數

找到值時,搜索完成,並使用此值。

配置以下兩個服務以識別儲存ssid的屬性名稱:

  • 登錄模組。
  • SSO驗證服務。

您必須為兩個服務指定相同的屬性名稱。 該屬性包含在提供給Repository.loginSimpleCredentials中。 屬性的值是不相關的,忽略的,僅存在就很重要。

配置SSO

要配置實例的AEMSSO,您需要配置SSO驗證處理程式:

  1. 使用時,有AEM幾種管理此類服務配置設定的方法;如需詳細資訊和建議的實務,請參閱設定OSGi

    例如,對於NTLM集:

    • 路徑: 視需要;例如, /

    • 標題名稱: LOGON_USER

    • ID格式: ^<DOMAIN>\\(.+)$

      其中<*DOMAIN*>會由您自己的網域名稱取代。
      針對CoSign:

    • 路徑: 視需要;例如, /

    • 標題名稱:remote_user

    • ID格式:原

    對於SiteMinder:

    • 路徑: 視需要;例如, /
    • 標題名稱: SM_USER
    • ID格式:現狀
  2. 確認單一登入功能是否可視需要運作;包括授權。

注意

請確定在設定SSO時,使AEM用者無法直接存取。

透過要求使用者執行您的SSO系統代理程式的Web伺服器,可確保使用者無法直接傳送標題、Cookie或參數,讓使用者受到信任AEM,因為代理程式會在從外部傳送時篩選這些資訊。

任何可直接存取您AEM的例項而不需透過Web伺服器的使用者,都可透過傳送標題、Cookie或參數(如果已知名稱),以當成任何使用者。

此外,請確定標題、Cookie和請求參數名稱中,您只需設定SSO設定所需的名稱。

注意

單一登入通常與LDAP搭配使用。

注意

如果您還將Dispatcher與Microsoft Internet Information Server(IIS)一起使用,則需要在以下位置進行其他配置:

  • disp_iis.ini
  • IIS

disp_iis.ini設定中:
(有關完整詳細資訊,請參見將Dispatcher與Microsoft Internet Information Server一起安裝)

  • servervariables=1 (將IIS伺服器變數轉發為請求標題至遠端例項)
  • replaceauthorization=1 (以其「Basic」等值項取代任何名為「Authorization」(授權)以外的標題)

在IIS中:

  • 禁用​匿名訪問

  • 啟用​整合Windows身份驗證

您可以使用Felix Console的​Authenticator​選項,查看哪個驗證處理常式正套用至內容樹的任何區段;例如:

http://localhost:4502/system/console/slingauth

會先查詢最符合路徑的處理常式。 例如,如果您為路徑/配置handler-A,為路徑/content配置handler-B,則對/content/mypage.html的請求會先查詢handler-B。

screen_shot_2012-02-15at21006pm

範例

對於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&reg; 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

注意

在瀏覽器中使用請求參數時,您只會看到部分HTML —— 不含CSS。 這是因為HTML的所有請求都是在沒有請求參數的情況下提出的。

使用SSO時,登入和登出會在外部處理,因此AEM.自己的登出連結不再適用,應該移除。

歡迎畫面上的登出連結可依照下列步驟移除。

  1. 覆蓋/libs/cq/core/components/welcome/welcome.jsp/apps/cq/core/components/welcome/welcome.jsp

  2. 從jsp中刪除以下部件。

    <a href="#" onclick="signout('<%= request.getContextPath() %>');" class="signout"><%= i18n.get("sign out", "welcome screen") %>

若要移除右上角使用者個人選單中可用的登出連結,請遵循下列步驟:

  1. 覆蓋/libs/cq/ui/widgets/source/widgets/UserInfo.js/apps/cq/ui/widgets/source/widgets/UserInfo.js

  2. 從檔案中刪除以下部件:

    menu.addMenuItem({
        "text":CQ.I18n.getMessage("Sign out"),
        "cls": "cq-userinfo-logout",
        "handler": this.logout
    });
    menu.addSeparator();
    

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now