【第6回】Azureで社内システム再現（オンプレ編）｜ADFS & ShibbolethでSSOを実装④

## 概要

「Azureで社内システム再現（オンプレ編）」では、  
Azure の IaaS サービスを使って簡単な社内システムを再現します。

機能としては、社員番号を入力して検索ボタンを押すと、  
対応する名前を表示するだけのシンプルなものです。

※詳しい全体構成については、[【第0回】Azureで社内システム再現（オンプレ編）｜構成図と動作の流れ](https://qiita.com/saba_infra/items/a5e58ded68973e4551ee) で紹介しています。

---

## システム構成（今回の対象範囲）

![ADFS_dousa_testsp (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/9ff56039-0828-4488-aac9-d0e178bcd929.png)

今回は、外部公開されているテスト用 SP サイトと ADFS（IdP）の間に  
SAML ベースの信頼関係を構築します。

このテスト SP サイトでは、ログイン後の画面にユーザー情報が表示されるため、  
ADFS 側の要求規則（Claim ルール）が正しく動作しているかを確認しやすいのが特長です。

本記事では、以下の作業を実施します。

- テスト SP サイトが提供するメタデータをダウンロード  
- ADFS に SP メタデータをインポート（証明書利用者信頼の追加）  
- 要求規則を作成し、Active Directory の属性を SP に渡す  
- IdPメタデータを SP サイトにアップロード

## テスト SP サイトの紹介

今回使用するのは、以下の外部公開されたテスト用 SAML SP サイトです。

🔗 [https://sptest.iamshowcase.com/](https://sptest.iamshowcase.com/)

![スクリーンショット 2025-04-14 11.57.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/864b382d-7858-4b70-b284-835c99bf9dee.png)

このサイトは、**SAML 認証の動作確認**を目的としたサービスプロバイダ（SP）です。  
IdP（ADFSなど）と連携することで、**SAML アサーションの内容を画面上に表示してくれる**ため、  
要求規則（Claim ルール）の動作確認に適しています。

ログインが成功すると、ユーザー名やアサーションの属性値がそのままブラウザに表示されます。  
そのため、ADFS から送信される属性情報（SAM-Account-Name など）が正しく受け渡されているかどうかを  
視覚的に確認することができます。

---


## 1. テストSPサイトのメタデータをダウンロード

テストSPサイト（[https://sptest.iamshowcase.com/](https://sptest.iamshowcase.com/)）から、ADFS 連携用のメタデータを取得します。

---

### IDP initiated SSO を選択

画面上部のメニュー「Instructions」から「IDP initiated SSO」を選択します。

![スクリーンショット 2025-04-08 15.32.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/ae36e420-30ff-4d7a-abc4-d89b3f9310e0.png)


>IDP initiated SSO と SP initiated SSO の違い**
>- **IDP initiated SSO**：IdP（今回は ADFS）から認証処理を開始する構成  
>- **SP initiated SSO**：SP 側のサービスからアクセスが始まり、そこから IdP にリダイレクトされる構成

---

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

表示されたページ内の「DOWNLOAD METADATA」ボタンをクリックします。

![スクリーンショット 2025-04-08 19.49.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/609a1ee3-8774-4ce8-bbc1-a9b76dadc002.png)


クリックすると、テストSPが提供するメタデータ（XML形式）がブラウザ上に表示されます。

---

### メタデータファイルを保存

ブラウザ上に表示された XML ファイルを右クリックし、「名前を付けて保存」を選択します。

今回は、`testsp_metadata.xml` というファイル名で保存しました。
![スクリーンショット 2025-04-08 19.49.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/839365aa-53bc-4d1e-9a66-bbb87f2f94ab.png)

---

### 2. ADFS にメタデータをインポート（証明書利用者信頼の追加）

ダウンロードしたテストSPのメタデータを ADFS にインポートし、  
証明書利用者信頼（Relying Party Trust）として登録します。

---

#### メタデータファイルの指定

ウィザードを起動し、「証明書利用者についてのデータをファイルからインポートする」を選択します。  
保存しておいたメタデータファイル（例：`testsp_metadata.xml`）を指定します。

![スクリーンショット 2025-04-08 15.55.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/f3ee49b8-56f8-4aed-9c26-1d0922501580.png)


---

#### 表示名の設定

証明書利用者の表示名を設定します。  
ここでは `Test-SP` としました。

![スクリーンショット 2025-04-08 15.56.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/b575bad2-eb5a-42b4-9704-0c0cf701f9f9.png)

---

#### 登録完了の確認

設定が完了すると、ADFS の「証明書利用者信頼」に Test-SP が追加されていることが確認できます。

![スクリーンショット 2025-04-08 15.56.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/032b2b40-6fa4-49ce-945d-36e577ab8937.png)


---

### 3. クレームルール（要求規則）の設定

テスト SP サイトでは、IdP から送信された属性情報（クレーム）をログイン後の画面で確認できるようになっています。  
そのため、今回は学習目的として、Active Directory の属性を 1 つ SP に渡すルールを作成します。

---

#### クレームルールの作成

以下の画面では、**Active Directory の `sAMAccountName` 属性を「名前 ID」として送信するルール**を構成しています。

- 規則テンプレート：`LDAP 属性を要求として送信`
- 属性ストア：`Active Directory`
- LDAP 属性：`SAM-Account-Name`
- 出力方向の要求の種類：`名前 ID`

![スクリーンショット 2025-04-08 16.01.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/e41e6016-9f1b-4e56-a5a7-37ebf8380117.png)


この設定により、ユーザーが SSO でログインした際、  
`sAMAccountName`（例：user01）が「名前 ID」として SP に送信され、ログイン後画面に表示されます。


---

## 4. ADFS メタデータを SP サイトにアップロード（SP Initiated SSO の構成）

SP Initiated SSO（SP起点のシングルサインオン）を構成するために、テスト用 SP サイトに ADFS のメタデータをアップロードします。これにより、テストサイトからの認証リクエストに ADFS が応答できるようになります。

---

### SP Initiated SSO の設定ページを開く

テスト SP サイト（[https://sptest.iamshowcase.com](https://sptest.iamshowcase.com)）にアクセスし、メニューから  
`Instructions` > `SP initiated SSO` を選択します。

![スクリーンショット 2025-04-08 15.32.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/e2b13861-1c5b-4171-b28e-2485981be32d.png)


---

### ADFS のメタデータをアップロード

次に、ADFS からダウンロードしたメタデータファイル（`FederationMetadata.xml`）をアップロードします。

`CHOOSE FILE` ボタンを押してファイルを選択し、`SUBMIT FILE` をクリックします。

![スクリーンショット 2025-04-08 15.33.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/177952c3-c73e-4b8b-93ca-d336b35f5d08.png)

---

### テスト SP の専用アクセス URL を取得

アップロードが成功すると、SP Initiated SSO に使用する **専用URL** が生成されます。  
この URL にアクセスすることで、SAML 認証フローが開始されます。


```
https://sptest.iamshowcase.com/ixs?idp=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

![スクリーンショット 2025-04-08 15.51.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/4c84edd8-33f9-42d2-9c9c-fd522e0462c4.png)

---