我正在使用Azure Service管理API和OAuth API来生成Access令牌。但是在调用grant类型“refresh_token”时,要刷新访问令牌,它会返回新的访问令牌,但该响应没有新的刷新令牌。所以我必须使用旧的刷新令牌来刷新访问令牌。问题是5-6小时后,刷新令牌返回错误invalid_client(验证凭据时出错。提供了无效的客户端密钥)。 在其他情况下,例如通过Azure AD进行Office 365应用程序身份验证,它会返回所有内容。
我是否需要通过API调用传递任何特定参数或标题?
以下是我的代码
的屏幕截图请帮忙。
提前致谢
答案 0 :(得分:0)
如果使用v2端点,则动态请求范围,并且必须使用“offline_access”范围请求刷新令牌。这与v1模型有很大不同,后者在应用程序注册中预先注册了作用域,并且总是在没有显式作用域的情况下返回刷新令牌。如果你正在使用v1&您没有获得刷新令牌,这可能是由于ADFS提供程序对刷新令牌的安全策略有限,而不是向调用OAuth身份验证和授权的API发回刷新令牌。
这是安全性增强/阻止,禁止您的应用程序不要持有永久存在的生命周期刷新令牌(如果刷新)。
因此,如果您可以使用v2端点 - 请使用offline_access范围。否则,请与ADFS提供商一起检查安全策略。
我遇到和你一样的问题。从这里收集了大部分有助于回答这个问题的信息: https://stackoverflow.com/a/44813531/4446128