python - 使用服务主体登录 python 脚本

标签 python azure azure-service-principal runbook

我在AAD中注册了一个App,我得到了它的App ID。我为此应用程序分配了“特定订阅的所有者”的角色

现在,我想从 Azure Runbook 运行我的 python 脚本并使用此应用程序凭据登录。我的 python 脚本有 az cli 命令。 所以我不想使用powershell命令进行登录。 我正在尝试使用以下命令:

Az login --service-principal -u $azureapplucationId -p $azurePassword --tenant $azuretenantId

但我没有找到任何将 azurepassword 转换为 secureString 的方法。

有没有办法在Python脚本中使用服务主体ID登录?

最佳答案

在我的环境中部署后,如果您想在 python 脚本中使用服务主体 ID 登录,则需要使用以下命令在 python 脚本终端中安装 azure.cli.core 模块包

pip install azure.cli.core

下面是我的Python脚本reference从 @Jim Xu,使用服务主体登录 Azure 云:

   from azure.cli.core import get_default_cli
    az_cli = get_default_cli()
    az_cli.invoke(['login', '--service-principal', '-u', '<app ID/clientID>', '-p', '<clientsecretvalue>','--tenant','<tenantID>'])
  • 创建应用->获取应用ID

  • 点击应用并创建新的客户端 key

    证书和 key ->新客户端 key ->复制获取的客户端 key 值。

  • 在“应用注册”>“您的应用”>“应用角色”下 > 提供以下详细信息:

enter image description here

输出:

您需要以“以管理员身份运行”运行 Visual Studio Code

enter image description here

关于python - 使用服务主体登录 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73701627/

相关文章:

python - 使 Python 记录器将除日志文件之外的所有消息输出到标准输出

python - python-redis:ConnectionError:写入套接字时发生错误32。 pipe 坏了?

azure - 如何获取 Microsoft Azure 应用程序的 appRoleAssignedTo?

Azure : GroupsClient. BaseClient.Get():意外状态 403,带有 OData 错误:Authorization_RequestDenied:权限不足

python - 值错误: unsupported format character \'"\' (0x22) when formatting with dict

python - 无法导入使用 pip 安装的模块(anaconda python)

c# - 将 Azure IoT Edge EFlow 端口公开给主机 (Windows)

azure - 在 Azure Pipelines 上作为构建不可变镜像任务的一部分运行 Packer 将返回 ResourceNotFound 错误

azure - 使用 Terraform 的 Azure 中的集群访问问题

azure - Azure 服务主体到底是什么?