支持 ADFS 2.2 OAuth 流中的刷新令牌

Mat*_*ing 6 adfs oauth

我和我的同事正在尝试在 ADFS 2.2 中启用 OAuth。一切正常,除了服务器只传回一个访问令牌(带过期)并且在成功登录后不包括刷新令牌。关于此的文档很少,但是有人知道需要更新哪些设置才能返回刷新令牌吗?

编辑:建议的OAuth 2.0规范状态:

颁发刷新令牌是可选的,由授权服务器决定。如果授权服务器发出刷新令牌,则在发出访问令牌时包含它

由于我收到了访问令牌,但没有刷新令牌,而且由于 ADFS 目前仅实现 OAuth 的代码流,因此我猜测 ADFS 团队选择不返回刷新令牌。不过,我很想确切地听到这一点。

编辑:就像下面的 Travis 所说,确保

  • RPIssueOAuthRefreshTokensTo设置正确
  • RPAlwaysRequireAuthentication是假的
  • RPTokenLifetime低于 ADFSSSOLifetime

Tra*_*rec 3

ADFS 依赖方对象上有一个名为 IssueOAuthRefreshTokensTo 的配置开关,用于控制发送刷新令牌的设备类型。默认情况下,该值设置为“NoDevice”,这意味着 ADFS 不会释放刷新令牌。可能的值为

  1. NoDevice = 从不发出刷新令牌
  2. AllDevices = 始终发出刷新令牌
  3. WorkplaceJoinedDevices = 仅在加入工作场所的设备(即已使用 DRS 服务注册的设备)上发出刷新令牌。

除了验证依赖方是否允许颁发刷新令牌之外,ADFS 还将验证以下内容。

  1. 在 RP 的访问令牌过期之前,提供给 ADFS 的 SSO 令牌不会过期。只要您没有更改默认配置值并且使用干净的浏览器会话(即没有 SSO cookie),这种情况就不会发生。
  2. 依赖方未标记为始终需要新的凭据。

您还可以验证您是否在授权请求中发送了有效的资源参数?

ADFS 有调试日志,如果您可以在非生产系统上重现此行为,识别问题的最简单方法可能是启用调试日志。

本文介绍如何在 ADFS 2.0 系统上启用调试日志。ADFS 3.0 ( 2012 R2 ) 类似,节点名称略有不同,并且不需要在配置文件中启用 WIF 或 WCF 跟踪。

http://social.technet.microsoft.com/wiki/contents/articles/1407.how-to-enable-debug-logging-for-active-directory-federation-services-2-0-ad-fs-2- 0.aspx