Microsoft Entra の SAML トークン暗号化を構成する
注意
トークン暗号化は、Microsoft Entra ID P1 または P2 の機能です。 Microsoft Entra のエディション、機能、価格の詳細については、Microsoft Entra の価格に関する記事を参照してください。
SAML トークン暗号化を使用すると、それをサポートしているアプリケーションで、暗号化された SAML アサーションを使用できるようになります。 アプリケーションに対してこれが構成されている場合、Microsoft Entra ID は、Microsoft Entra ID に格納されている証明書から取得した公開キーを使用して、そのアプリケーションから出力された SAML アサーションを暗号化します。 アプリケーションでは、対応する秘密キーを使用してトークンを復号化する必要があります。これにより、現在サインインしているユーザーの認証の証拠として、そのトークンを使用できるようになります。
Microsoft Entra ID とアプリケーションの間で SAML アサーションを暗号化すると、トークンの内容がインターセプトされるのをより強力に防護して、個人や会社のデータが侵害されるのを防ぐことができます。
トークン暗号化を使用しなかった場合でも、Microsoft Entra の SAML トークンがネットワーク上でクリア テキストのまま渡されることはありません。 Microsoft Entra ID では、トークンの要求/応答の交換が、暗号化された HTTPS/TLS チャネル経由で行われるようにする必要があります。これにより、IDP、ブラウザー、およびアプリケーション間の通信が、暗号化されたリンク経由で行われるようになります。 お客様の環境でトークン暗号化を使用するメリットを、もっと多くの証明書の管理で生じるオーバーヘッドと比較して検討してください。
トークン暗号化を構成するには、公開キーを含んだ X.509 証明書ファイルを、アプリケーションを表す Microsoft Entra アプリケーション オブジェクトにアップロードする必要があります。 X.509 証明書を取得する方法としては、アプリケーション自体からダウンロードする方法と、アプリケーション ベンダーから取得する方法があります (アプリケーション ベンダーから暗号化キーが提供される場合)。アプリケーションでユーザーが秘密キーを指定する必要がある場合は、暗号化ツールと、アプリケーションのキー ストアにアップロードされた秘密キー部分、および Microsoft Entra ID にアップロードされた対応する公開キー証明書を使用して、秘密キーを作成できます。
Microsoft Entra ID では、SAML アサーション データの暗号化に AES-256 が使われます。
前提条件
SAML トークン暗号化を構成するには、次が必要です。
- Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール: グローバル管理者、クラウド アプリケーション管理者、アプリケーション管理者、またはサービス プリンシパルの所有者。
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
エンタープライズ アプリケーションの SAML トークン暗号化を構成する
このセクションでは、エンタープライズ アプリケーションの SAML トークン暗号化を構成する方法について説明します。 Microsoft Entra 管理センターの [エンタープライズ アプリケーション] ブレードで、アプリケーション ギャラリーまたはギャラリー以外のアプリから設定されたアプリケーション。 [アプリの登録] エクスペリエンスを通じて登録されたアプリケーションについては、「登録済みアプリケーション SAML トークン暗号化を構成する」のガイダンスに従ってください。
エンタープライズ アプリケーションの SAML トークン暗号化を構成するには、次の手順に従います。
アプリケーションで構成されている秘密キーに一致する公開キー証明書を取得します。
暗号化に使用する非対称キー ペアを作成します。 なお、暗号化に使用する公開キーがアプリケーションで提供される場合は、アプリケーションの指示に従って X.509 証明書をダウンロードします。
公開キーは、.cer 形式の X.509 証明書ファイルに格納する必要があります。 証明書ファイルの内容をテキスト エディターにコピーし、.cer ファイルとして保存できます。 証明書ファイルには公開キーのみを含め、秘密キーは含めないようにする必要があります。
インスタンス用に作成したキーがアプリケーションで使用される場合は、アプリケーションの指示に従って、Microsoft Entra テナントからのトークンの復号化に使用される秘密キーをインストールしてください。
Microsoft Entra ID のアプリケーション構成に証明書を追加します。
Microsoft Entra管理センターでトークン暗号化を構成する
Microsoft Entra管理センター内で、アプリケーション構成にパブリック証明書を追加できます。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
検索ボックスに既存のアプリケーションの名前を入力し、検索結果からアプリケーションを選択します。
アプリケーションのページで、[トークン暗号化] を選択します。
Note
[トークン暗号化] オプションは、Microsoft Entra 管理センターの [エンタープライズ アプリケーション] ブレードの、アプリケーション ギャラリーまたはギャラリー以外のアプリから設定された SAML アプリケーションに対してのみ使用できます。 その他のアプリケーションについては、このメニュー オプションは無効になります。
[トークン暗号化] ページで [証明書のインポート] を選択して、公開 X.509 証明書を含んだ .cer ファイルをインポートします。
証明書がインポートされ、アプリケーション側で使用する秘密キーが構成されたら、サムプリント状態の横にある [...] を選択して暗号化をアクティブ化し、ドロップダウン メニューのオプションから [トークン暗号化証明書のアクティブ化] を選択します。
[はい] を選択して、トークン暗号化証明書のアクティブ化を確認します。
アプリケーション用に出力された SAML アサーションが暗号化されたことを確認します。
Microsoft Entra管理センターでトークン暗号化を非アクティブ化する
Microsoft Entra管理センターで、[ID]>[アプリケーション]>[Enterprise アプリケーション]>[すべてのアプリケーション]の順に移動し、SAML トークン暗号化が有効になっているアプリケーションを選択します。
アプリケーションのページで、[トークン暗号化] を選択し、証明書を検索した後、[...] オプションを選択してドロップダウン メニューを表示します。
[トークン暗号化証明書の非アクティブ化] を選択します。
登録済みアプリケーションの SAML トークン暗号化を構成する
このセクションでは、登録済みアプリケーションの SAML トークン暗号化を構成する方法について説明します。 Microsoft Entra 管理センターの [アプリの登録] ブレードから設定されたアプリケーション。 エンタープライズ アプリケーションの場合は、「エンタープライズ アプリケーションの SAML トークン暗号化の構成」のガイダンスに従ってください。
暗号化証明書は、encrypt
使用タグを使用して Microsoft Entra ID 内のアプリケーション オブジェクトに格納されます。 暗号化証明書は複数構成できます。トークンの暗号化用にアクティブ化された証明書は、tokenEncryptionKeyID
属性によって識別されます。
Microsoft Graph API または PowerShell を使用してトークン暗号化を構成するには、アプリケーションのオブジェクト ID が必要になります。 この値はプログラムによって検索することもでき、Microsoft Entra 管理センターでアプリケーションの [プロパティ] に移動して、[オブジェクト ID] の値を見て確認することもできます。
Graph、PowerShell、またはアプリケーション マニフェストを使用して keyCredential を構成する場合は、keyId に使用する GUID を生成する必要があります。
アプリケーション登録のトークン暗号化を構成するには、次の手順に従ってください。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[アプリの登録]>[すべてのアプリケーション] を参照してください。
検索ボックスに既存のアプリケーションの名前を入力し、検索結果からアプリケーションを選択します。
アプリケーションのページで、[マニフェスト] を選択してアプリケーション マニフェストを編集します。
次の例は、2 つの暗号化証明書を使用して構成されたアプリケーション マニフェストを示したものです。2 つ目の証明書は、tokenEncryptionKeyId を使用してアクティブな証明書として選択されています。
{ "id": "3cca40e2-367e-45a5-8440-ed94edd6cc35", "accessTokenAcceptedVersion": null, "allowPublicClient": false, "appId": "cb2df8fb-63c4-4c35-bba5-3d659dd81bf1", "appRoles": [], "oauth2AllowUrlPathMatching": false, "createdDateTime": "2017-12-15T02:10:56Z", "groupMembershipClaims": "SecurityGroup", "informationalUrls": { "termsOfService": null, "support": null, "privacy": null, "marketing": null }, "identifierUris": [ "https://testapp" ], "keyCredentials": [ { "customKeyIdentifier": "Tog/O1Hv1LtdsbPU5nPphbMduD=", "endDate": "2039-12-31T23:59:59Z", "keyId": "8be4cb65-59d9-404a-a6f5-3d3fb4030351", "startDate": "2018-10-25T21:42:18Z", "type": "AsymmetricX509Cert", "usage": "Encrypt", "value": <Base64EncodedKeyFile> "displayName": "CN=SAMLEncryptTest" }, { "customKeyIdentifier": "U5nPphbMduDmr3c9Q3p0msqp6eEI=", "endDate": "2039-12-31T23:59:59Z", "keyId": "6b9c6e80-d251-43f3-9910-9f1f0be2e851", "startDate": "2018-10-25T21:42:18Z", "type": "AsymmetricX509Cert", "usage": "Encrypt", "value": <Base64EncodedKeyFile> "displayName": "CN=SAMLEncryptTest2" } ], "knownClientApplications": [], "logoUrl": null, "logoutUrl": null, "name": "Test SAML Application", "oauth2AllowIdTokenImplicitFlow": true, "oauth2AllowImplicitFlow": false, "oauth2Permissions": [], "oauth2RequirePostResponse": false, "orgRestrictions": [], "parentalControlSettings": { "countriesBlockedForMinors": [], "legalAgeGroupRule": "Allow" }, "passwordCredentials": [], "preAuthorizedApplications": [], "publisherDomain": null, "replyUrlsWithType": [], "requiredResourceAccess": [], "samlMetadataUrl": null, "signInUrl": "https://127.0.0.1:444/applications/default.aspx?metadata=customappsso|ISV9.1|primary|z" "signInAudience": "AzureADMyOrg", "tags": [], "tokenEncryptionKeyId": "6b9c6e80-d251-43f3-9910-9f1f0be2e851" }
次のステップ
- Microsoft Entra ID で SAML プロトコルを使用する方法を参照してください
- Microsoft Entra ID の SAML トークンの形式、セキュリティ特性、および内容について学習する