【问题标题】:Open ID Connect Provider - Persist ID Tokens?开放 ID 连接提供者 - 保留 ID 令牌?
【发布时间】:2015-05-15 17:56:17
【问题描述】:

我正在 Rails 中编写一个 Open ID Connect Provider,基本上是在重构这个示例 Here

我的问题是 - ID 令牌是否需要持久保存在服务器上?如果我只是签署 ID Token 并将其发送给 RP,我不能在 RP 要求时生成 ID Token(例如请求中带有 idtoken 响应类型)而不用担心将其保存在我这边的数据库?基本上使用普通的旧 ruby​​ 对象作为 IDToken 而不是 ActiveModel 对象。

在我看来,一旦 RP 收到 ID 令牌,他们就会使用它来获取有关资源所有者的信息,并且不会像访问令牌那样将其发送回提供者。还是我在这里遗漏了什么,我应该将 ID 令牌保存在提供者的数据库中?

我知道 Nat Sakimura 解释说 here 在 OAuth / OIDC 的 code 流程中,您应该在将授权码传回 RP 时保存 ID 令牌,但我觉得我可以在他们生成令牌时生成令牌将代码发回并请求访问令牌(连同 id 令牌)。

【问题讨论】:

    标签: ruby-on-rails oauth-2.0 openid-connect


    【解决方案1】:

    原则上您不需要立即生成和存储id_token,但在很多情况下,OP 需要保留有关请求的信息 - 例如请求的范围和请求的声明 - 为了生成所需的id_token,因此立即生成令牌并将其存储为独立单元可能是有意义的。

    请注意,您还需要保留 client_idredirect_uri 以便在交换 code 时能够检查它,以及可选的 nonce

    但确实没有必要按照您的建议立即生成 id_token

    【讨论】:

      猜你喜欢
      • 2020-01-10
      • 2018-06-21
      • 1970-01-01
      • 2022-01-06
      • 2021-04-29
      • 1970-01-01
      • 2021-07-26
      • 2016-08-24
      • 1970-01-01
      相关资源
      最近更新 更多