从一个 python 程序中,我想运行
az login --use-device-code
并捕获代码并将其与 URL 一起显示给用户。
我们将有一个供用户登录的前端
如果通过子进程或 azure.cli.core 运行应该没问题。
我确实同意@juunas,您可以选择使用
msal
,您也将获得相应的设备代码,我已在我的环境中重现,以下是预期结果:
import msal
c = "3a4d9391"
a = "https://login.microsoftonline.com/72f9db47"
appli = msal.PublicClientApplication(client_id=c, authority=a)
s = ["https://storage.azure.com/.default"]
output= appli.initiate_device_flow(scopes=s)
print(output["message"])
这里 c 是您的客户 ID a 是
https://login.microsoftonline.com/tenantid
s 是您想要提供给用户的范围。
这里您有URL和代码。
即使我有相同的查询,假设您有新的租户信息。您只有用户电子邮件和密码以及租户 ID。作为自动化的一部分,我想做的第一件事是创建一个服务主体并使用它在订阅中配置资源。为了实现这一目标,我仍然没有已创建的服务主体(REST API 和 SDK 要求我们手头有一个服务主体,但我们没有)。如果我构建一个接受用户信息的 Web UI,或者单击时,一个按钮会将我重定向到 Microsoft 登录页面或给我一个用于登录的 URL 和设备代码。