Azure Active Directory B2C 中原則密鑰的概觀
開始之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自定義原則。 本文中每個方法所需的步驟都不同。
此功能僅適用於自定義原則。 針對安裝步驟,請在上述選取器中選取 [自定義原則 ]。
Azure Active Directory B2C (Azure AD B2C) 會以原則密鑰的形式儲存秘密和憑證,以建立與它整合之服務的信任。 這些信任包含:
- 外部識別提供者
- 使用 連線 REST API 服務
- 令牌簽署和加密
本文討論您需要瞭解 Azure AD B2C 所使用的原則密鑰。
注意
目前,原則金鑰的設定僅限於 自定義原則 。
您可以設定秘密和憑證,以在 [原則密鑰] 選單下的 [Azure 入口網站 中建立服務之間的信任。 密鑰可以是對稱或非對稱。 對稱 密碼編譯或私鑰密碼編譯是共用密碼用來加密和解密數據的位置。 非對稱 式密碼編譯或公鑰密碼編譯是使用金鑰組的密碼編譯系統,其中包含與信賴憑證者應用程式和私鑰共用的公鑰,這些金鑰僅對 Azure AD B2C 已知。
原則索引鍵集和金鑰
Azure AD B2C 中原則密鑰的最上層資源是 Keyset 容器。 每個索引鍵集至少包含一個 Key。 索引鍵具有下列屬性:
屬性 | 必要 | 備註 |
---|---|---|
use |
Yes | 使用方式:識別公鑰的預期用途。 加密數據 enc ,或驗證數據 sig 上的簽章。 |
nbf |
No | 啟用日期和時間。 |
exp |
No | 到期日期和時間。 |
建議您根據 PKI 標準設定金鑰啟用和到期值。 基於安全性或原則原因,您可能需要定期輪替這些憑證。 例如,您可能會有原則每年輪替所有憑證。
若要建立金鑰,您可以選擇下列其中一種方法:
- 手動 - 使用您定義的字串建立秘密。 秘密是對稱金鑰。 您可以設定啟用和到期日。
- 已產生 - 自動產生金鑰。 您可以設定啟用和到期日。 有兩個選項:
- 秘密 - 產生對稱金鑰。
- RSA - 產生金鑰組(非對稱金鑰)。
- 上傳 - 上傳 憑證或 PKCS12 金鑰。 憑證必須包含私鑰和公鑰(非對稱金鑰)。
金鑰變換
基於安全性考慮,Azure AD B2C 可以定期變換密鑰,或在發生緊急狀況時立即變換密鑰。 任何與 Azure AD B2C 整合的應用程式、識別提供者或 REST API 都應該準備好處理密鑰變換事件,無論其發生頻率為何。 否則,如果您的應用程式或 Azure AD B2C 嘗試使用過期的密鑰來執行密碼編譯作業,登入要求將會失敗。
如果 Azure AD B2C 金鑰集有多個金鑰,則根據下列準則,一次只有一個密鑰作用中:
- 金鑰啟用是以啟用日期為基礎。
- 金鑰會依啟用日期以遞增順序排序。 在清單中進一步啟用日期的金鑰會顯示在較低的清單中。 沒有啟用日期的金鑰位於清單底部。
- 當目前的日期和時間大於密鑰的啟用日期時,Azure AD B2C 會啟動金鑰,並使用先前的作用中密鑰停止。
- 當目前金鑰的到期時間已過,且金鑰容器包含有效 無效的新密鑰, 且 到期 時間無效時,新的密鑰會自動變成作用中。
- 當目前金鑰的到期時間已過,且密鑰容器未包含有效的新密鑰且有效之前和到期時間時,Azure AD B2C 將無法使用過期的金鑰。 Azure AD B2C 會在自定義原則的相依元件內引發錯誤訊息。 若要避免此問題,您可以建立預設密鑰,而不需要啟用和到期日作為安全網。
- 當 JwtIssuer 技術配置檔中參考金鑰時,OpenId 連線 已知組態端點的金鑰端點會反映金鑰容器中設定的金鑰。 使用 OIDC 連結庫的應用程式會自動擷取此元數據,以確保它會使用正確的金鑰來驗證令牌。 如需詳細資訊,請瞭解如何使用 Microsoft 驗證連結庫,此連結庫一律會自動擷取最新的令牌簽署密鑰。
原則金鑰管理
若要取得密鑰容器內的目前作用中密鑰,請使用 Microsoft Graph API getActiveKey 端點。
若要新增或移除簽署與加密金鑰:
- 登入 Azure 入口網站。
- 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 在 [概觀] 頁面的 [原則] 底下,選取 [身分識別體驗架構]。
- 選取 原則金鑰
- 若要新增金鑰,請選取 [ 新增]。
- 若要移除新的金鑰,請選取金鑰,然後選取 [ 刪除]。 若要刪除金鑰,請輸入要刪除的金鑰容器名稱。 Azure AD B2C 會刪除金鑰,並使用後綴 .bak 建立金鑰複本。
取代金鑰
索引鍵集中的索引鍵無法取代或卸除式。 如果您需要變更現有的金鑰:
- 建議新增啟用日期設定為目前日期和時間的新金鑰。 Azure AD B2C 會啟動新的金鑰,並使用先前的作用中密鑰停止。
- 或者,您可以使用正確的索引鍵建立新的索引鍵集。 更新您的原則以使用新的金鑰集,然後移除舊的金鑰集。