C# 无法从azure AD获取使用旧刷新令牌调用的授权类型为refresh\u令牌的新刷新令牌

C# 无法从azure AD获取使用旧刷新令牌调用的授权类型为refresh\u令牌的新刷新令牌,c#,active-directory,azure-active-directory,azure-management-api,C#,Active Directory,Azure Active Directory,Azure Management Api,我正在使用Azure服务管理API和OAuth API生成访问令牌。但在调用grant type“refresh_token”时,要刷新访问令牌,它将返回新的访问令牌,但该响应没有新的刷新令牌。所以我必须使用旧的刷新令牌来刷新访问令牌。问题是在5-6小时后,刷新令牌返回错误invalid_client(验证凭据时出错。提供了无效的客户端密码)。 在其他情况下,如Office 365应用程序通过Azure AD进行身份验证,它会返回所有信息 是否有任何特定的参数或标头必须与API调用一起传递 下面

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

是否有任何特定的参数或标头必须与API调用一起传递

下面是我的代码截图

请帮忙


如果您使用v2,请提前感谢。动态请求端点作用域,并且必须使用“offline_access”作用域请求刷新令牌。这与v1模型中的情况大不相同,在v1模型中,作用域预先注册到应用程序注册中,并且总是返回一个刷新令牌,而不返回显式作用域。如果您使用的是v1&您没有获得刷新令牌,这可能是由于您的ADFS提供程序限制了有关刷新令牌的安全策略,它没有将刷新令牌发送回调用OAuth身份验证和授权的API

这是一种安全增强/阻止,用于禁用应用程序,使其不持有可永久使用(如果刷新)的生存期刷新令牌

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

我遇到了与您相同的问题&从这里收集了帮助回答此问题的大部分信息:
.

您能提供您提出的确切OAuth请求吗?你能发布回复吗?这将有助于理解这个问题。同样的事情也发生在我身上。grant_type=authorization_code请求的响应有一个刷新令牌,但grant_type=refresh_令牌的响应只有普通访问令牌,没有刷新令牌。@BrentSchmaltz我用代码编辑了文章。请检查并让我知道我是否犯了任何错误,因为相同的代码适用于Office365authentication@AmeyKhadatkar您是否能够成功执行刷新授权,并且在一段时间后失败?假设您在收到“access\u token,refresh\u token”后刚刚进行了相同的调用,它会成功吗?如果是这样,我会怀疑“刷新令牌”已经过期。刷新令牌应该在90天左右到期,大约在6-7小时后到期。我想这也是一个问题。