使用客户端ID通过具有AAD令牌的身份验证公开API

时间:2020-07-21 18:09:59

标签: c# asp.net-mvc azure api azure-active-directory

我想使用lengthAPI通过基于AAD token的身份验证来公开Clients Id

用户需要secret来请求API上的访问权限。 如果我们将Clients ID的访问权限列入白名单,则可以使用client IDAPI访问API

像Kusto服务访问权限。

因此需要帮助,我们如何使用Azure服务配置此Client ID

1 个答案:

答案 0 :(得分:0)

根据您的问题,您公开了一个受Azure保护的api,然后需要使用客户端ID和客户端密钥请求访问令牌来访问该API。

首先,您必须创建另一个应用程序作为客户端应用程序,然后使用该客户端应用程序访问api应用程序,并且需要向客户端应用程序授予应用程序权限。建议您使用client credential flow

接下来,您需要通过编辑api应用程序清单来定义应用程序权限。 This是一个例子。

然后,将应用程序权限授予客户端应用程序。 enter image description here

接下来的两个步骤是使用客户端应用程序完成的:

1。首先,您需要征得管理员的同意:

GET https://login.microsoftonline.com/{tenant}/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions

enter image description here

2。使用客户端ID和客户端机密请求访问令牌:

POST /{tenant}/oauth2/v2.0/token HTTP/1.1           //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=api://your-app-id/.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials

enter image description here

尝试使用令牌访问您的API。