我的同事和我正在尝试在ADFS 2.2中启用OAuth。 一切正常,除了服务器只传递一个访问令牌(w / expiration)并且在成功login后不包含刷新令牌。 这方面的文档很less,但是有谁知道什么设置需要更新才能返回刷新令牌?
编辑: build议的OAuth 2.0规范指出:
颁发刷新令牌是可选的,由授权服务器决定。 如果授权服务器发出刷新令牌,则在发出访问令牌时将包含该令牌
由于我正在接收访问令牌,但没有刷新令牌,并且由于ADFS当前仅实现OAuth的代码stream,所以我的猜测是ADFS团队select不返回刷新令牌。 尽pipe如此,我很乐意听到这个消息。
编辑:像特拉维斯下面说的,确保
IssueOAuthRefreshTokensTo
设置正确 AlwaysRequireAuthentication
为false TokenLifetime
低于ADFS的SSOLifetime
在ADFS依赖方对象上有一个名为IssueOAuthRefreshTokensTo的configuration开关,用于控制向哪个types的设备刷新令牌。 默认情况下,此值设置为“NoDevice”,这意味着ADFS不会释放刷新标记。 可能的值是
除了validation依赖方是否允许刷新令牌,ADFS还将validation以下内容。
您是否也可以validation您是否在授权请求中发送有效的资源参数?
ADFS有一个debugging日志,如果您可以在非生产系统上重现此行为,则识别此问题的最简单方法可能是启用debugging日志。
本文介绍如何在ADFS 2.0系统上启用debugging日志。 ADFS 3.0(2012 R2)类似,节点名称稍有不同,您不需要在configuration文件中启用WIF或WCF跟踪。