1

ORY Hydra 目前是否具有验证客户端是否通过 OpenID Connect 登录的功能?我注意到有一个 API 可以通过前端通道注销

但是,当用户重新访问身份提供者时,我无法知道他们当前是否已登录。他们可以删除他们的客户端 HTTP cookie,然后我与 Hydra 不同步。含义:九头蛇让他们登录,但我现在让他们注销。此外,如果发生反向通道注销,我希望能够查询此状态。

是否有一个我忽略的 API 可以让我知道客户端当前是否通过 Hydra 进行了活动的 OpenID Connect 登录?

目前看来,唯一能做的就是将用户重定向到授权端点,因为我们无法知道他们是否被授权。

Hydra 附带的以下两个表似乎是我所追求的数据的真实来源:hydra_oauth2_accesshydra_oauth2_authentication_session. 如果没有开箱即用的受支持的 HTTP API 以查看用户是否有活动的身份验证会话,那么直接查询这些是否有意义?

4

2 回答 2

1

通过重定向向 Provider 发送身份验证请求,包括prompt=none此用例的地址:如果 Provider 正在进行 SSO 会话,它将静默登录并返回新令牌,否则将返回错误代码login_required

请注意,在这两种情况下都不会有明确的用户交互,因此这很方便(并且意味着)在隐藏的 iframe 中运行。

于 2020-12-15T21:12:07.993 回答
0

登录状态

OAuth 客户端通常是具有多个用户的 UI 应用程序。每个用户的登录状态由应用程序或用户都无权访问的授权服务器会话 cookie 表示:

  • 授权服务器 (AS) 发出 SSO cookie,存储在 AS 域的系统浏览器中
  • 当 Web UI 和 Native UI 调用系统浏览器时,它们都会在后续请求中隐式发送它

授权重定向

当 OAuth UI 重定向用户时,通常不知道是否:

  • 将提示用户登录
  • 用户将以静默方式登录(例如,用户可能已登录到另一个应用程序)

对于 Web UI,可以使用prompt=none参数在隐藏的 iframe 上发送授权重定向。如果用户需要登录,则会返回login_required错误代码。有关详细信息,请参阅我的Silent Token Renewal Page

然而,这并不完全可靠,并且在 2020 年会出现一些浏览器问题。如果您使用不同类型的客户端,它也可能不适合。

联合登录

在某些设置中,AS 进一步重定向到身份提供者 (IDP),并且用户的登录状态进一步受到 IDP 会话 cookie 的影响。

应用程序无法获取用户的 IDP 登录状态,因为该应用程序只与 AS 交互。

是否存在可用性问题?

如果是这样,请回帖,我们可以进一步讨论...

于 2020-12-15T21:07:49.863 回答