gpt4 book ai didi

azure - 从具有特定范围的 Postman 调用 Azure WebApi

转载 作者:行者123 更新时间:2023-12-03 00:59:49 25 4
gpt4 key购买 nike

我使用 Postman 来测试 Azure 中托管的 API。首先我得到一个像这样的访问 token

enter image description here

由于我使用 grant_type 'client_credentials我必须使用像这样的默认范围api://my-app-id/.default`,如所解释的 here .

但是我的 API 端点之一需要特定范围,因此调用失败,因为我的访问 token 不包含此范围。

我应该如何从 Postman 进行所需范围的测试?

最佳答案

如果使用客户端凭据流获取受 Azure 保护的 api 的访问 token ,则必须创建应用程序并向该应用程序授予应用程序权限(这是因为客户端凭据流没有用户交互)。

然后您需要通过编辑 api 应用程序列表来定义应用程序权限。 here就是一个例子。

接下来,向应用程序授予应用程序权限: enter image description here

请参阅此文档并使用客户端凭据流程获取访问 token 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.然后您可以通过共享 secret 来获取访问 token :

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

解析 token ,您将看到您的自定义角色: enter image description here

尝试使用 token 访问您的 API。

更新:

根据你的错误,存在用户交互,所以如果你想使用用户 token ,你不应该使用客户端凭据流,而是 auth code flow ,并授予客户端应用程序委派权限。 enter image description here

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=api://11f5aca5-ba22-4b7b-8312-60a09aab7xxx/Files.Upload
&state=12345

enter image description here

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

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=api://11f5aca5-ba22-4b7b-8312-60a09aab7df5/Files.Upload
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh

enter image description here

解析 token ,您将看到您的自定义 scp: enter image description here

关于azure - 从具有特定范围的 Postman 调用 Azure WebApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62542868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com