【Azure】Azure AD SAML設定手順(IdP)

Azure
スポンサーリンク

今回は、Azure ADでシングルサインオンの設定をしていきたいと思います。
使用する方式は、SAMLでAzure AD側から認証を開始するIdP initiatedの方式でSMALを設定していきます。
シングルサインオンの仕組みや、IdP initiated・SP initiatedの方式がわからない方は、以下の記事で解説をしているので、ぜひご覧ください。

SSOにおけるIdPとSPの挙動の違い

期待する目標

本記事で期待する目標は以下の通りです。

  • Azure ADをIdPとして、SAMLを構成できる
  • My appsよりSPにシングルサインオンができる
  • SAMLで必要な情報と取得できる情報を理解する

前提条件

本記事で使用している環境は以下の通りです。

  • Azure AD プラン : Premium P2
  • SP サイト : RSA Test Service Provider

本来であれば、実使用するサービスに対して、シングルサインオンをかけるべきなのですが、諸般の都合(金銭面)でSMALのテスト用のサイトを使用します。
テスト用のサイトといっても、IdP initiatedやSP initiatedのテストができるサイトとなっており、SAMLをすると、認証情報やアサーションなどの情報を表示してくれるサイトなので、SAMLを使用したシングルサインオンの理解にはもってこいなサイトだと思います。
URL : https://sptest.iamshowcase.com/

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

まず、SAMLによるシングルサインオンを行うために、ベースとなるアプリケーションを作成していきます。

Azure Active Directoryの選択
Azure Active Directoryの選択

[Azureポータル]にログインしたら、[Azure Active Directory]のサービスを検索または、選択します。

エンタープライズアプリケーションの選択
エンタープライズアプリケーションの選択

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

新しいアプリケーションの選択
新しいアプリケーションの選択

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

独自のアプリケーションの作成
独自のアプリケーションの作成

[Azure AD ギャラリーの参照]より、SAMLを行うアプリケーションを選択します。
アプリケーションギャラリー上にあるものであれば、テンプレートが用意されているため、簡単に設定することができます。
今回は、テスト用のSPを使用するため、[独自のアプリケーションの作成]を押下します。

独自のアプリケーションを追加
独自のアプリケーションを追加

[独自のアプリケーションの作成]より、以下の設定を行います。

  • お使いのアプリの名前は何ですか? : 任意の名前を入力
  • ギャラリーに見つからないその他のアプリケーションを統合します(ギャラリー以外) : ●

名前を入力すると、候補が表示されますが、テストのシングルサインオンサイトはギャラリーに存在しないため、無視して進めます。
設定が完了したら、[作成]を押下します。
以上でアプリケーションの作成は完了です。

ユーザの追加

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

アプリケーションの作成が完了したら、シングルサインオンを許可するユーザの選択していきます。
[概要]-[Getting Started]-[1.ユーザとグループの割り当て]を押下します。

ユーザまたはグループの追加
ユーザまたはグループの追加

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

割り当ての追加
割り当ての追加

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

ユーザの選択と追加
ユーザの選択と追加

右ペインに[ユーザとグループ]が表示されるため、このアプリを使用するユーザまたはグループを選択します。
追加するユーザとグループを選択したら、[選択]を押下します。

割り当てユーザの確定
割り当てユーザの確定

[割り当ての追加]より、[ユーザとグループ]の追加が完了したら、[割り当て]を押下します。

割り当てユーザの確認
割り当てユーザの確認

[ユーザとグループ]より、割り当てを追加したユーザとグループが表示されていることを確認します。
以上でユーザの追加は完了です。

SAMLの設定

シングルサインオンの構成
シングルサインオンの構成

アプリケーションの作成とユーザの作成が完了したら、シングルサインオンの構成を行っていきます。
[管理]-[シングルサインオン]より、[SAML]を押下します。

SAMLベースのサインオン
SAMLベースのサインオン

SAMLを選択すると、SAMLの構成が表示されます。
ここに、SAMLの情報をいれていくとSAMLによるシングルサインオンができるようになります。

メタデータのダウンロード

今回は、SAMLのIdP initiatedを検証したいので、メタデータをSPから引っ張ってきます。
冒頭に記載のあったTEST Service Providerのページにアクセスします。
URL : https://sptest.iamshowcase.com/

Test Service Provider
Test Service Provider

[Test Service Provider]のトップページより、[Instructions]を押下します。

メタデータのダウンロード
メタデータのダウンロード

[Setting up IDP initiated SSO]より、[DOWNLOAD METADATA]を右クリックして保存します。

メタデータファイル
メタデータファイル

メタデータはXMLのため、このような構成のXMLファイルになっていれば問題ないです。
このファイルは、Azure ADのシングルサインオン構成で必要になるため、Azureポータルにアクセスできる端末に保存しておきます。

