Azure active directory Azure广告提供刷新令牌,即使我没有';t请求和权限没有脱机访问权限

Azure active directory Azure广告提供刷新令牌,即使我没有';t请求和权限没有脱机访问权限,azure-active-directory,single-page-application,openid-connect,azure-ad-graph-api,openid-client-js,Azure Active Directory,Single Page Application,Openid Connect,Azure Ad Graph Api,Openid Client Js,我真的很难理解到底发生了什么。My is My SPA不断获取刷新令牌,即使我没有请求,Azure上的权限也没有脱机访问权限 我如何才能不获取刷新令牌 我的请求URL(注意不请求脱机访问) Azure上的权限(无脱机访问) 同意屏幕(要求用户给予脱机访问权限) 结果,我有刷新令牌,在客户端上使用刷新令牌不是一个好主意。 使用azure ad v2.0端点时,这是一个已知的问题,相关文章 还提到: 此权限当前显示在所有同意页面上,即使对于不提供刷新令牌的流(例如隐式流)。此设置解决了这样的场景

我真的很难理解到底发生了什么。My is My SPA不断获取刷新令牌,即使我没有请求,Azure上的权限也没有脱机访问权限

我如何才能不获取刷新令牌

我的请求URL(注意不请求脱机访问) Azure上的权限(无脱机访问)

同意屏幕(要求用户给予脱机访问权限)

结果,我有刷新令牌,在客户端上使用刷新令牌不是一个好主意。

使用azure ad v2.0端点时,这是一个已知的问题,相关文章

还提到:

此权限当前显示在所有同意页面上,即使对于不提供刷新令牌的流(例如隐式流)。此设置解决了这样的场景:客户机可以从隐式流开始,然后移动到需要刷新令牌的代码流

但这并不影响您不想获取刷新令牌,您使用的是,只是不包括
脱机访问
时,刷新令牌将不会返回


或者,如果您确实不知道应用程序允许您同意此权限的内容,只需使用,然后如果您在请求
代码时未包括
脱机访问
,它不允许您同意脱机访问权限。

您是如何请求访问令牌的?我使用的是vuex oidc,oidc客户端js在最后执行请求。我上面给出的url是oidc客户端生成的。您添加的请求url仅用于获取身份验证代码。如果您在请求访问令牌时将
offline\u access
添加到
scope
中,它仍将返回刷新令牌。那么您是说令牌请求期间发生了什么?我查一下。但为什么azure在权限列表中提供不具有脱机访问权限的刷新令牌?似乎不符合我定义的范围(它没有
脱机访问权限
),并且在使用
代码流
时仍然获得
刷新令牌
,以及使用
隐式流
的是否
刷新令牌
。我用一个服务器端脚本测试了
代码流
,在这个脚本中我截取令牌请求并添加/删除
脱机访问
,它可以与
代码流
一起工作。因此,对于SPA上的
代码流
,我是否一直使用
刷新令牌
,因为不知道如何拦截
oidc客户端js
?@Ergec实际上您可以直接在SPA中使用隐式流,这是一个合适的场景。请参阅@Ergec,因为使用身份验证代码流的目的是返回刷新令牌,代表用户提供对资源的长期访问,而不需要与这些用户交互。如果您不想要刷新令牌,则使用此流毫无意义。我明白了~2万用户和许多可能无人值守的个人电脑,太多了。无论如何,非常感谢你的喜悦。
https://login.microsoftonline.com/........./oauth2/v2.0/authorize?client_id=........&redirect_uri=........&response_type=code&scope=openid%20profile%20email%20User.Read&state=......&code_challenge=........&code_challenge_method=S256&response_mode=query