注意:

https://helpx.adobe.com/jp/experience-manager/kb/simple-saml-demo.html で使用できる aem の SAML デモのシンプルなバージョン

目標

AEM は、SAML 2.0 の認証リクエストをサポートし、SAML サービスプロバイダーとして機能します。この記事では、組織の境界内で Web シングルサインオンを実現するためのローカルテストをインストールおよび設定するためのサンプルを提供します。

SAML Authentication Handler については、オンライン製品ドキュメントも参照してください。

セットアップで使用されるソフトウェア

使用されているバイナリは以下のとおりです。同じまたは等しいを使用できます。

使用ソフトウェア名 バージョン からダウンロードされた
固有の標準 IDP 2.4.0 http://shibboleth.net/downloads/identity-provider/latest/
Tomcat(IDP のアプリサーバー) apache-tomcat-6.0.37 http://tomcat.apache.org/download-60.cgi
OpenDS(LDAP サーバー) OpenDS-2.2.1 https://opends.java.net/public/downloads_index.html
JDK 1.6.0_26
AEM 5.6

インストールおよび設定

OpenDS LDAP のインストールと設定

OpenDS からインストール手順に従います。インストール時には、ユーザーが作成しないようにテストデータのロードを選択します。インストール時には、管理者パスワードを忘れないでください。次に示すスクリーンショットは、インストール時に選択したオプションを表示します。

Ldap Consolidated

注意:

AEM との統合中に、LDAP のビジネスカテゴリプロパティを使用して、ユーザーが所属するグループを識別しました。 

User Manage

固有の標準 IDP のインストール

ダウンロードした(shibboleth-identityprovider-2.4.0-bin.zip)バイナリを解凍するか、install.bat ファイルを実行します。インストールによって、IdP のエンティティ ID、初期のメタデータ、IdP 設定ファイルの基本セットおよび署名/暗号化に使用される自己署名入り証明書のキーペアが作成されます。

Idp Installation

Tomcat のインストールと設定

1. 任意のディレクトリに apache-tomcat-6.0.37-windows-x64.zip を解凍します(例:C:\demo\appserver\apache-tomcat-6.0.37-windows-x64)。

2. SSL 自己署名入り証明書を作成します。

Tomcat Key

3. tomcat <TOMCAT_HOME>/conf/server.xml に証明書を適用します。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" 
sslProtocol="TLS" SSLEngine="on" 
SSLCertificateFile="C:/demo/appserver/apache-tomcat-6.0.37-windows-x64/apache-tomcat-6.0.37/cert/tomcatcert.pem" 
SSLCertificateKeyFile="C:/demo/appserver/apache-tomcat-6.0.37-windows-x64/apache-tomcat-6.0.37/cert/tomcatkey.pem" 
SSLPassword="password" />

4.   <SAML_IDP_HOME>/war/idp.war から <TOMCAT_HOME>/webapps に「idp.war」をコピーします

5.   ディレクトリ <TOMCAT_HOME>/endorsed を作成して、IdP ソースを採用したディレクトリに含まれる .jar ファイルを新しく作成したディレクトリにコピーします。

6.   クイックテスト:https://localhost:8443/idp/profile/Status にアクセスすると OK が返されます。

固有の標準 IDP の設定

1. <SAML_IDP_HOME>/conf/idp-metadata.xml を変更して、すべての場所属性が tomcat 8443 上の idp アプリにポイントすることを確認します。

Location

2.   <SAML_IDP_HOME>/conf/attribute-resolver.xml を変更して、属性の定義と LDAP 接続ストリングを追加します

Attribute Resolver

3.   <SAML_IDP_HOME>/conf/handler.xml を変更して、「UsernamePassword」および「PreviousSession」を除く認証のすべてのエントリを削除します。

Login

4.   詳細デバッグトレース用の <SAML_IDP_HOME>/conf/logging.xml を変更します。

IDP Debugging

5.   <SAML_IDP_HOME>/conf/login.config を変更します。

Ldap Config

6.   <SAML_IDP_HOME>/conf/relying-party.xml を変更します

RelayingParty

7.   /conf/attribute-filter.xml を変更して、属性 UID とグループをリリースします。 

Attribute-Filter