IdP initiatedの構成

メタデータファイルのアップロード
メタデータファイルのアップロード

TEST Service Providerより、メタデータのダウンロードが完了したら、Azure ADにメタデータをアップロードしていきます。
[管理]-[シングルサインオン]より、[メタデータファイルをアップロードする]を押下します。

アップロードファイルの選択
アップロードファイルの選択

[メタデータファイルをアップロードします]の右端にあるファイルマークより、ダウンロードしたメタデータファイルを選択してアップロードします。

メタデータファイルの追加
メタデータファイルの追加

ファイルの選択が完了したら、[追加]を押下します。

エンティティIDの編集
エンティティIDの編集

メタデータの追加を行うと、右ペインに[基本的なSAML構成]が表示されるため、[識別子(エンティティID)]の編集を行います。

エンティティIDの編集と保存
エンティティIDの編集と保存

エンティティIDを任意の文字列に設定し、[保存]を押下します。
エンティティIDについては、シングルサインオンを行うサイトで一意にする必要があります。
今回は、[IdP_TEST]というエンティティIDにしました。
名前とエンティティIDが重複していても問題はなく、ほかのアプリケーションのエンティティIDと重複していないければ問題ない模様。

基本的なSAML構成の確認
基本的なSAML構成の確認

SAMLの構成が完了すると、[基本的なSAML構成]が反映されるため、確認します。

シングルサインオンのテスト
シングルサインオンのテスト

[管理]-[シングルサインオン]の⑤にシングルサインオンのテストがあるので、[Test]を押下して一回テストを実行してみます。

シングルサインオンのテスト実行
シングルサインオンのテスト実行

[シングルサインオンをテスト]より、[サインオンのテスト]を押下します。

Azure ADへのサインイン
Azure ADへのサインイン

テストを開始すると、Azure ADへのサインオンを求められます。
既にログイン済みの場合は、シングルサインオンを行うアカウントを選択します。

サインオンの失敗
サインオンの失敗

アカウントの選択後、[この機能は有効になっていないか使用できません。]と表示され、正常にシングルサインオンが機能していなさそうです。
これだけだと何もわからないので、とりあえず、正規の手順で検証してみたいと思います。

IdP initiatedによるSSOの実行

My Appsへのアクセス
My Appsへのアクセス

IdP initiated ssoでは、IDプロバイダーからシングルサインオンを開始するため、初めにMicrosoftのMy Appsにログインします。
URL : https://myapps.microsoft.com/
My Appsにログイン後、作成したアプリケーションが存在することを確認します。
ここで、表示されない場合は、アプリケーションの作成時にユーザの割り当てが間違っている可能性があります。
アプリケーション一覧より、作成した[IdP_TEST]を押下します。

アカウントの選択
アカウントの選択

作成したアプリケーションを選択すると、[アカウントを選択する]より、シングルサインオンを有効化しているユーザのアカウントを選択します。

シングルサインオンの成功
シングルサインオンの成功

シングルサインオンが成功すると、[RSA Test Service Povider]のページにリダイレクトされます。
ここで、[Hello <ユーザ名>]と表示されていれば、シングルサインオンが成功し、SAMLの情報がSP側に渡されています。

Attribute statementの確認
Attribute statementの確認

Attribute Statementより、自身のユーザ名やAzure ADのアプリケーションで設定されているテナントIDなどが同一であることを確認します。

Assertionの確認
Assertionの確認

最後にアサーションの確認をしておきます。
アサーションでは[Status code]や[Issuer]、[Assertion ID]などが正常に取得できているかを確認します。
Azure ADによるSAMLを使ったシングルサインオンの設定手順(IdP)は以上となります。

まとめ

今回は、Azure ADを使用してSAMLベースのシングルサインオンを設定してみました。
IDプロバイダーからシングルサインオンを開始するIdP initiatedの設定を行いましたが、メタデータとエンティティIDを設定するだけで概ね設定が完了したので、SAMLを使用したシングルサインオンの設定難易度は低めなのかなと感じました。
また、ユーザから見れば、Azure ADにサインインして、My AppsからアクセスできるWebサービスを選択するだけでログインが自動的に行われるため、SP initiatedよりもIdP initiatedのほうが使いやすいユーザも多いのではないでしょうか。

ただ、個人的に思っているのは、どのユーザをどのサービスに紐づけるか?という分類のほうが大変だなーと思いました。
会社が大きければ部署ごとに使用するアプリケーションを標準化できたりしますが、小さな会社だと個別の利用権限の付与が大変になって結局全員利用できるようになる。みたいな流れになりそう・・・

おまけ

本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。

コメント

タイトルとURLをコピーしました