現在表示中:

シングルサインオン(SSO)は、ユーザーが認証の資格情報(ユーザー名、パスワードなど)を一度入力すれば、その後は複数のシステムにアクセスできるようにするものです。個別のシステム(信頼された認証として知られる)が認証を実行し、Adobe Experience Manager に対してユーザーの資格情報を提供します。Adobe Experience Manager がそのユーザーのアクセス権を確認し、適用します(つまり、ユーザーがアクセスを許可されているリソースを決定します)。

SSO 認証ハンドラーサービス(com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler)は、信頼された認証から提供される認証の結果を処理します。SSO 認証ハンドラーは、特殊な属性の値である ssid(SSO ID)を、以下の場所から(この順番で)検索します。

  1. 要求ヘッダー
  2. cookie
  3. 要求パラメーター

値が見つかった場合は、検索を終了し、その値を使用します。

以下の 2 つのサービスについて、この ssid が格納された属性の名前を認識できるように設定します。

  • ログインモジュール
  • SSO 認証サービス

この両方のサービスに対して、同じ属性名を指定する必要があります。この属性は、Repository.login に指定された SimpleCredentials に含まれます。この属性の値は重要ではなく、無視されます。値が存在するかどうかだけが重要であり、存在の有無が確認されます。

SSO の設定

AEM インスタンス用に SSO を設定するには、SSO Authentication Handler を設定する必要があります。

  1. AEM と連携する場合は、いくつかの方法でこのようなサービスの設定を管理できます。詳細および推奨事項については、OSGi の設定を参照してください。

    例えば、NTLM の場合は以下のように設定します。

    • パス:必要に応じて設定します(「/」など)。
    • ヘッダー名LOGON_USER 
    • ID 形式^<DOMAIN>\\(.+)$
      <DOMAIN> を、独自のドメイン名に置き換えてください。

    CoSign の場合:

    • パス:必要に応じて設定します(「/」)など。
    • ヘッダー名:remote_user
    • ID 形式:AsIs

    SiteMinder の場合:

    • パス:必要に応じて設定します(「/」)など。
    • ヘッダー名:SM_USER
    • ID 形式:AsIs
  2. 認証を含め、シングルサインオンが要求どおりに動作していることを確認します。

警告:

SSO を設定した場合は、ユーザーが直接 AEM にアクセスできないようにしてください。

SSO システムのエージェントを実行する Web サーバー経由でアクセスするようにユーザーに要求します。そうすることで、ユーザーが AEM から信頼されるためのヘッダー、cookie またはパラメーターを直接送信できなくなります。そのような情報が外部から送信された場合に、エージェントでフィルターがかかるからです。

Web サーバーを経由せずに AEM インスタンスに直接アクセスできるユーザーは、別の既知のユーザーのヘッダー、cookie またはパラメーターを送信することで、そのユーザーとして行動できます。

ヘッダー、cookie および要求パラメーターの名前についても、SSO 設定で必要となるものだけを設定するようにしてください。

 

注意:

シングルサインオンは、多くの場合、LDAP と共に使用されます。

注意:

Microsoft Internet Information Server(IIS)と共に Dispatcher も使用している場合は、以下で追加の設定をおこなう必要があります。

  • disp_iis.ini
  • IIS

disp_iis.ini では、次のように設定します。
(詳しくは、Dispatcher を Microsoft Internet Information Server と共にインストールする方法に関するページを参照)

  • servervariables=1(IIS サーバー変数を要求ヘッダーとしてリモートインスタンスに転送します)
  • replaceauthorization=1(「Basic」を除く、「Authorization」という名前のすべてのヘッダーを、その「Basic」と同等のものに置き換えます)

IIS では、次のように設定します。

  • 匿名アクセスを無効にします。
  • 統合 Windows 認証を有効にします。

Felix コンソールの「Authenticator」オプションを使用すると、コンテンツツリーのすべてのセクションに適用される認証ハンドラーを確認できます。次に例を示します。

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

パスに最適なハンドラーが最初に照会されます。例えば、パス / に handler-A を設定し、パス /content に handler-B を設定すると、/content/mypage.html への要求に対して handler-B が最初に照会されます。

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" "http://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 からの要求はすべて要求パラメーターなしでおこなわれるからです。

AEM サインアウトリンクの削除

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();

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー