azure-active-directory - Azure AD 自动添加了 offline_access

标签 azure-active-directory microsoft-graph-api openid-connect

对于微软 OAuth 2.0 auth code grant ,我们遇到了范围问题。

当我们只请求 User.Read范围,我们的客户被要求授予我们许可 登录并阅读您的个人资料 随时访问您的数据 .我们没有说明我们需要的地方 offline_access范围。

enter image description here

只有在 Microsoft 切换到新的权限授予界面后才会发生这种情况。有没有其他人遇到同样的问题,或者我们做错了什么?
response_type我们传入的是code只要。

enter image description here

我仔细检查过,我们注册的应用程序在 https://apps.dev.microsoft.com 下.

我们用于授权的 URL 如下。

https://login.microsoftonline.com/common/oauth2/v2.0/authorize

正如我之前所说,我们通过查询传入的唯一范围是 User.Read .

编辑 3

请求 URL:(我已删除客户端 ID。) https://login.microsoftonline.com:443/common/oauth2/v2.0/authorize?client_id={client_id}&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A19974%2Fapi%2Fv1%2Fmicrosoft%2Foauth2%2Fsession&response_mode=form_post&scope=User.Read&state=1527572151-IIZ0D&nonce=1527572151-IIZ0D&prompt=consent&domain_hint=organizations
使用 fiddler 记录的响应:

发帖 http://localhost:19974/api/v1/microsoft/oauth2/session HTTP/1.1
主机:本地主机:19974
连接:保持连接
内容长度:798
缓存控制:max-age=0
升级不安全请求:1
出处:空
内容类型:应用程序/x-www-form-urlencoded
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
接受编码:gzip、deflate、br
Accept-Language: en,en-NZ;q=0.9,zh-TW;q=0.8,zh;q=0.7,zh-CN;q=0.6
DNT:1

码= OAQABAAIAAADX8GCi6Js6SK82TsD2Pb7rUmGhJoHUB3devvTffqTlhRhg9XZ202zgEA8B37CzgkeLNVBc4FFstw3sTjNmYhKCYLE_jcl7KeCrtYgPVFYOKUuazv_B3vHKIM8ttwIzOlV_3GL4vqxPgjvXbWUdas5Sj9Z1X9fEBB63Wa1Ig0AnisnHk6qagIimFEPApYx473RzgIve2erM3r5fnX5Q0L1-pHppSFUJoWop6MPTkUh-umPzuXQgB280rHyUds3odS6_cJP6SbI70aLNOqHV_AnaV_VUZqQ6hLfBZMVKFMYMg_r_harPOU5EE2gf2d15FIKMsmjPRTR2vryaJRyg0TblF_jr-kWyeURwpbkPzsU6r3avEqM6dfTqhhASoXB4VmeZ2zw75pZgK4v8cfcd3J_tIpFRjcEY1TqPz5E3QrYQGfFSeBEEbjwqvj2X5_4VBvve7ABdrt3OCjid8E_837mLX-Fv5t3nk_nfnV0SY6XrFQQmoPClyqSyn44FTv_WFY7Af74SfeBrWDYSSiTuwphEmVTeT6U2R4Rs4wR8G0uHW2L53U-4UbkODd -_- JZYIahAohDAF-8TaguUwb4mOK497wsFOkgpmYz-np4MX3sTweSLmn6bAOy9Y91E3o4fuERzX9m9N_HBt64cv6k8JROKJqs6cx1Gb9EoYCRLCn2ihWi_crZh2PH5LACMCLWYgH0gAA&状态= 1527572151-IIZ0D&session_state = 1faeaab9-0f00-45cb-a776-356463a54684

编辑 4

今天,我在将项目升级到 .Net Core 2.1 的同时做了一些更多的测试。我注意到即使从界面上它正在确认 Access your data anytime ,但是当我使用代码交换访问 token 时,它不包含刷新 token 。

我注意到的另一件事是,当我将范围传递为 User.Read 时,当我交换访问 token 时,范围返回为:User.Read User.ReadBasic.All .这有点不一致,但不是大问题。

enter image description here

最佳答案

当使用 v2 端点和 AAD 帐户时,目前无法从初始同意屏幕中删除 offline_access 范围。当请求 token 时,仍然明确请求 offline_access 范围。

关于azure-active-directory - Azure AD 自动添加了 offline_access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476455/

相关文章:

azure - 无法在 Azure Active Directory 中创建应用程序。错误: Insufficient privileges to complete the operation

node.js - 如何使用从 SPA 获取的 azure 广告访问 token 来保护后端 api?

azure - Microsoft Graph Explorer 应用程序 - 权限问题

c# - 尝试激活 Controller 时无法解析类型 'Microsoft.Graph.GraphServiceClient' 的服务

asp.net-core - 为什么 controllerbase.challenge 返回 200 而不是 302 reidirect

azure - AADSTS650051 : Application 'CLIENT_ID' is requesting permissions that are either invalid or out of date

azure - 如何在另一个租户(未创建该应用程序的租户)中注册 Azure AD Multi-Tenancy 应用程序

microsoft-graph-api - 为什么 Microsoft Graph 需要 $select 和 $expand=extensions?

asp.net - OpenIdConnect 错误 - 租户标识符可能不是空的 GUID

authentication - 是否可以将 "get token"和 "get userinfo"步骤合二为一?