我正在尝试收集Azure资源的度量信息。为此,我需要一个访问令牌进行授权。但是要获取访问令牌,我必须提供客户端ID、客户端密钥、订阅ID和租户ID。我想知道是否可以只提供我的Azure帐户的用户名和密码来获取此访问令牌,而不需要提供这么多详细信息。
我正在尝试收集Azure资源的度量信息。为此,我需要一个访问令牌进行授权。但是要获取访问令牌,我必须提供客户端ID、客户端密钥、订阅ID和租户ID。我想知道是否可以只提供我的Azure帐户的用户名和密码来获取此访问令牌,而不需要提供这么多详细信息。
这是可能的,但被认为不安全。并且您仍然需要许多参数:
Name Description
grant_type The OAuth 2 grant type: password
resource The app to consume the token, such as Microsoft Graph, Azure AD Graph or your own Restful service
client_id The Client Id of a registered application in Azure AD
username The user account in Azure AD
password The password of the user account
scope optional, such as openid to get Id Token
附注:请勿在意沃尔特,他的答案有50%的错误率。
这取决于您的需求以及是否需要完全自动化。
如果您想为ServicePrincipal获取令牌,4c74356b41的答案是一个很好的方法。
但是,如果您想要为已在PowerShell会话中进行身份验证的用户(您或另一个AAD用户)获取承载令牌,则可以使用我编写的以下代码轻松完成此操作。
https://gallery.technet.microsoft.com/scriptcenter/Easily-obtain-AccessToken-3ba6e593
基本上,它从令牌缓存中获取当前令牌并将其返回给您。这样,您就不必处理clientId、cliendSecret或证书。当我需要按需调用Azure REST API时,我经常使用它。