8.   <SAML_IDP_HOME>/metadata/adobecq.xml で次のメタデータファイルを追加します。

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://www.blogsaml.com">
  <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
    <md:KeyDescriptor>
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SPInfo">
        <ds:X509Data>
          <ds:X509Certificate>
MIIEdzCCA1+gAwIBAgIJAPswGGW+b631MA0GCSqGSIb3DQEBBQUAMIGDMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCTUExDjAMBgNVBAcTBUFjdG9uMQ4wDAYDVQQKEwVB
ZG9iZTESMBAGA1UECxMJTWFya2V0aW5nMQ8wDQYDVQQDEwZIYXNzYW4xIjAgBgkq
hkiG9w0BCQEWE3NhbXBsZUBibG9nc2FtbC5jb20wHhcNMTQwNTIzMTkzODI1WhcN
MTcwNTIyMTkzODI1WjCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ4wDAYD
VQQHEwVBY3RvbjEOMAwGA1UEChMFQWRvYmUxEjAQBgNVBAsTCU1hcmtldGluZzEP
MA0GA1UEAxMGSGFzc2FuMSIwIAYJKoZIhvcNAQkBFhNzYW1wbGVAYmxvZ3NhbWwu
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsW8NAHsIvl4EdEu0
0eZHuSYOAFLDZa0EQzf5+QDE179uHkqFIYpgdSJO3qj3HNKqlU/vnZNhQBJ2tRrc
BjI7pWQO/G9f+7pQKke9QVU88IDnmmGknlCTiaKLv4p68XHR4AeTI2tfulYpURa+
V5onIxXoyXqubrSxTb0zWVZy9iZmpPA2gCkH3Yzi/TM+yxz5A7q/Vh4pYm3+xqQS
gb1h5CFpA3YWlfSw2ONvNKlx9vJjfC+UCFxzNzbEF7f5u/c2zdKs72b70W8CnwTg
ny+C0qEDLKNYStVag8AUau9SmyXoKSShvHfZOGNW0ad1n44dD9TLCTKTpG1DloWI
yugtzwIDAQABo4HrMIHoMB0GA1UdDgQWBBT6Ve57XbEy+G+EzQTE+o8rzEiimzCB
uAYDVR0jBIGwMIGtgBT6Ve57XbEy+G+EzQTE+o8rzEiim6GBiaSBhjCBgzELMAkG
A1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ4wDAYDVQQHEwVBY3RvbjEOMAwGA1UEChMF
QWRvYmUxEjAQBgNVBAsTCU1hcmtldGluZzEPMA0GA1UEAxMGSGFzc2FuMSIwIAYJ
KoZIhvcNAQkBFhNzYW1wbGVAYmxvZ3NhbWwuY29tggkA+zAYZb5vrfUwDAYDVR0T
BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEATJi8KCGnNM6lVX8x+GBhm3q0VdF+
VIAvYXJ4TqP3DGSUFr2ETt187cQ3ZtJsU+U5mQ8NX6DRJ7QVZjKPe/6vRltVlsvR
z+b8vjXlWVWo6Zjcd96MQibESEutzLlwfQBq3A3azzqUmtEpA2woXzhV5XXvAsqt
HsPYgcM9mZNO+FS3pDkOEdfyQuG4nUa0s2jx/gIYtqcMJqTK5d3c1nAaUhLEVuYr
Upm6t+eL0/Yw4hrTjP3kEQO6g5ABsv9ew7iPs7G1RMm5BJErHyAHvgAeP/NZD/H6
C4fnnHXKhR7wbpxu9VipDIXQBmblPSvWGak+KhsPiQucvOvf2ksVtxoyLQ==
          </ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
        <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://localhost:6502/saml_login" index="1"/>
  </md:SPSSODescriptor>
</md:EntityDescriptor>

AEM の設定

1.   http://dev.day.com/docs/en/cq/current/deploying/installing_cq.html に従って AEM をインストールします。

2.   リポジトリの /etc/key で、「saml」というノードを作成します。このノード内で、IdP の公開証明書に対して「idp_cert」という新しいバイナリプロパティを追加します。つまり、<SAML_IDP_HOME>/credentials/idp.crt からファイルをアップロードします。

