1

我正在构建一个 Android 应用程序,它将访问 Azure REST API 并从 azure 监控中读取一些数据。我在身份验证过程中遇到问题,因为不确定是否可以使用 MSAL 库进行身份验证以访问 Azure REST API?

4

1 回答 1

1

在您提到的演示代码中,资源是 microsoft graph。如果要使用 Azure 服务管理 API,我们需要将资源更改为https://management.azure.com. 我们需要为注册的 Application 分配角色

我不熟悉预览版 SDK,但我们也可以通过以下方式获取 Azure 管理 API 的访问令牌。

默认情况下,V2 应用程序不会显示在 Azure 门户中。所以我们需要同意许可。然后我们可以在 Azure 门户中找到它。

https://login.microsoftonline.com/{tenantId}/adminconsent?
client_id={clientId}
&state=12345
&redirect_uri={redirectUrl}

然后使用管理员帐户批准同意。之后,我们可以在 Azure 门户中找到 V2 应用程序并将角色分配给应用程序。

在此处输入图像描述

在此处输入图像描述 从这个文档中,我们可以知道 v2.0 端点不支持 OAuth 2.0 资源所有者密码凭证授予

所以我们可以使用下面的授权码来获取访问令牌。

  1. 获取授权码

    https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={clientId}&response_type=code &redirect_uri={redirect_uri} &response_mode=query &scope=https://management.azure.com/user_impersonation &state=12345

  2. 获取访问令牌

    https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token?scope=https://management.azure.com/.default &client_id={clientId} &grant_type=authorization_code &redirect_uri={redirectUri} &code =AQABAAIAAAC5una0EUFgTIF8ElaxtWjT6o1ePh...

在此处输入图像描述

测试访问令牌

在此处输入图像描述

于 2018-11-01T09:31:17.967 回答