支持ADFS 2.2 OAuthstream中的刷新令牌

我的同事和我正在尝试在ADFS 2.2中启用OAuth。 一切正常,除了服务器只传递一个访问令牌(w / expiration)并且在成功login后不包含刷新令牌。 这方面的文档很less,但是有谁知道什么设置需要更新才能返回刷新令牌?

编辑: build议的OAuth 2.0规范指出:

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

由于我正在接收访问令牌,但没有刷新令牌,并且由于ADFS当前仅实现OAuth的代码stream,所以我的猜测是ADFS团队select不返回刷新令牌。 尽pipe如此,我很乐意听到这个消息。

编辑:像特拉维斯下面说的,确保

  • RP的IssueOAuthRefreshTokensTo设置正确
  • RP的AlwaysRequireAuthentication为false
  • RP的TokenLifetime低于ADFS的SSOLifetime

在ADFS依赖方对象上有一个名为IssueOAuthRefreshTokensTo的configuration开关,用于控制向哪个types的设备刷新令牌。 默认情况下,此值设置为“NoDevice”,这意味着ADFS不会释放刷新标记。 可能的值是

  1. NoDevice =永远不会发出刷新令牌
  2. AllDevices =总是发出刷新令牌
  3. WorkplaceJoinedDevices =仅在工作场所join的设备上发布刷新令牌,即已经使用DRS服务注册的设备。

除了validation依赖方是否允许刷新令牌,ADFS还将validation以下内容。

  1. 呈现给ADFS的SSO令牌在到达RP的访问令牌到期之前不会过期。 只要你没有改变默认的configuration值,并进入一个干净的浏览器会话(即没有SSO cookie),这种情况下不应该发挥作用。
  2. 依赖方没有被标记为始终需要新的证书。

您是否也可以validation您是否在授权请求中发送有效的资源参数?

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

本文介绍如何在ADFS 2.0系统上启用debugging日志。 ADFS 3.0(2012 R2)类似,节点名称稍有不同,您不需要在configuration文件中启用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