前回、Azure ADをIDプロバイダーとしてSAMLベースのシングルサインオンを設定しました。
この記事では、IDプロバイダー側からシングルサインオンの起点を作るIdP initiatedを設定してSAMLベースのシングルサインオンを設定しました。
今回は、サービスプロバイダー(SP)側からSAMLベースのシングルサインオンを設定してみたいと思います。
期待する目標
本手順で期待する目標は以下の通りです。
- Azure ADをIdPとして、SAMLを構成できる
- SPを起点としてSAMLベースのシングルサインオンが構成できる
- SAMLで必要な情報と取得できる情報を理解する
前提条件
本記事で使用している環境は以下の通りです。
- Azure AD プラン : Premium P2
- SP サイト : RSA Test Service Provider
本来であれば、実使用するサービスに対して、シングルサインオンをかけるべきなのですが、諸般の都合(金銭面)でSMALのテスト用のサイトを使用します。
テスト用のサイトといっても、IdP initiatedやSP initiatedのテストができるサイトとなっており、SAMLをすると、認証情報やアサーションなどの情報を表示してくれるサイトなので、SAMLを使用したシングルサインオンの理解にはもってこいなサイトだと思います。
URL : https://sptest.iamshowcase.com/
エンタープライズアプリケーションの作成
ここら辺は、IdP initiatedの構成をとった時と同様になります。

[Azureポータル]にログインし、[Azure Active Directory]を選択します。

[Azure Active Directory]より、[管理]-[エンタープライズアプリケーション]を押下します。

[エンタープライズアプリケーション]より、[新しいアプリケーション]を押下します。

[Azure ADギャラリーの参照]より、[独自のアプリケーションの作成]を押下します。

[独自のアプリケーションの作成]より、以下の設定を行います。
- お使いのアプリの名前は何ですか? : 任意のアプリケーション名を入力
- ギャラリーに見つからないその他のアプリケーションを統合します (ギャラリー以外) : ●
設定が完了したら、[作成]を押下します。
以上でエンタープライズアプリケーションの作成は完了です。
ユーザの追加

作成したアプリケーションの概要より、[1.ユーザとグループの割り当て]を押下します。

[ユーザとグループ]より、[ユーザまたはグループの追加]を押下します。

[割り当ての追加]の、[ユーザとグループ]より、[選択されていません]を押下します。

SAMLによるシングルサインオンを許可するユーザを検索し、[選択]を押下します。

ユーザの選択が完了したら、追加ユーザ数分選択されていることを確認し、[割り当て]を押下します。

[ユーザとグループ]より、追加したユーザが表示されていることを確認します。
以上でアプリケーションの作成は完了です。
SAMLの設定
アプリケーションの追加とユーザの割り当てが完了したら、SAMLの設定を行っていきます。

作成したアプリケーションの[管理]-[シングルサインオン]より、[SAML]を押下します。

[SAMLによるシングルサインオンのセットアップ]が表示されます。
SP initiatedによるシングルサインオンは、ここにデータを入れていきます。
SPデータの取得
Azure ADのSAML設定画面が表示できたら、SP側のデータを取得していきます。
SPのテストには、前回も使用したRSA Test Service Providerを使用していきます。

以下のURLより、RSAのTest Service Providerのトップページにアクセスし、[Instructions]を押下します。
URL : https://sptest.iamshowcase.com/
今回はTest Service Providerを使用しましたが、他のSPでも同じような値を取得できればSAMLによるシングルサインオンができるようになると思います。

Setting up IDP initiated SSOより、[DOWNLOAD METADATA]を押下います。
今回は、SP initiatedの方式ですが、SP側のEntity IDを取得したいため、IdP initiatedのメタデータを取得して内容からEntity IDを確認していきたいと思います。

今回必要なのが、[entityID]と[Location]となります。
Test Service Providerだと、EntityIDが[IAMShowcase]となっており、Locationは
以上でSPデータの取得は完了です。
SP initiatedの構成

[基本的なSAML構成]より、[編集]を選択し[識別子の追加]と[応答URLの追加]を押下します。

基本的なSAML構成より、以下の設定を行います。
- 識別子(エンティティID) : ダウンロードしたメタデータのentityIDを入力
- 応答URL : ダウンロードしたメタデータのLocationのURLを入力
設定が完了したら、[保存]を押下します。

SAMLの構成が保存できたら、[③SAML証明書]より、[フェデレーションメタデータXML]をダウンロードします。

Test Service Providerの[Setting up SP initiated SSO]より、Azure ADからダウンロードした[フェデレーションメタデータXML]を選択し、[SUBMIT FILE]を押下します。

フェデレーションメタデータのアップロードが完了すると、ポップアップ上にURLが表示されます。
このURLをコピーしておきます。
このURLを踏むと、SP側からSAMLによるシングルサインオンが開始されます。
SP initiatedによるSSOの実行
前項でコピーしたURLにアクセスします。

既にAzure ADにログインしている場合、アカウントの選択にリダイレクトされるので、ログインするユーザを押下します。

アカウントを選択すると、パスワードが聞かれずにSAMLの情報ページにリダイレクトされればSP initiatedによるシングルサインオンが成功しています。

[Attribute Details]より、ディスプレイ名が表示されるので、確認します。

[Assertion Details]より、SAMLのステータスコードとアサーションIDを確認し、正常にアサーションできていることを確認します。
以上でSP initiatedによるシングルサインオンの実行は完了です。
まとめ
前回は、IdPからシングルサインオンを開始する方法でしたが、今回はSPからシングルサインオンを開始する方法をテストしました。
IdP initiatedによるシングルサインオンと大きな違いはEntity IDと応答URLをIdPに入れ込んであげる必要があるということでしょうか。
とはいえ、そこまで難しくはなさそうなのでIdP initiatedとSP initiatedの両方を使えるようになると、シームレスにサイトへログインができるため、非常に便利な状態になります。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント