共用方式為


設定 Microsoft Entra SAML 權杖加密

注意

令牌加密是 Microsoft Entra ID P1 或 P2 的功能。 若要深入瞭解 Microsoft Entra 版本、功能和價格,請參閱 Microsoft Entra

SAML 權杖加密允許將加密的 SAML 判斷提示與支援它的應用程式一起使用。 針對應用程式設定時,Microsoft Entra ID 會加密它針對該應用程式發出的 SAML 判斷提示。 它會使用從儲存在 Microsoft Entra 身分識別中的憑證取得的公鑰來加密 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 會使用 AES-256 加密 SAML 判斷提示的資料。

必要條件

若要設定 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. 瀏覽至 [身分識別]> [應用程式]> [企業應用程式]> [所有應用程式]

  3. 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。

  4. 在應用程式的頁面上,選取 [權杖加密]

    注意

    令牌加密選項僅適用於經由 Microsoft Entra 管理中心的 [企業應用程式] 窗格設定的 SAML 應用程式,無論是來自應用程式庫或非庫中的應用程式。 對於其他應用程式,此選項已停用。

  5. 在 [權杖加密] 頁面上,選取 [匯入憑證] 以匯入包含 X.509 公開憑證的 .cer 檔案。

    螢幕擷取畫面顯示如何使用 Microsoft Entra 系統管理中心來匯入憑證檔案。

  6. 匯入憑證,並設定私密金鑰以在應用程式端上使用後,透過選取指紋狀態旁邊的 [...] 啟用加密,然後從下拉式功能表中的選項選取 [啟用權杖加密]

  7. 選取 [是] 確認啟用權杖加密憑證。

  8. 確認為應用程式發出的 SAML 判斷提示已加密。

若要在 Microsoft Entra 系統管理中心停用權杖加密

  1. 在 Microsoft Entra 系統管理中心,流覽至 [身分識別>應用程式>企業應用程式>][所有應用程式],然後選取已啟用 SAML 令牌加密的應用程式。

  2. 在應用程式頁面上,選取 [權杖加密],找到憑證,然後選取 [...] 選項,以顯示下拉式功能表。

  3. 選取 [停用權杖加密]

設定已註冊應用程式 SAML 憑證加密

本節說明如何設定已註冊應用程式的 SAML 令牌加密。 這些應用程式是從 Microsoft Entra 系統管理中心的 [應用程式註冊] 窗格中設定。 針對企業應用程式,遵循設定企業應用程式 SAML 權杖加密指導。

加密憑證儲存在 Microsoft Entra ID 中的應用程式物件上,並包含 encrypt 使用量標記。 您可以設定多個加密憑證,由 tokenEncryptionKeyID 屬性識別用於加密令牌的啟用憑證。

您需要應用程式的物件識別碼,才能使用 Microsoft Graph API 或 PowerShell 來設定令牌加密。 您可以透過程式設計的方式找到此值,也可以移至 Microsoft Entra 系統管理中心中應用程式的 [屬性] 頁面並注意物件識別碼值。

當您使用 Graph、PowerShell 或是應用程式清單來設定 keyCredential 時,應該產生一個 GUID 來用作 keyId。

若要設定應用程式註冊的權杖加密,請遵循下列步驟:

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊]>[所有應用程式]

  3. 在搜尋方塊中輸入現有應用程式的名稱,然後從搜尋結果中選取應用程式。

  4. 在應用程序的頁面中,選取 [資訊清單] 編輯應用程式資訊清單

    下列範例示範使用兩個加密憑證設定的應用程式資訊清單,並使用 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" 
    }