SAMLKey

3.   認証ハンドラーを設定します。

AEM

4.   ReferrerFilter を設定します。

ReffererFilter

インストールの確認

1.   http://<host>:<port>/ で AEM へのリクエストを作成すると、IDP ログインページにリダイレクトされます。

Login_home

2.   「password」としてパスワードを使用して user.2 としてログインすると、AEM ホームページが表示されます。次の saml トラッカーの応答と crx の自動ユーザー作成のスナップショットを参照してください。

SAMLResponse
User Created at crx

AEM 6+ を使用した機能強化

前の AEM 6 SP1 を使用して追加されたサポート

  • シングルサインオフフロー機能(ログアウト)
  • 属性の同期
  • 設定可能なデフォルトグループ

以下のセクションでは、ログアウトおよびメール属性の同期のローカルテストに上記の設定デモで必要な更新を提供します。

Shibboleth IDP の設定の更新

1.   <SAML_IDP_HOME>/conf/attribute-filter.xml & <SAML_IDP_HOME>/conf/attribute-resolver.xml を変更して、属性のメールをリリースします

Release_mail

2.   <SAML_IDP_HOME>/metadata/adobecq.xml でメタデータファイルを変更して、SingleSignoutService を含めます

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://www.blogsaml.com">
  <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
    <md:KeyDescriptor>
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SPInfo">
        <ds:X509Data>
          <ds:X509Certificate>
MIIEdzCCA1+gAwIBAgIJAPswGGW+b631MA0GCSqGSIb3DQEBBQUAMIGDMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCTUExDjAMBgNVBAcTBUFjdG9uMQ4wDAYDVQQKEwVB
ZG9iZTESMBAGA1UECxMJTWFya2V0aW5nMQ8wDQYDVQQDEwZIYXNzYW4xIjAgBgkq
hkiG9w0BCQEWE3NhbXBsZUBibG9nc2FtbC5jb20wHhcNMTQwNTIzMTkzODI1WhcN
MTcwNTIyMTkzODI1WjCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ4wDAYD
VQQHEwVBY3RvbjEOMAwGA1UEChMFQWRvYmUxEjAQBgNVBAsTCU1hcmtldGluZzEP
MA0GA1UEAxMGSGFzc2FuMSIwIAYJKoZIhvcNAQkBFhNzYW1wbGVAYmxvZ3NhbWwu
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsW8NAHsIvl4EdEu0
0eZHuSYOAFLDZa0EQzf5+QDE179uHkqFIYpgdSJO3qj3HNKqlU/vnZNhQBJ2tRrc
BjI7pWQO/G9f+7pQKke9QVU88IDnmmGknlCTiaKLv4p68XHR4AeTI2tfulYpURa+
V5onIxXoyXqubrSxTb0zWVZy9iZmpPA2gCkH3Yzi/TM+yxz5A7q/Vh4pYm3+xqQS
gb1h5CFpA3YWlfSw2ONvNKlx9vJjfC+UCFxzNzbEF7f5u/c2zdKs72b70W8CnwTg
ny+C0qEDLKNYStVag8AUau9SmyXoKSShvHfZOGNW0ad1n44dD9TLCTKTpG1DloWI
yugtzwIDAQABo4HrMIHoMB0GA1UdDgQWBBT6Ve57XbEy+G+EzQTE+o8rzEiimzCB
uAYDVR0jBIGwMIGtgBT6Ve57XbEy+G+EzQTE+o8rzEiim6GBiaSBhjCBgzELMAkG
A1UEBhMCVVMxCzAJBgNVBAgTAk1BMQ4wDAYDVQQHEwVBY3RvbjEOMAwGA1UEChMF
QWRvYmUxEjAQBgNVBAsTCU1hcmtldGluZzEPMA0GA1UEAxMGSGFzc2FuMSIwIAYJ
KoZIhvcNAQkBFhNzYW1wbGVAYmxvZ3NhbWwuY29tggkA+zAYZb5vrfUwDAYDVR0T
BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEATJi8KCGnNM6lVX8x+GBhm3q0VdF+
VIAvYXJ4TqP3DGSUFr2ETt187cQ3ZtJsU+U5mQ8NX6DRJ7QVZjKPe/6vRltVlsvR
z+b8vjXlWVWo6Zjcd96MQibESEutzLlwfQBq3A3azzqUmtEpA2woXzhV5XXvAsqt
HsPYgcM9mZNO+FS3pDkOEdfyQuG4nUa0s2jx/gIYtqcMJqTK5d3c1nAaUhLEVuYr
Upm6t+eL0/Yw4hrTjP3kEQO6g5ABsv9ew7iPs7G1RMm5BJErHyAHvgAeP/NZD/H6
C4fnnHXKhR7wbpxu9VipDIXQBmblPSvWGak+KhsPiQucvOvf2ksVtxoyLQ==
          </ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
        <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://localhost:6502/saml_login" index="1"/>
        <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://www.blogsaml.com:8443/idp/Authn/UserPassword"/>

  </md:SPSSODescriptor>
