gpt4 book ai didi

c# - 使用 Thinktecture Identity Server 时保留 OAuth2 不记名 token

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:42 29 4
gpt4 key购买 nike

我一直在关注位于 http://leastprivilege.com/2012/11/01/oauth2-in-thinktecture-identityserver-v2-resource-owner-password-flow/ 的 OAuth2 资源所有者密码流的 Thinktecture Identity Server 示例

我有示例通过以下过程成功运行并返回 JWT token

  1. 使用 Thinktecture OAuth2Client 检索访问 token
  2. 从客户端计算机上的“受信任的人”存储中检索签名证书
  3. 使用证书并创建新的 JwtSecurityTokenHandlerTokenValidationParameters 并调用 tokenHandler.ValidateToken 获取 ClaimsPrincipal

从这里我获得了授权,但我不确定为进一步的请求保留 token 的最佳方式。我尝试使用

var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromHour(8));
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);

但是我没有注册SessionAuthenticationModule。我尝试使用身份和访问向导来实现这一点,但它对配置进行了许多更改,并尝试为被动身份验证进行设置。

我可以使用传统的 FormsAuthentication cookie (.aspnetAuth),但我记得讨论过 .FedAuth cookie 的一个优点是,如果大小变得太大,它会自然地分成几个 cookie。

我正在努力寻找一篇能够为我完成这幅画的文章。我需要不记名 token 来访问堆栈下方的各种 API。我有用于 SSO/被动身份验证的工作示例,因为大部分工作都是为您完成的。我只是不确定在使用资源所有者密码流程时使用的最佳模式。

所以

  1. 我是否错过了使用 Thinktecture Identity Model and Server 实现这一目标的更直接的方法?
  2. 我是否应该尝试创建一个 FedAuth cookie,以便我可以重复使用已经为 WIF 设置的各种消息处理程序/过滤器组件?
  3. 否则 - 将访问 token 简单地放在 FormsAuthentication cookie 的 UserData 部分是否有什么特别错误?

最佳答案

试着看这个问题:WIF Security Token Caching .

我相信这段代码可以做到

var sessionSecurityToken = new SessionSecurityToken(principal, TimeSpan.FromHours(Convert.ToInt32(System.Web.Configuration.WebConfigurationManager.AppSettings["SessionSecurityTokenLifeTime"])))
{
IsPersistent = true, // Make persistent
IsReferenceMode = true // Cache on server
};
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken);

关于c# - 使用 Thinktecture Identity Server 时保留 OAuth2 不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22407743/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com