authentication - 使用 OAuth 和持久刷新 token 的 ADFS 3.0

标签 authentication oauth adfs windows-server-2012-r2

问题1

我们目前正在使用 ADFS 和 OAuth(使用带有 ADFS 3.0 的 Windows Server 2012 R2)。我们的测试应用程序(WPF 和移动应用程序)可以成功进行身份验证并获取访问 token 和刷新 token 。之后我们可以继续使用访问 token 直到它过期,然后使用刷新 token 来获取新的访问 token 。 到目前为止一切顺利,但问题是当刷新 token 过期时,我们需要强制用户再次输入其凭据。我们的目标是让用户只输入一次凭据,然后使用较短的访问 token 生命周期和持久(或非常长)的刷新 token 生命周期。

根据一些博客文章,使用刷新 token 时,您应该获得一个新的访问 token ,有时还应该获得一个新的刷新 token ,但在我们的例子中,我们永远不会获得新的刷新 token ,因此最终会过期。

使用 ADFS 3.0 和 OAuth 是否有可能获得持久的刷新 token ?或者不时获取新的刷新 token ,以便用户不必再次输入其凭据?或者刷新 token 的生命周期是否可能非常长。

问题2

您还可以在 ADFS 中设置许多我们不确定的不同属性

  • TokenLifetime - 这是访问 token 的生命周期?最大值是多少?
  • SsoTokenLifetime - 这是刷新 token 生命周期?最大值是多少?
  • PersistentSsoLifetimeMins - 这是什么?
  • PersistentSsoEnabled - 我想应该设置为 true 才能使刷新 token 正常工作

最佳答案

这个post描述了一个半官方的答案。这是设置所需值的示例 -

Set-AdfsRelyingPartyTrust -TargetName "RPT Name" -IssueOAuthRefreshTokensTo AllDevices
Set-AdfsRelyingPartyTrust -TargetName "RPT Name" -TokenLifetime 10
Set-AdfsProperties -SSOLifetime 480

对于指定的 RPT,这将向所有客户端颁发生命周期为 10 分钟的访问 token ,并向所有客户端颁发生命周期为 8 小时的刷新 token 。

关于authentication - 使用 OAuth 和持久刷新 token 的 ADFS 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330004/

相关文章:

php - 服务器不愿意执行。 PHP 中的 LDAP

java - 如何对经过 oauth 的 Controller 进行单元测试?

azure - 使用 Azure AD 对本地 Sharepoint 2013 进行身份验证

带有 Facebook 登录的 IOS 应用程序卡在登录页面

java - java 和 linux 的集成 Windows 身份验证等效项

ios - Instagram 获取用户详细信息

c# - 使用 SAML 2.0 在 C# 中实现单点登录

wcf-security - 从 ADFS 获取 token

authentication - 贵公司如何管理凭据?

azure - 在 Azure AAD oauth 身份验证中使用 saml token