

# ブラウザに SAML レスポンスを表示する
<a name="troubleshoot_saml_view-saml-response"></a>

次の手順では、SAML 2.0 に関連する問題のトラブルシューティング時に、ブラウザからサービスプロバイダーからの SAML 応答を表示する方法について説明します。

すべてのブラウザに共通して、問題を再現できるページに移動します。次に、ブラウザごとの適切なステップに従います。

**Topics**
+ [Google Chrome](#chrome)
+ [Mozilla Firefox](#firefox)
+ [Apple Safari](#safari)
+ [Base64 エンコードされた SAML レスポンスの処理](#whatnext)

## Google Chrome
<a name="chrome"></a>

**Chrome で SAML レスポンスを表示するには**

これらのステップは、Google Chrome のバージョン 106.0.5249.103 (公式ビルド) (arm64) を使用してテストされました。別のバージョンを使用している場合、それに応じてステップの調整が必要になることがあります。

1. **F12** キーを押して、**[Developer Tools]** (デベロッパーツール) コンソールを開始します。

1. **[Network]** (ネットワーク) タブを選択し、**[Developer Tools]** (デベロッパーツール) ウィンドウの左上にある **[Preserve log]** (ログを保存) を選択します。

1. 問題を再現します。

1. (オプション) **[Developer Tools]** (デベロッパーツール) の **[Network]** (ネットワーク) ログペインに **[Method]** (メソッド) 列が表示されない場合は、任意の列ラベルを右クリックし、**[Method]** (メソッド) を選択して列を追加します。

1. **[Developer Tools]** (デベロッパーツール) の **[Network]** (ネットワーク) ログペインで **[SAML Post]** (SAML 投稿) を探します。その行を選択し、上部にある **[Payload]** (ペイロード) タブを表示します。エンコードされたリクエストを含む **[SAMLResponse]** 要素を探します。関連する値は、Base64 でエンコードされたレスポンスです。

## Mozilla Firefox
<a name="firefox"></a>

**Firefox で SAML レスポンスを表示するには**

この手順は、Mozilla Firefox のバージョン 105.0.3 (64 ビット) でテストされています。別のバージョンを使用している場合、それに応じてステップの調整が必要になることがあります。

1. **F12** を押して、**[Web Developer Tools]** (ウェブデベロッパーツール) コンソールを起動します。

1. [**Network (ネットワーク)**] タブを選択します。

1. **[Web Developer Tools]** (ウェブデベロッパーツール) ウィンドウの右上で、オプション (小さな歯車のアイコン) を選択します。**[Persist logs]** (永続ログ) を選択します。

1. 問題を再現します。

1. (オプション) **[Web Developer Tools]** (ウェブデベロッパーツール) の **[Network]** (ネットワーク) ログペインに **[Method]** (メソッド) 列が表示されない場合は、任意の列ラベルを右クリックし、**[Method]** (メソッド) を選択して列を追加します。

1. テーブルで [**POST** **SAML**] を見つけます。その行を選択し、**[Request]** (リクエスト) タブを表示して **SAMLResponse** 要素を見つけます。関連する値は、Base64 でエンコードされたレスポンスです。

## Apple Safari
<a name="safari"></a>

**Safari で SAML レスポンスを表示するには**

これらのステップは、Apple Safari のバージョン 16.0 (17614.1.25.9.10, 17614) を使用してテストされました。別のバージョンを使用している場合、それに応じてステップの調整が必要になることがあります。

1. Safari で Web Inspector を有効にします。[**設定**] ウィンドウを開き、[**Advanced (詳細)**] タブを選択して、[**Show Develop menu in the menu bar (メニューバーに開発メニューを表示)**] を選択します。

1. ここで Web Inspector を開くことができます。メニューバーで **[Develop]** (開発) を選択し、**[Show Web Inspector]** (Web インスペクターを表示) を選択します。

1. [**Network (ネットワーク)**] タブを選択します。

1. **[Web Inspector]** (Web インスペクター) ウィンドウの左上で、オプション (3 本の水平線を含む小さな円のアイコン) を選択します。**[Preserve Log]** (ログを保存) を選択します。

1. (オプション) **[Web Inspector]** (Web インスペクター) の **[Network]** (ネットワーク) ログペインに **[Method]** (メソッド) 列が表示されない場合は、任意の列ラベルを右クリックし、**[Method]** (メソッド) を選択して列を追加します。

1. 問題を再現します。

1. テーブルで [**POST** **SAML**] を見つけます。その行を選択し、[Headers] (ヘッダー) タブを表示します。

1. エンコードされたリクエストを含む **[SAMLResponse]** 要素を探します。下にスクロールして、`Request Data` という名前の `SAMLResponse` を探します。関連する値は、Base64 でエンコードされたレスポンスです。

## Base64 エンコードされた SAML レスポンスの処理
<a name="whatnext"></a>

ブラウザで Base64 エンコードされた SAML レスポンスエレメントが見つかったら、それをコピーし、任意の Base64 デコードツールを使用して、XML タグの付いたレスポンスを抽出します。

**セキュリティのヒント**  
表示している SAML レスポンスデータには重要なデータが含まれる場合があるため、*オンライン*の base64 デコーダを使用しないことをお勧めします。代わりに、ローカルコンピュータにインストールされた、ネットワーク経由で SAML データを送信しないツールを使用します。

**Windows システムの組み込みオプション (PowerShell):**

```
PS C:\> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("base64encodedtext"))
```

**MacOS および Linux システムの組み込みオプション:**

```
$ echo "base64encodedtext" | base64 --decode
```

**デコードされたファイルの値を確認する**  
デコードされた SAML レスポンスファイルの値を確認します。
+ saml:NameID 属性の値が認証されたユーザーのユーザー名と一致することを確認します。
+ https://aws.amazon.com/SAML/Attributes/Role の値を確認します。ARN と SAML プロバイダーでは大文字と小文字が区別され、[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) はアカウントのリソースと一致する必要があります。
+ https://aws.amazon.com/SAML/Attributes/RoleSessionName の値を確認します。値は、[クレームルール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html)の値と一致する必要があります。
+ E メールアドレスまたはアカウント名に属性値を設定する場合は、値が正しいことを確認してください。値は、認証されたユーザーの E メールアドレスまたはアカウント名に対応する必要があります。

**エラーをチェックして設定を確認する**  
値にエラーが含まれているかどうかを確認し、次の設定が正しいことを確認します。
+ クレームルールは必須要素を満たし、すべての ARN が正しい。詳細については、「[証明書利用者の信頼およびクレームの追加によって SAML 2.0 IdP を設定する](id_roles_providers_create_saml_relying-party.md)」を参照してください。
+ IdP から最新のメタデータファイルを SAML プロバイダーで AWS にアップロードしました。詳細については、「[SAML 2.0 フェデレーティッドプリンシパルを有効にして AWS マネジメントコンソール にアクセス](id_roles_providers_enable-console-saml.md)」を参照してください。
+ IAM ロールの信頼ポリシーを正しく設定しました。詳細については、「[ロールを引き受けるための各種方法](id_roles_manage-assume.md)」を参照してください。