【问题标题】:IdentityServer4 External Authentication TokensIdentityServer4 外部身份验证令牌
【发布时间】:2018-07-19 15:49:24
【问题描述】:

我设置了一个 IdentityServer4 来使用 google 进行身份验证,而且效果很好,包括将令牌存储在 AspNetUserTokens 中。

此外,我有一个单独的服务需要能够使用访问令牌和刷新令牌来代表用户在未登录时调用谷歌的 API。

我不明白如何从身份服务器请求令牌,并使它们保持最新(交换访问令牌和到期日期)。我可以通过向身份服务器添加一个端点来请求令牌来直接做到这一点,但是身份服务器中的外部访问令牌将永远不会被更新。

【问题讨论】:

  • 如果我理解正确,您希望使用针对 IdentityServer 的非交互式流程对 API 进行身份验证。也许与客户凭证流有关?我不确定您是否应该将来自 Google 的令牌透露给 API。也许您应该将它们保留在 IdentityServer 中并根据需要刷新它们
  • 我已经使用交互式流程对用户进行了身份验证,并且他们已授予应用程序权限。我想将它们保留在身份服务器中,但需要使用单独服务中的访问/刷新令牌代表用户完成工作
  • 是的。我的意思是,您必须以某种方式对 API 进行身份验证,因为它需要在用户注销后运行。所以也许你可以做客户端凭证并请求一个范围,将令牌作为对 API 的声明返回。每次您验证身份服务器时,都可以返回一个最新的令牌。你怎么看?
  • 绝对有可能。我正在阅读 Extension Grants,这似乎就像我正在寻找的那样,但是 - 我是身份服务器的 n00b,所以就是这样
  • 您能否发布您的 ID4 配置设置以及迄今为止您是如何配置资源的?当有一些代码需要排除故障时,总是会提供帮助。

标签: c# asp.net-identity identityserver4


【解决方案1】:

您最好的选择是使用 Hybrid Flow,其中刷新令牌直接存储在您的服务数据库中。 IDS在这里只是一个代理,不负责存储不是自己发出的刷新令牌。

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 2017-05-15
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多