Azure Active Directoryを使ったAEMのSAML認証(Tech Blog)

はじめに

SSO(シングルサインオン) はユーザーが様々なアプリケーションやクラウドサービスなどで都度ログインすることなく、複数アプリケーションを横断して認証を行うことができる仕組みで、新しい常識となりつつあります。

SAML は企業でSSOを実装する最も安全な方法の一つとして世界的に受け入れられており、Active DirectoryやOKTAといったソリューションと連携してSSO認証の仕組みとして利用することができます。

AEMとSAMLについての概要

Adobe Experience ManagerはSAML認証に対応しており、その機能が標準で実装されています。ユーザー作成だけでなく、必要に応じて「フェデレーションメタデータURL」から受信したユーザーの詳細情報を元に、スタッフを関連した権限グループに割り当てると言ったことができます。

Adobeのソリューション:
AEM 6.2~6.5

インストール:
AEM 6.2~6.5が稼働するAuthor/Publish両方のサーバーにJDK 1.8が必要です。

前提条件(Microsoft Azure側):
Azure AD 識別子(エンティティ ID)、SAML署名証明書、ログインURL、フェデレーションメタデータ URL ※全てこの記事の中で取得します。

前提条件(AEM側):
TLS1.1以上を使用して、AEMでHTTPSを有効にする。

その他:
今回の説明ではデモサイト「We Retail」を使って、SAML認証を実装します。

想定される動作

https://www.youtube.com/embed/L2rILPK76Pg?feature=oembed

エンタープライズ アプリケーションの作成

Azure Portalに移動します。ホーム画面に表示された「Azure Active Directoryの管理」にある「表示」ボタンをクリックします。

Azure Portalのホーム画面
メニューから「エンタープライズアプリケーション」を選択すると、アプリケーションの一覧画面が表示されます。

エンタープライズアプリケーションの追加画面
上部にある「新しいアプリケーション」をクリックして、今回のアプリケーションを登録します。

新しいアプリケーションの追加画面 検索ボックスに「Adobe Experience Manager…」と入力すると、検索結果の一覧にAdobe Experience Managerが表示されるので、これを選択します。

Adobe Experience Managerの選択画面 アプリケーションの作成ダイアログが表示されるので、任意の名前を入力して「作成」ボタンをクリックします(今回は「Adobe Experience Manager Demo」とします。)。

デモ用アプリケーションの登録画面

Azure ADシングルサインオンの設定

次にAzure Portalで Azure AD シングルサインオンを有効にします。先程、作成したアプリケーション「Adobe Experience Manager Demo」のページから、「プロパティ」→「Getting Started」→「2. シングルサインオン」の設定を選択します。

「シングル サインオン方式の選択」画面で、「SAML」を選択すると、「SAMLによるシングル サインオンのセットアップページ」が表示されます。

シングル サインオン方式の選択画面

SAMLによるシングル サインオンのセットアップ画面

①基本的なSAMLの構成

「編集」をクリックし、以下の様に設定を行ったら「保存」をクリックします。

基本的なSAMLの構成 セクション

②ユーザー属性とクレーム 設定なし

③SAML署名証明書
証明書(Base64)とフェデレーションメタデータXMLをダウンロードし、ファイルをコンピュータに保存します。

SAML署名証明書 セクション

④Adobe Experience Manager Demoのセットアップ 表示されているログインURLをメモしておきます。

Azure ADシングルサインオンの設定 セクション

ユーザーとグループの追加

次に左ペインの「ユーザーとグループ」を選択し、「ユーザーとグループの追加」をクリックします。

ユーザーとグループの追加画面 表示されたダイアログから、AEMにログインするユーザーを選択して保存します。

ユーザー選択ダイアログ

キーストアの初期化(未実施の場合)

ここからはAEM側の設定です。Authentication Service ユーザーの設定画面に移動し、「キーストアを作成」ボタンをクリックしてストアを初期化します。

Authentication Service ユーザーの設定画面

SAML署名証明書をAEMにインストールする

AEM 6.4~6.5 Author/Publishの場合:

グローバルトラストストアの設定画面に移動します。 グローバルトラストストアの設定画面

AEM 6.2~6.3 Author/Publishの場合:

SAML認証ハンドラーの設定

ここでは、Microsoft Azure ADから取得した情報と、証明書のエイリアスを使用して「SAML認証ハンドラー」の設定を行います。Config Managerから「Adobe Granite SAML 2.0 Authentication Handler」に移動し、以下のプロパティを設定します。

SAML認証ハンドラーの設定画面

Apache Sling リファラーフィルター

ここでは、Apache の「Sling Referrer Filter」の設定を行います。Config Managerから「Apache Sling Referrer Filter」に移動し、以下のプロパティを設定します。

Apache Sling リファラーフィルターの設定画面

CRXへのMixinタイプの追加

ここではSAML認証ハンドラーが動作するように、AEM のコンテンツノードにMixinタイプのプロパティを追加します。通常、Mixinタイプは高度な機能(バージョン管理、アクセス制御、参照、ロックなど)をノードに追加するために使用される機能です。

今回はデモサイト「We Retail」を使っているので、/content/we-retailに移動して、トップメニューの「Mixins」をクリックします。次のMixinプロパティを追加します。

「OK」をクリックしてダイアログを閉じたら、CRXDEのトップメニューにある「すべて保存」をクリックします。

CRXへのMixinタイプの設定画面

これで/content/we-retail の下にあるリンクを開いてテストすることができるようになりました。実際に、次のURLを開いてみましょう。

認証画面

なお、対象ユーザーのグループが事前に設定されていない場合、ページは404エラーの応答ページが開きます。これはユーザーがログインに成功したことを意味しますが、実際の利用にあたってはサイトにアクセスする権限が必要です。グループレベルで権限を設定してください。ユーザーがログインしているかどうかはCRXDEに入ってユーザー名を参照することで確認できます。

404エラー画面

お問合せはこちら

この記事は2020年6月に公開された SAML Authentication in AEM Using Microsoft Azure Active Directory を抄訳したものです。