設定 Microsoft Entra SAML 權杖加密

注意

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

SAML 令牌加密可讓您搭配支援 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 會使用 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. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別應用程式>企業應用程式>] [所有應用程式]。

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

  4. 在應用程式的頁面上,選取 [令牌加密]。

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

    注意

    令牌 加密 選項僅適用於已從 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 系統管理中心,移至 [身分識別>應用程式>企業應用程式>] [所有應用程式],然後選取已啟用 SAML 令牌加密的應用程式。

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

  3. 選取 [ 停用令牌加密]。

設定已註冊的應用程式 SAML 令牌加密

本節說明如何設定已註冊應用程式的 SAML 令牌加密。 已從 Microsoft Entra 系統管理中心的 [應用程式註冊] 刀鋒視窗設定的應用程式。 針對企業應用程式,請遵循設定 企業應用程式 SAML 令牌加密 指引。

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

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

當您使用 Graph、PowerShell 或在應用程式指令清單中設定 keyCredential 時,應該會產生要用於 keyId 的 GUID。

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

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

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

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

  4. 在應用程式的頁面中,選取 [指令清單] 以編輯應用程式指令清單

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

下一步