次の方法で共有


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

トークン暗号化は、Microsoft Entra ID P1 または P2 の機能です。 Microsoft Entra のエディション、機能、価格の詳細については、 Microsoft Entra の価格に関するページを参照してください。

SAML トークン暗号化を使用すると、それをサポートしているアプリケーションで、暗号化された SAML アサーションを使用できるようになります。 アプリケーション用に構成すると、そのアプリケーションに対して出力される SAML アサーションが Microsoft Entra ID によって暗号化されます。 SAML アサーションは、Microsoft Entra ID に格納されている証明書から取得した公開キーを使用して暗号化されます。 アプリケーションでは、対応する秘密キーを使用してトークンを復号化する必要があります。これにより、現在サインインしているユーザーの認証の証拠として、そのトークンを使用できるようになります。

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. Entra ID>Enterprise アプリ>すべてのアプリケーションを参照します。

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

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

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

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

    Microsoft Entra 管理センターを使用して証明書ファイルをインポートする方法を示すスクリーンショット。

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

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

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

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

  1. Microsoft Entra 管理センターで、 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. Entra ID>アプリケーションの登録>すべてのアプリケーションに移動します。

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

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

    次の例は、2 つの暗号化証明書を使用して構成されたアプリケーション マニフェストを示したものです。2 つ目の証明書は、tokenEncryptionKeyId を使用してアクティブな証明書として選択されています。

    { 
      "id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
      "accessTokenAcceptedVersion": null,
      "allowPublicClient": false,
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "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": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333", 
          "startDate": "2018-10-25T21:42:18Z", 
          "type": "AsymmetricX509Cert", 
          "usage": "Encrypt", 
          "value": <Base64EncodedKeyFile> 
          "displayName": "CN=SAMLEncryptTest" 
        }, 
        {
          "customKeyIdentifier": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u=",
          "endDate": "2039-12-31T23:59:59Z", 
          "keyId": "bbbbbbbb-1c1c-2d2d-3e3e-444444444444",
          "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": "bbbbbbbb-1c1c-2d2d-3e3e-444444444444" 
    }