SAML 2.0 認証ハンドラー

AEM には、SAML 認証ハンドラーが付属しています。このハンドラーによって、 バインディングを使用した SAMLHTTP POST 2.0 認証要求プロトコル(Web-SSO プロファイル)のサポートが提供されます。

サポート対象は次のとおりです。

  • メッセージの署名と暗号化
  • ユーザーの自動作成
  • AEM でグループを既存のグループに同期させる
  • サービスプロバイダーおよびIDプロバイダーが認証を開始しました

このハンドラーは、暗号化された SAML 応答メッセージをユーザーノード(usernode/samlResponse)に格納して、サードパーティのサービスプロバイダーとの通信を容易にします。

メモ

AEM と SAML の統合のデモンストレーションを参照してください。

エンドツーエンドのコミュニティの記事については、Integrating SAML with Adobe Experience Managerを参照してください。

SAML 2.0 認証ハンドラーの設定

Web コンソールを使用すると、SAML 2.0 認証ハンドラーの設定(Adobe Granite SAML 2.0 Authentication Handler)にアクセスできます。設定可能なプロパティを以下に示します。

メモ

SAML 2.0 認証ハンドラーはデフォルトでは無効になっています。このハンドラーを有効にするには、次のどちらかのプロパティを設定する必要があります。

  • ID プロバイダーの POST の URL
  • サービスプロバイダーのエンティティ ID
メモ

SAML アサーションは署名されます。オプションとして暗号化することもできます。そのためには、少なくとも TrustStore の ID プロバイダーの公開証明書を指定する必要があります。詳しくは、TrustStore への IdP 証明書の追加の節を参照してください。

Slingでこの認証ハンドラーを使用する必要がある PathRepositoryパスです。このプロパティが空の場合は、認証ハンドラーが無効になります。

サービス のランキングOSGiフレームワークサービスのランキング値。このサービスを呼び出す順序を示します。これは整数値で、値が大きいほど優先順位が高くなります。

IDP証明書 エイリアスグローバル信頼ストア内のIdP証明書のエイリアス。このプロパティが空の場合は、認証ハンドラーが無効になります。設定方法は、以下の「AEM TrustStore への IdP 証明書の追加」を参照してください。

SAML認証要求の送信先のIDPのIDプロバイダー URLです。このプロパティが空の場合は、認証ハンドラーが無効になります。

注意

ID プロバイダーのホスト名は Apache Sling Referrer Filter の OSGi 設定に追加する必要があります。詳しくは、Web コンソールに関する節を参照してください。

IDプロバイダーでこのサービスプロバイダーを一意に識別するサービスプロバイダーエンティティ IDID。このプロパティが空の場合は、認証ハンドラーが無効になります。

デフォルト リダイレクト認証が成功した後にリダイレクトされるデフォルトの場所です。

メモ

この場所は、request-path cookieが設定されていない場合にのみ使用されます。 有効なログイントークンを持たないで、設定されたパスより下のページをリクエストした場合、リクエストされたパスはcookieに保存されます
認証が成功すると、ブラウザーは再度この場所にリダイレクトされます。

User-ID AttributeCRXリポジトリでユーザーを認証および作成するために使用されるユーザーIDを含む属性の名前。

メモ

ユーザー ID は SAML アサーションの saml:Subject ノードではなく、この saml:Attribute から取得されます。

Use Encryptionこの認証ハンドラーは暗号化されたSAMLアサーションを期待しているかどうか。

CRX ユーザーの自動作成認証に成功した後、リポジトリ内に存在しないユーザーを自動的に作成するかどうか。

注意

CRX ユーザーの自動作成が無効な場合は、ユーザーを手動で作成する必要があります。

To 追加 Groups認証が成功した後、CRXグループにユーザーを自動的に追加する必要があるかどうか。

Group Membershipこのユーザーを追加するCRXグループのリストを含むsaml:Attributeの名前。

AEM TrustStore への IdP 証明書の追加

SAML アサーションは署名されます。オプションとして暗号化することもできます。そのためには、少なくともリポジトリ内の IDP の公開証明書を指定する必要があります。これをおこなうには、次の手順を実行する必要があります。

  1. http:/serveraddress:serverport/libs/granite/security/content/truststore.html​に移動します。

  2. TrustStoreを作成」リンクを押します。

  3. TrustStore のパスワードを入力して「保存」を押します。

  4. TrustStore を管理」をクリックします。

  5. IdP 証明書をアップロードします。

  6. 証明書エイリアスを記録します。以下の例では、エイリアスは admin#1436172864930 です。

    chlimage_1-372

AEM キーストアへのサービスプロバイダーキーと証明書チェーンの追加

メモ

次の手順は必須です。それ以外の場合は、次の例外が発生します。com.adobe.granite.keystore.KeyStoreNotInitialisedException: Uninitialised system trust store

  1. 移動先:http://localhost:4502/libs/granite/security/content/useradmin.html
  2. authentication-serviceユーザーを編集します。
  3. アカウント設定」の「キーストアを作成」をクリックしてキーストアを作成します。
メモ

以下の手順は、ハンドラがメッセージの署名または復号化を可能にする必要がある場合にのみ必要です。

  1. 秘密鍵ファイルを選択」をクリックして秘密鍵ファイルをアップロードします。キーは、DERエンコードを使用したPKCS#8形式にする必要があります。

  2. 証明書チェーンファイルを選択」をクリックして証明書ファイルをアップロードします。

  3. 以下のようにエイリアスを割り当てます。

    chlimage_1-373

SAML 用のロガーの設定

SAML の設定ミスにより発生する可能性があるすべての問題をデバッグするようにロガーを設定することができます。手順は次のとおりです。

  1. Webコンソールに移動します。http://localhost:4502/system/console/configMgr

  2. Apache Sling Logging Logger Configuration​というエントリを探してクリックします。

  3. 次の設定でロガーを作成します。

    • Log Level: Debug
    • Log File: logs/saml.log
    • Logger: com.adobe.granite.auth.saml

このページ