我对Azure非常陌生,并且惊讶于python SDK不如AWS'之一。
我正在使用python在Azure中创建Active Directory的创建管理网。
在查看文档后,我有点困惑。我已通过令牌工作进行身份验证:
from azure.common.credentials import ServicePrincipalCredentials
# Tenant ID for your Azure Subscription
TENANT_ID = 'ABCDEFGH-1234-1234-1234-ABCDEFGHIJKL'
# Your Service Principal App ID
CLIENT = 'a2ab11af-01aa-4759-8345-7803287dbd39'
# Your Service Principal Password
KEY = 'password'
credentials = ServicePrincipalCredentials(
client_id = CLIENT,
secret = KEY,
tenant = TENANT_ID
)
但是对于Active Directory,存在不同的pockage / library,并且身份验证不同:
from azure.graphrbac import GraphRbacManagementClient
from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials(
'user@domain.com', # Your user
'my_password', # Your password
resource="https://graph.windows.net"
)
tenant_id = "myad.onmicrosoft.com"
graphrbac_client = GraphRbacManagementClient(
credentials,
tenant_id
)
令人困惑的一点是对Authentication Docks的反应:
使用令牌凭据进行身份验证(旧版) 在以前版本的SDK中,ADAL尚不可用,我们提供了UserPassCredentials类。这被认为已弃用,不应再使用了。
任何人都可以帮助我了解如何使用新的tocken凭据 ServicePrincipalCredentials()使用python连接到Azure中的Active Directory,我无法在azure中找到对它的任何引用。 graphrbac。
我赞美任何指示示例。
答案 0 :(得分:0)
UserPassCredentials函数正在使用资源所有者密码凭据授予,并且此流被视为已弃用,因为它具有多重限制,例如不支持2FA。
要使用服务主体进行身份验证,建议使用ADAL和SDK ADAL包装器(请参阅上面链接中的Acquire Token with Client Credentials
部分)。您还可以参考文档:Authenticate with the Azure Management Libraries for Python了解更多详情。