当我想访问由Postman中的Azure AD保护的Azure函数API时,为“范围”选项赋予什么值

时间:2019-06-03 18:29:42

标签: azure azure-active-directory postman azure-functions

我正在使用受Azure AD保护的Azure Function API,当我使用有效的帐户登录后通过浏览器请求它时,它可以正常工作,但是当我尝试使用邮递员时,它仍然显示未经授权的访问权限, >

我有一个随请求发送的访问令牌,但是对于我赋予的scope属性,此值https://graph.microsoft.com/.default可能是问题所在。但是不确定我做错了什么,以及在邮递员的scope选项的get new access token字段中输入什么来对我的API进行身份验证。

HTTP请求邮递员制作

GET /api/events/active HTTP/1.1
Host: moya-backend-ascentic.azurewebsites.net
Authorization: Bearer ****IHqMgweN86fDnyL4jvz9P6ZllpjjD9t***
User-Agent: PostmanRuntime/7.13.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 655e0672-4928-409e-a709-841a92ee6f14,22cbf978-f196-4099-ae10-d162d3068507
Host: moya-backend-ascentic.azurewebsites.net
accept-encoding: gzip, deflate
Connection: keep-alive
cache-control: no-cache

2 个答案:

答案 0 :(得分:1)

范围应为:your-api-client-id/.default。 用Azure AD中API应用程序的客户端ID /应用程序ID替换your-api-client-id。

现在,由于基于浏览器的登录似乎可以正常工作,因此您可能在API上设置了错误的身份验证类型。 如果令牌仍不起作用,则需要在应用程序上设置JWT身份验证,而不是基于浏览器/ cookie的身份验证。

答案 1 :(得分:1)

如果您使用的是 v2.0端点,则范围应为{your_client_id} /。default。就像@juunas说的那样。

enter image description here

如果您使用的是 v1.0端点,则仅需要资源参数。资源应为{your_client_id}

enter image description here

注意:如果您在邮递员中使用“获取新的访问令牌”功能,则访问令牌URL 应该为https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token