ServicePrincipalAuthentication 類別

使用服務主體而非使用者身分識別來管理驗證。

服務主體驗證適用于自動化工作流程,例如 CI/CD 案例。 這種類型的驗證會將驗證程式與任何特定的使用者登入分離,並允許受控存取控制。

類別 ServicePrincipalAuthentication 建構函式。

繼承
ServicePrincipalAuthentication

建構函式

ServicePrincipalAuthentication(tenant_id, service_principal_id, service_principal_password, cloud='AzureCloud', _enable_caching=True)

參數

tenant_id
str
必要

服務身分識別所屬的 Active Directory 租使用者。

service_principal_id
str
必要

服務主體識別碼。

service_principal_password
str
必要

服務主體密碼/金鑰。

cloud
str
預設值: AzureCloud

目標雲端的名稱。 可以是其中一個 「AzureCloud」、「AzureChinaCloud」 或 「AzureUSGovernment」。 如果未指定任何雲端,則會使用 「AzureCloud」。

tenant_id
str
必要

服務身分識別所屬的 Active Directory 租使用者。

service_principal_id
str
必要

服務主體識別碼。

service_principal_password
str
必要

服務主體密碼/金鑰。

cloud
str
必要

目標雲端的名稱。 可以是其中一個 「AzureCloud」、「AzureChinaCloud」 或 「AzureUSGovernment」。 如果未指定任何雲端,則會使用 「AzureCloud」。

_enable_caching
預設值: True

備註

若要使用服務主體驗證,必須在 Azure Active Directory 建立中應用程式註冊。 首先,您必須產生用戶端密碼,然後將您的服務主體角色存取權授與機器學習工作區。 然後,您可以使用 ServicePrincipalAuthentication 類別來管理驗證流程。


   import os
   from azureml.core.authentication import ServicePrincipalAuthentication

   svc_pr_password = os.environ.get("AZUREML_PASSWORD")

   svc_pr = ServicePrincipalAuthentication(
       tenant_id="my-tenant-id",
       service_principal_id="my-application-id",
       service_principal_password=svc_pr_password)


   ws = Workspace(
       subscription_id="my-subscription-id",
       resource_group="my-ml-rg",
       workspace_name="my-ml-workspace",
       auth=svc_pr
       )

   print("Found workspace {} at location {}".format(ws.name, ws.location))

完整範例可從 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/manage-azureml-service/authentication-in-azureml/authentication-in-azureml.ipynb

若要瞭解如何建立服務主體並允許服務主體存取機器學習工作區,請參閱 設定服務主體驗證