1.はじめに
Entra ID (旧名:AzureAD)をIdP(Identity Provider)としたSSO(Single Sign On)のハンズオンに関する記事です。
SSOというとSP(Service Provider)側が対応していても有償プランのみでしかサポートしていないことがよくあります。そこで今回は、無料でSSO連携も可能なSaaSを探して、実際にEntra IDとSSO連携をやってみました(2024年6月時点)。 SaaS側の仕様が変わっていなければ、皆さんも試しにSSO連携をテストいただくことが可能です!
2.無料で、Entra ID とSSO連携可能なSaaS
今回Entra IDとSSO連携を実施することができたWEBサイトやSaaSは、以下の3つとなります。
今回の記事では、RSA Test Service ProviderとEntra IDとのSSOに関して、説明していきます。
- RSA Test Service Provider
- Saleforce Developer Edition
- DocuSign Developer Edition
2-1.RSA Test Service Providerとは
RSA Test Service Providerとは、アメリカのRSAセキュリティ社が運営しているWEBサイトです。有名なRSA暗号を開発したメンバーによって創立されているそうです。
RSA Test Service ProviderのWEBサイトに加えて、IdPを用意すれば、SAMLのテストを実施することができます。本WEBサイトを利用することで、IdPからACS(Assertion Consumption Service) URLに送信されたSAMLアサーション情報を表示することができます。さらに、SP Initiated SSO(SP側からの認証を起点としたSSO)とIdP Initiated SSO(IdP側からの認証を起点としたSSO)の両方をサポートしています。
特に、アカウント作成などは不要で、SP側の設定もほぼないため、簡単にSAMLテストを実現することができます。
ただし、SCIM(System for Cross-domain Identity Management)は、サポートしていないので、IPプロビジョニングまでテストしたい場合は、他のWEBサイトやSaaSを利用する必要があります。
2-2.Saleforce Developer Editionとは
Salesforce Developer Editionとは、CRM(Customer Relationship Management)で有名なSalesforce社が提供している無料の開発環境です。
先ほどのRSA Test Service Providerでは、実現できなかったSCIMの動作確認も実施することができます。
2-3.DocuSign Developer Editionとは
DocuSign Developer Editionとは、脱アナログハンコを実現する電子署名で有名なSaaSの開発者向け環境です。こちらのDeveloper EditionもSSOまで設定することが可能となっています。さらに、JIT (ジャスト イン タイム) プロビジョニングに対応しています。JITプロビジョニングとは、SAML連携したユーザーが DocuSignにシングルサインオンすると、Entra ID側が発行した SAML Responseに含まれるユーザー属性を使って、DocuSign側にユーザーを自動的に作成してくれます。これにより DocuSign 側で個別にユーザーを作成する必要もありません。
3.SAML設定:RSA Test Service Provider編
ここからは、RSA Test Service ProviderをSPとして、Entra IDをIDPとした場合のSAMLによるSSOを設定していきます。
3-1.ちょっと補足:SP Initiated SSOとIdP Initiated SSO
実際の設定に入る前に、少し説明を入れます。ご存じの方は読み飛ばしてください。
SAMLの動作は、SP Initiated SSOとIdP Initiated SSOの2つあります。以下図のように、SP側との認証を起点とした場合をSP Initiated SSOと呼び、IdP側からの認証を起点としたSSOをIdP Initiated SSOと呼びます。
エンドポイント(図ではPC)を中心として、SAML AuthnRequestとSAML Response(Assertionを含む)のリレーをしています。
SAML AuthnRequestは、認証要求であり、認証が必要なIdPの宛先URL情報(Destination)とSP側へのAssertionを提出するURL情報(ACS URL:Assertion Consumer Service URL)、SP側の情報(Issuer)などを含んでいます。
SAML Responseは、Assertionを含んでいます。このAssertionの中には、ユーザ情報(Subject)、属性情報(AttributeStatement)が含まれています。
3-2.RSA Test Service Provider側のメタデータ取得
Entra IDとRSA Test Service ProviderのSAML連携手順を記載していきます。
まずは、下記URLにアクセスしましょう。
URLにアクセスした後、「Instructions > SP initiated SSO」を選択し、「DOWNLOAD METADATA」から、XMLファイルとして、メタデータを保存します。
なお、ここでSP initiated SSOを選んでいても、IdP initiated SSOも利用することができました。
ダウンロードしたメタデータをメモ帳などで開きます。(私はVisual Studio Codeを利用しています。)
メタデータの中のentityIDと、Locationをメモします。今回は以下のようになっていました。
- entityID
- IAMShowcase
- Location
- https://sptest.iamshowcase.com/acs
補足
entityIDとは、メタデータファイル内のmd:EntityDescriptorタグ内で確認でき、SPまたはIdPを識別するためのIDです。
Locationとは、メタデータファイル内のmd:AssertionConsumerServiceタグ内で確認でき、IdPによってSAML認証が完了した旨をSPに伝えるURLです。ACS URL(Assertion Consumer Service URL) とも呼ばれます。
3-3.RSA Test Service ProviderをSPとして登録
Entra管理センターに移動し、「アプリケーション>エンタープライズアプリケーション>+新しいアプリケーション」を選択し、「+独自のアプリケーションの作成」を選択します。
なお、Entra IDには事前に数多くのSaaSが登録されています。登録されているSaaSがある場合は、独自のアプリケーションの作成ではなく、登録されているSaaSを選択しましょう。
任意の名前(管理しやすい名前)を入力して、「作成」をクリックします。
「ユーザとグループ」で、テスト用のユーザを登録します。このユーザを利用して、SSOのテストを行います。
「シングルサインオン > SAML」を選択します。
基本的なSAML構成の「編集」を選択し、先ほどメモしたエンティティIDと応答URLを入力し、保存します。
3-4.RSA Test Service Provideにメタデータを登録
Entra ID側では、最後に、SAML証明書のフェデレーションメタデータXMLの「ダウンロード」をクリックし、xmlファイルをダウンロードします。このフェデレーションメタデータXMLをRSA Test Service Provideにアップロードすれば完了です。
RSA Test Service Providerサイトに戻り、先ほどのXMLファイルをアップロードします。
アップロードすると、URLが発行されますので、こちらのURLにアクセスすることで、SSOをすることが可能となります。
3-5.動作確認
まずはSP Initiated SSOの動作確認をするために、先ほどのURLにアクセスします。すると、Entra IDの認証が発生します。認証後、以下のように、ユーザ認証を反映したサイトにアクセスすることができます。サイト内では、属性情報やAsssertionを確認することも可能となっています。
次に、IdP Initiated SSOを利用するため、Entra IDのマイアプリにアクセスしてみましょう。マイアプリのURLは以下となっています。
念のため、Edgeの場合は、inPrivavteウィンドウを立ち上げて、URLにアクセスしましょう。inPrivateウィンドウを利用するのは、先の認証情報が残っていない状態でアクセスさせるためです。マイアプリで、RSA Test Service Providerのアイコンをクリックしてみると、先ほどと同様のRSA Test Service Providerの認証後画面にアクセスすることが可能となります。
4.おわりに
SAMLといったSSOは、用語も多く混乱しがちですが、今回のRSA Test Service Providerで、SAMLによるSSOを実現するだけでしたら、簡単にできることが分かったのではないでしょうか。Entra IDを利用する場合は、条件付きアクセスなどもできますので、その際のテスト用SaaSにも使えたりしますので、便利です。
次回は、SalesforceとEntra IDのSAMLの記事です。