Azure AD 令牌端点没有 return 一个 access_token(只有一个 id_token 和一个 refresh_token)
Azure AD token endpoint doesn't return an access_token (just an id_token and a refresh_token)
我在基于 Xamarin Forms 的移动应用程序中使用 Xamarin.Auth 针对 Google 和 Azure AD 对用户进行身份验证。虽然 Google 一切正常,但我无法通过 Azure AD 获得 access_token:
- 授权按预期工作,提供代码和状态
- 令牌 returns 一个 id_token 和一个 refresh_token,但没有 access_token。
我可以在 Postman 中重播这个场景,所以这似乎不是由 Xamarin.Auth 引起的,更有可能是我无法正确解释 Microsoft 的文档...
非常感谢您的帮助!
在 Azure AD V2.0 中获取令牌时应包括资源范围。与 Azure AD 集成的任何 Web 托管资源都有一个资源标识符或应用程序 ID URI。例如,Microsoft Graph 是 https://graph.microsoft.com
.
如果您想获取 microsoft graph 的访问令牌,并有权阅读登录用户的邮件,则令牌请求为:
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=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh // NOTE: Only required for web apps
请阅读 this document for how OAuth 2.0 Authorization Code Flow works in Azure AD V2.0 .And click here 以了解 Azure Active Directory v2.0 端点中的范围、权限和许可
我在基于 Xamarin Forms 的移动应用程序中使用 Xamarin.Auth 针对 Google 和 Azure AD 对用户进行身份验证。虽然 Google 一切正常,但我无法通过 Azure AD 获得 access_token:
- 授权按预期工作,提供代码和状态
- 令牌 returns 一个 id_token 和一个 refresh_token,但没有 access_token。
我可以在 Postman 中重播这个场景,所以这似乎不是由 Xamarin.Auth 引起的,更有可能是我无法正确解释 Microsoft 的文档...
非常感谢您的帮助!
在 Azure AD V2.0 中获取令牌时应包括资源范围。与 Azure AD 集成的任何 Web 托管资源都有一个资源标识符或应用程序 ID URI。例如,Microsoft Graph 是 https://graph.microsoft.com
.
如果您想获取 microsoft graph 的访问令牌,并有权阅读登录用户的邮件,则令牌请求为:
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=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh // NOTE: Only required for web apps
请阅读 this document for how OAuth 2.0 Authorization Code Flow works in Azure AD V2.0 .And click here 以了解 Azure Active Directory v2.0 端点中的范围、权限和许可