Azure CLI使用什么身份验证流?

Azure CLI使用什么身份验证流?,azure,azure-cli,Azure,Azure Cli,我正在尝试编写一个命令行界面(CLI)实用程序,该实用程序针对我们的Azure订阅/AD帐户进行身份验证。我希望它的行为与Azure CLI(az登录)的工作方式相同,当我运行它时,会弹出一个窗口,用户选择他们的帐户。然后进行身份验证,Azure将令牌返回给我的CLI应用程序,以便用户可以使用自己的身份使用该应用程序。我可以找出如何使设备代码流工作,但我不希望用户在运行我的CLI时必须粘贴设备代码。我希望它的工作方式与“az”实用程序的工作方式相同,我不清楚az使用的流程。有人知道Azure a

我正在尝试编写一个命令行界面(CLI)实用程序,该实用程序针对我们的Azure订阅/AD帐户进行身份验证。我希望它的行为与Azure CLI(az登录)的工作方式相同,当我运行它时,会弹出一个窗口,用户选择他们的帐户。然后进行身份验证,Azure将令牌返回给我的CLI应用程序,以便用户可以使用自己的身份使用该应用程序。我可以找出如何使设备代码流工作,但我不希望用户在运行我的CLI时必须粘贴设备代码。我希望它的工作方式与“az”实用程序的工作方式相同,我不清楚az使用的流程。有人知道Azure az实用程序使用什么身份验证流吗?

在您的情况下,如果您使用用户帐户登录Azure CLI,它将使用

您只需在运行
az login
时获取请求URL即可

请求URL如下所示(实际上它使用的是,第一行中的链接用于v2.0端点):

因此,在您的场景中,如果您想要编写类似Azure CLI的命令行界面,只需创建一个作为公共客户端的,然后使用身份验证代码流登录用户并获取令牌

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&redirect_uri=http://localhost:8400&state=c5tvdjross6a83528fx8&resource=https://management.core.windows.net/&prompt=select_account