閱讀英文

共用方式為


使用 Microsoft Entra ID 進行 Azure 機密總帳驗證

存取 Azure 機密總帳的建議方式是向 Microsoft Entra ID 服務進行驗證;這麼做,可確保 Azure 機密總帳永遠不會存取主體的目錄認證。

若要這樣做,用戶端會執行兩個步驟組成的程序:

  1. 在第一個步驟中,用戶端:
    1. 與 Microsoft Entra 服務通訊。
    2. 向 Microsoft Entra 服務進行驗證。
    3. 要求特別針對 Azure 機密總帳發出的存取權杖。
  2. 在第二個步驟中,用戶端會向 Azure 機密總帳發出要求,並提供在第一個步驟中取得的存取權杖,作為 Azure 機密總帳的身分識別證明。

接著,Azure 機密總帳會代表 Microsoft Entra ID 發出存取權杖的安全性主體來執行要求。 所有授權檢查都是使用此身分識別來執行。

在大部分的情況下,建議使用其中一個 Azure 機密總帳 SDK,以程式設計方式存取服務,因為其會免除上述流程的許多麻煩 (還有更多好處)。 例如,請參閱 Python 用戶端程式庫.NET 用戶端程式庫

主要驗證案例如下:

  • 驗證登入使用者的用戶端應用程式:在此案例中,互動式 (用戶端) 應用程式會觸發 Microsoft Entra 提示,要求使用者提供認證 (例如使用者名稱和密碼)。 請參閱使用者驗證

  • 「無周邊」應用程式:在此案例中,應用程式會在沒有使用者的情況下執行,以提供認證。 應用程式會改為使用一些已設定的認證,向 Microsoft Entra ID 驗證其「本身」的身分。 請參閱應用程式驗證

  • 代理者驗證。 在此案例中,有時稱為「Web 服務」或「Web 應用程式」案例,應用程式會從另一個應用程式取得 Microsoft Entra 存取權杖,然後將其「轉換」為另一個可搭配 Azure 機密總帳使用的 Microsoft Entra 存取權杖。 換句話說,此應用程式可作為使用者或提供認證的應用程式,以及 Azure 機密總帳之間的中繼程式。 請參閱代理者驗證

Microsoft Entra 參數

適用於 Azure 機密總帳的 Microsoft Entra 資源

從 MMicrosoft Entra ID 取得存取權杖時,用戶端必須指出權杖應發給哪一個 Microsoft Entra 資源。 Azure 機密總帳端點的 Microsoft Entra 資源是端點的 URI,禁止連接埠資訊和路徑。

例如,如果您有名為 "myACL" 的 Azure 機密總帳,則 URI 會是:

txt
https://myACL.confidential-ledger.azure.com

Microsoft Entra 租用戶識別碼

Microsoft Entra ID 是多租用戶服務,而且每個組織都可以在 Microsoft Entra ID 中建立稱為目錄的物件。 目錄物件會保存安全性相關的物件,例如使用者帳戶、應用程式和群組。 Microsoft Entra ID 通常會將目錄稱為租用戶。 Microsoft Entra 租用戶是由 GUID (租用戶識別碼) 來識別。 在許多情況下,也可以透過組織的網域名稱來識別 Microsoft Entra 的租用戶。

例如,名為 "Contoso" 的組織可能會有租用戶識別碼 aaaabbbb-0000-cccc-1111-dddd2222eeee 和功能變數名稱 contoso.com

Microsoft Entra 授權單位端點

Microsoft Entra ID 有許多端點可進行驗證:

  • 若已知要驗證的裝載主體租用戶時 (換句話說,知道使用者或應用程式位於哪一個 Microsoft Entra 目錄時),Microsoft Entra 端點為 https://login.microsoftonline.com/{tenantId}。 在這裡,{tenantId} 是 Microsoft Entra ID 中組織的租用戶識別碼,或其網域名稱 (例如 contoso.com)。
  • 當未知正在驗證裝載主體的租用戶時,可以藉由將上面的 {tenantId} 值取代為值 common 來使用「一般」端點。

用於驗證的 Microsoft Entra 服務端點也稱為 Microsoft Entra 授權單位 URL,或簡稱 Microsoft Entra 授權單位

注意

國家雲端中的 Microsoft Entra 服務端點會變更。 使用部署在國家雲端的 Azure 機密總帳服務時,請設定對應的國家雲端 Microsoft Entra 服務端點。 若要變更端點,請將環境變數 AadAuthorityUri 設定為所需的 URI。

使用者驗證

使用使用者驗證存取 Azure 機密總帳最簡單的方式是使用 Azure 機密總帳 SDK,並將 Azure 機密總帳連接字串的 Federated Authentication 屬性設定為 true。 第一次使用 SDK 將要求傳送給服務時,使用者會看到要輸入 Microsoft Entra 認證的登入表單。 驗證成功之後,要求就會傳送到 Azure 機密總帳。

未使用 Azure 機密總帳 SDK 的應用程式仍可使用 Microsoft 驗證程式庫 (MSAL),而不是實作 Microsoft Entra 服務安全性通訊協定用戶端。 請參閱利用適用於開發人員的 Microsoft 身分識別平台,讓 Web 應用程式能夠登入使用者以及呼叫 API

如果您的應用程式是要作為前端並驗證 Azure 機密總帳叢集的使用者,則必須取得 Azure 機密總帳的委派權限。

應用程式驗證

使用 Azure 機密總帳的應用程式必須使用 Microsoft Entra ID 的權杖進行驗證。 應用程式擁有者必須先在 Microsoft Entra ID 中註冊該應用程式。 註冊也會建立可在所有租用戶中識別應用程式的第二個應用程式物件。

如需使用 Microsoft Entra ID 註冊 Azure 機密總帳應用程式的詳細步驟,請檢閱下列文章:

註冊結束時,應用程式擁有者會取得下列值:

  • 應用程式識別碼 (也稱為 Microsoft Entra 用戶端識別碼或 appID)
  • 驗證金鑰 (也稱為共用密碼)。

應用程式必須向 Microsoft Entra ID 出示這兩個值才能取得權杖。

Azure 機密總帳 SDK 使用 Azure 身分識別用戶端程式庫,可以跨環境使用相同的程式碼來順利驗證 Azure 機密總帳。

代理者驗證

在此案例中,應用程式會針對應用程式所管理的部分任意資源傳送 Microsoft Entra 存取權杖,並使用該權杖來取得 Azure 機密總帳資源的新 Microsoft Entra 存取權杖,讓應用程式可以代表原始 Microsoft Entra 存取權杖所指出的主體來存取機密總帳。

此流程稱為 OAuth2 權杖交換流程。 其通常需要使用 Microsoft Entra ID 來執行多個設定步驟,而且在某些情況下 (取決於 Microsoft Entra 租用戶設定) 可能需要 Microsoft Entra 租用戶管理員提供特別同意。

下一步