无法从使用旧刷新令牌调用的授权类型refresh_token的azure AD获取新的刷新令牌

时间:2016-02-10 06:36:50

标签: c# active-directory azure-active-directory azure-management-api

我正在使用Azure Service管理API和OAuth API来生成Access令牌。但是在调用grant类型“refresh_token”时,要刷新访问令牌,它会返回新的访问令牌,但该响应没有新的刷新令牌。所以我必须使用旧的刷新令牌来刷新访问令牌。问题是5-6小时后,刷新令牌返回错误invalid_client(验证凭据时出错。提供了无效的客户端密钥)。 在其他情况下,例如通过Azure AD进行Office 365应用程序身份验证,它会返回所有内容。

我是否需要通过API调用传递任何特定参数或标题?

以下是我的代码

的屏幕截图

enter image description here

请帮忙。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果使用v2端点,则动态请求范围,并且必须使用“offline_access”范围请求刷新令牌。这与v1模型有很大不同,后者在应用程序注册中预先注册了作用域,并且总是在没有显式作用域的情况下返回刷新令牌。如果你正在使用v1&您没有获得刷新令牌,这可能是由于ADFS提供程序对刷新令牌的安全策略有限,而不是向调用OAuth身份验证和授权的API发回刷新令牌。

这是安全性增强/阻止,禁止您的应用程序不要持有永久存在的生命周期刷新令牌(如果刷新)。

因此,如果您可以使用v2端点 - 请使用offline_access范围。否则,请与ADFS提供商一起检查安全策略。

我遇到和你一样的问题。从这里收集了大部分有助于回答这个问题的信息: https://stackoverflow.com/a/44813531/4446128