</md:EntityDescriptor>

AEM の設定更新

1.   リポジトリの /etc/key/saml では、メタデータ(adobecq.xml)ファイルの公開証明書のキーを含む「private」という新しいバイナリプロパティを追加します。  つまり、デモダウンロードパッケージからファイル demoprivatekey.pem をアップロードします。

Private

2.   ログアウト URL を使用して認証ハンドラーを更新し、属性を同期します。

Logout

インストールの確認

1.   user.0 を使用して http://<port>:<port>/ で AEM にログインし、ログアウトは IDP ログインページにリダイレクトする必要があります。 

2.   メールのプロパティが同期されます。

Mail

制限   

ユーザーは AEM に存在する必要があります
ハンドラーを使用してログインしているユーザーが存在する必要があるか、または欠落している場合は AEM で作成する必要があります(「CRX ユーザーの自動作成」を確認する必要があります)。これは、SamlAuthenticationHandler が一部である Sling 認証フレームワークで、ユーザー資格情報を SAMLResponse から抽出し、これらの資格情報を使用して JCR リポジトリにログインするためです。

オプションの認証によるサイト全体匿名アクセス
は、パスの設定を介して匿名アクセスから保護するコンテンツを中心に認証ハンドラーで構築されています。AEM サイトのすべてのページを匿名でアクセスできるようにする必要があるが、認証もオプションを必要とする場合は、パスの設定値を存在しないパスに設定できます。これにより SAML 認証が有効になりますが、サイトのすべてのページへの匿名アクセスが許可されます。この方法が使用されている場合は、SAMLReponse が正しい saml_login パス(次の項目を参照)に投稿していることを確認してください。


パスの設定および saml_login
IdP の SAMLResponse は、ページ「saml_login」に投稿する必要があります。ただし、「saml_login」ページは、認証ハンドラーが保護するパス(つまり、パス設定)内である必要があります。例えば、パスの設定が「/」である場合、IdP は http://localhost:4502/saml_login に投稿することができます。パスが「/content/geometrixx」である場合、IdP は http://localhost:4502/content/geometrixx/saml_login または http://localhost:4502/content/geometrixx/does-not-exist/saml_login に投稿できますが、http://localhost:4502/content/saml_login は機能しません。


IdP はログインおよび RelayState を開始した
SP1 では、ログインが saml_request_path cookie で実行される前にユーザーが存在したページに戻ることを確認してください。これは、ほとんどの SSO 実装で見つかる通常の RelayState パラメーターではありません。そのため、IdP が開始した認証は正常に完了しますが、エンドユーザーは RelayState で指定されたページには送信されません。したがって、AEM ページ(SP 開始のログイン)にカスタムログインリンクが実装されている場合は、ブラウザーを IdP に送信する前に saml_request_path Cookie を設定してください。


リソースではエラーが見つかりません

これは、ページを表示する適切な権限がないログインユーザーからの結果となる可能性があります。この問題を解決するには、SSO ユーザーにより /content などのフォルダーに読み取り権限が付与されていることを確認してください。これにより、必要なすべての権限が設定されたユーザーグループに SSO ユーザーを追加するように認証ハンドラーを設定できます。

ダウンロード

IdP の署名証明書、暗号化証明書、設定ファイル、このデモスクリプトで使用されるメタデータはここからダウンロードできます。

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

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