Microsoft Entra の SAML トークン暗号化を構成する

Note

トークン暗号化は、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 トークン暗号化を構成するには、次の手順に従います。

  1. アプリケーションで構成されている秘密キーに一致する公開キー証明書を取得します。

    暗号化に使用する非対称キー ペアを作成します。 なお、暗号化に使用する公開キーがアプリケーションで提供される場合は、アプリケーションの指示に従って X.509 証明書をダウンロードします。

    公開キーは、.cer 形式の X.509 証明書ファイルに格納する必要があります。 証明書ファイルの内容をテキスト エディターにコピーし、.cer ファイルとして保存できます。 証明書ファイルには公開キーのみを含め、秘密キーは含めないようにする必要があります。

    インスタンス用に作成したキーがアプリケーションで使用される場合は、アプリケーションの指示に従って、Microsoft Entra テナントからのトークンの復号化に使用される秘密キーをインストールしてください。

  2. Microsoft Entra ID のアプリケーション構成に証明書を追加します。

Microsoft Entra管理センターでトークン暗号化を構成する

Microsoft Entra管理センター内で、アプリケーション構成にパブリック証明書を追加できます。

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。

  3. 検索ボックスに既存のアプリケーションの名前を入力し、検索結果からアプリケーションを選択します。

  4. アプリケーションのページで、[トークン暗号化] を選択します。

    Screenshot shows how to select the Token encryption option in the Microsoft Entra admin center.

    Note

    [トークン暗号化] オプションは、Microsoft Entra 管理センターの [エンタープライズ アプリケーション] ブレードの、アプリケーション ギャラリーまたはギャラリー以外のアプリから設定された SAML アプリケーションに対してのみ使用できます。 その他のアプリケーションについては、このメニュー オプションは無効になります。

  5. [トークン暗号化] ページで [証明書のインポート] を選択して、公開 X.509 証明書を含んだ .cer ファイルをインポートします。

    Screenshot shows how to import a certificate file using Microsoft Entra admin center.

  6. 証明書がインポートされ、アプリケーション側で使用する秘密キーが構成されたら、サムプリント状態の横にある [...] を選択して暗号化をアクティブ化し、ドロップダウン メニューのオプションから [トークン暗号化証明書のアクティブ化] を選択します。

  7. [はい] を選択して、トークン暗号化証明書のアクティブ化を確認します。

  8. アプリケーション用に出力された SAML アサーションが暗号化されたことを確認します。

Microsoft Entra管理センターでトークン暗号化を非アクティブ化する

  1. Microsoft Entra管理センターで、[ID]>[アプリケーション]>[Enterprise アプリケーション]>[すべてのアプリケーション]の順に移動し、SAML トークン暗号化が有効になっているアプリケーションを選択します。

  2. アプリケーションのページで、[トークン暗号化] を選択し、証明書を検索した後、[...] オプションを選択してドロップダウン メニューを表示します。

  3. [トークン暗号化証明書の非アクティブ化] を選択します。

登録済みアプリケーションの SAML トークン暗号化を構成する

このセクションでは、登録済みアプリケーションの SAML トークン暗号化を構成する方法について説明します。 Microsoft Entra 管理センターの [アプリの登録] ブレードから設定されたアプリケーション。 エンタープライズ アプリケーションの場合は、「エンタープライズ アプリケーションの SAML トークン暗号化の構成」のガイダンスに従ってください。

暗号化証明書は、encrypt 使用タグを使用して Microsoft Entra ID 内のアプリケーション オブジェクトに格納されます。 暗号化証明書は複数構成できます。トークンの暗号化用にアクティブ化された証明書は、tokenEncryptionKeyID 属性によって識別されます。

Microsoft Graph API または PowerShell を使用してトークン暗号化を構成するには、アプリケーションのオブジェクト ID が必要になります。 この値はプログラムによって検索することもでき、Microsoft Entra 管理センターでアプリケーションの [プロパティ] に移動して、[オブジェクト ID] の値を見て確認することもできます。

Graph、PowerShell、またはアプリケーション マニフェストを使用して keyCredential を構成する場合は、keyId に使用する GUID を生成する必要があります。

アプリケーション登録のトークン暗号化を構成するには、次の手順に従ってください。

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[アプリの登録]>[すべてのアプリケーション] を参照してください。

  3. 検索ボックスに既存のアプリケーションの名前を入力し、検索結果からアプリケーションを選択します。

  4. アプリケーションのページで、[マニフェスト] を選択してアプリケーション マニフェストを編集します。

    次の例は、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" 
    }  
    

次のステップ