【Entra ID ハンズオン】無料でできるEntra IDによるSSO手順 (1/3)

# 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は、以下の３つとなります。
今回の記事では、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)は、サポートしていないので、IDプロビジョニングまでテストしたい場合は、他のWEBサイトやSaaSを利用する必要があります。

https://sptest.iamshowcase.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/2bd3e597-b83c-7e92-7a35-fc2c71dddded.png)

### 2-2.Saleforce Developer Editionとは

Salesforce Developer Editionとは、CRM(Customer Relationship Management)で有名なSalesforce社が提供している無料の開発環境です。
先ほどのRSA Test Service Providerでは、実現できなかったSCIMの動作確認も実施することができます。

https://developer.salesforce.com/jpblogs/2016/04/developer-edition-signup/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/65423bfa-e3dc-26bd-7d44-fed3b425053b.png)

### 2-3.DocuSign Developer Editionとは

DocuSign Developer Editionとは、脱アナログハンコを実現する電子署名で有名なSaaSの開発者向け環境です。こちらのDeveloper EditionもSSOまで設定することが可能となっています。さらに、JIT (ジャスト イン タイム) プロビジョニングに対応しています。JITプロビジョニングとは、SAML連携したユーザーが DocuSignにシングルサインオンすると、Entra ID側が発行した SAML Responseに含まれるユーザー属性を使って、DocuSign側にユーザーを自動的に作成してくれます。これにより DocuSign 側で個別にユーザーを作成する必要もありません。

https://developers.docusign.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/deb87ac4-805b-6aa4-a003-c6a90979b58f.png)


# 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の２つあります。以下図のように、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)が含まれています。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/c530c3bd-fd6f-beb1-c460-c144aa666e2c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/eb670df8-d051-024b-1e78-cf83eb5eb0a6.png)


### 3-2.RSA Test Service Provider側のメタデータ取得

Entra IDとRSA Test Service ProviderのSAML連携手順を記載していきます。
まずは、下記URLにアクセスしましょう。

https://sptest.iamshowcase.com/

URLにアクセスした後、「Instructions > SP initiated SSO」を選択し、「DOWNLOAD METADATA」から、XMLファイルとして、メタデータを保存します。
なお、ここでSP initiated SSOを選んでいても、IdP initiated SSOも利用することができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/8f1af81a-86fa-9ed0-48cd-d6cd24c366ad.png)


ダウンロードしたメタデータをメモ帳などで開きます。（私はVisual Studio Codeを利用しています。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/3fa9bb91-a220-4b9b-3e3d-cada82cc2600.png)


メタデータの中のentityIDと、Locationをメモします。今回は以下のようになっていました。

<dl>
  <dt>entityID</dt>
  <dd>IAMShowcase</dd>
  <dt>Location</dt>
  <dd>https://sptest.iamshowcase.com/acs</dd>
</dl>

:::note info
補足
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を選択しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/861c177d-8a0b-ae3d-9ee1-155cc6fc85f4.png)

任意の名前（管理しやすい名前）を入力して、「作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/954f78cf-261c-4ec0-073a-ff09f18dd6e7.png)

「ユーザとグループ」で、テスト用のユーザを登録します。このユーザを利用して、SSOのテストを行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/43411d11-b464-d25c-cd61-25c37f2d4876.png)

「シングルサインオン > SAML」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/10dc5870-f23b-d649-25b6-4882132635ff.png)

基本的なSAML構成の「編集」を選択し、先ほどメモしたエンティティIDと応答URLを入力し、保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/4f395273-3679-0255-043e-602565325f8c.png)

### 3-4.RSA Test Service Provideにメタデータを登録

Entra ID側では、最後に、SAML証明書のフェデレーションメタデータXMLの「ダウンロード」をクリックし、xmlファイルをダウンロードします。このフェデレーションメタデータXMLをRSA Test Service Provideにアップロードすれば完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/9df168aa-7444-79a3-985b-497cb47e73ad.png)

RSA Test Service Providerサイトに戻り、先ほどのXMLファイルをアップロードします。
アップロードすると、URLが発行されますので、こちらのURLにアクセスすることで、SSOをすることが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/2e89e699-f417-5782-226d-624568098b26.png)

### 3-5.動作確認

まずはSP Initiated SSOの動作確認をするために、先ほどのURLにアクセスします。すると、Entra IDの認証が発生します。認証後、以下のように、ユーザ認証を反映したサイトにアクセスすることができます。サイト内では、属性情報やAsssertionを確認することも可能となっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/b7a72dec-f6d8-41e9-cb73-df4ff93bd4d4.png)

次に、IdP Initiated SSOを利用するため、Entra IDのマイアプリにアクセスしてみましょう。マイアプリのURLは以下となっています。

https://myapplications.microsoft.com/

念のため、Edgeの場合は、inPrivavteウィンドウを立ち上げて、URLにアクセスしましょう。inPrivateウィンドウを利用するのは、先の認証情報が残っていない状態でアクセスさせるためです。マイアプリで、RSA Test Service Providerのアイコンをクリックしてみると、先ほどと同様のRSA Test Service Providerの認証後画面にアクセスすることが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/780a3e61-9bbc-c68f-cb0c-5b38a5802e5b.png)


# 4.おわりに

SAMLといったSSOは、用語も多く混乱しがちですが、今回のRSA Test Service Providerで、SAMLによるSSOを実現するだけでしたら、簡単にできることが分かったのではないでしょうか。Entra IDを利用する場合は、条件付きアクセスなどもできますので、その際のテスト用SaaSにも使えたりしますので、便利です。

次回は、SalesforceとEntra IDのSAMLの記事です。

https://qiita.com/mokonacl/items/74c2d70b479139ef6763