Azure,python管理Active Directory

时间:2017-10-20 10:32:14

标签: azure azure-active-directory

我对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。

我赞美任何指示示例。

1 个答案:

答案 0 :(得分:0)

UserPassCredentials函数正在使用资源所有者密码凭据授予,并且此流被视为已弃用,因为它具有多重限制,例如不支持2FA。

要使用服务主体进行身份验证,建议使用ADAL和SDK ADAL包装器(请参阅上面链接中的Acquire Token with Client Credentials部分)。您还可以参考文档:Authenticate with the Azure Management Libraries for Python了解更多详情。