本文列出應用程式可用來向 Azure 資源進行驗證的其他方法。 本文中的方法較不常使用;可能的話,建議您 使用 Azure SDK 概觀向 Azure 驗證 Python 應用程式中所述的其中一種方法。
互動式瀏覽器驗證
此方法會透過在預設系統中收集使用者認證,透過 InteractiveBrowserCredential 以互動方式驗證應用程式。
互動式瀏覽器驗證可讓應用程式執行互動式登入認證所允許的所有作業。 因此,如果您是訂用帳戶的擁有者或系統管理員,您的程式代碼就具有該訂用帳戶中大部分資源的固有存取權,而不需要指派任何特定許可權。 基於這個理由,除了實驗之外,不建議使用互動式瀏覽器驗證。
啟用應用程式以進行互動式瀏覽器驗證
執行下列步驟,讓應用程式能夠透過互動式瀏覽器流程進行驗證。 這些步驟也適用於稍後所述的 裝置程式代碼驗證。 只有在您的程式碼中使用 InteractiveBrowserCredential 時,才需要遵循此程式。
在 Azure 入口網站的 []上,導航至 [Microsoft Entra ID],然後在左側功能表上選取 [應用程式註冊] 。
選取您的應用程式的註冊,然後選取 [驗證]。
在 [進階設定] 下,選取 [是] 以允許 [公用用戶端流程]。
選取儲存以套用變更。
若要為特定資源授權應用程式,請流覽至該特定資源,選取 API 許可權,然後啟用 Microsoft Graph 和其他您想要存取的資源。 Microsoft Graph 預設為啟用。
這很重要
當您第一次登入時,您也必須是租戶的系統管理員,才能授予應用程式同意。
如果您無法在 Active Directory 上設定裝置代碼流程選項,您的應用程式可能需要是多租戶。 若要進行這項變更,請流覽至 [驗證] 面板,選取 [任何組織目錄中的帳戶](支援的帳戶類型下),然後 選取 [是][允許公用用戶端流程]。
使用 InteractiveBrowserCredential 的範例
下列範例示範如何使用 InteractiveBrowserCredential 來向 SubscriptionClient進行驗證:
# Show Azure subscription information
import os
from azure.identity import InteractiveBrowserCredential
from azure.mgmt.resource import SubscriptionClient
credential = InteractiveBrowserCredential()
subscription_client = SubscriptionClient(credential)
subscription = next(subscription_client.subscriptions.list())
print(subscription.subscription_id)
如需更精確的控制,例如設定重新導向 URI,您可以提供特定的自變數給 InteractiveBrowserCredential ,例如 redirect_uri。
裝置程式碼驗證
此方法會以互動方式驗證具有有限 UI 的裝置上的使用者(通常是沒有鍵盤的裝置):
- 當應用程式嘗試驗證時,認證會提示使用者輸入URL和驗證碼。
- 使用者瀏覽個別瀏覽器啟用裝置的 URL(電腦、智慧型手機等),並輸入程式代碼。
- 使用者遵循瀏覽器中的一般驗證程式。
- 成功驗證時,應用程式會在裝置上進行驗證。
如需詳細資訊,請參閱 Microsoft身分識別平臺和 OAuth 2.0 裝置授權授與流程。
開發環境中的裝置程式碼驗證可讓應用程式進行互動式登入認證所允許的所有作業。 因此,如果您是訂用帳戶的擁有者或系統管理員,您的程式代碼就具有該訂用帳戶中大部分資源的固有存取權,而不需要指派任何特定許可權。 不過,您可以使用這個方法搭配特定的用戶端識別符,而不是預設,您可以為其指派特定許可權。