【问题标题】:OpenID Connect - use OpenID Provider to authenticate an existing accounts systemOpenID Connect - 使用 OpenID Provider 对现有帐户系统进行身份验证
【发布时间】:2018-10-31 03:06:51
【问题描述】:

我尝试过研究,但没有找到任何有用的东西,但也许我不知道要搜索什么。

任务

我必须设置一个 OpenID Connect 回调 URL 以提供给自定义 OpenID 提供者。

背景

在进行任何类型的登录之前,我们会使用来自第 3 方的帐户填充我们的数据库。 然后通过我们系统中的用户表单交互发送电子邮件以收集每个帐户的数据。

我认为第 3 方网站的帐户由他们的 OP 提供。我们的系统有一些账户,这些账户是通过 API 获取他们的账户并在我们的系统中本地生成的(这个过程不能改变)。

他们希望通过 OpenID Connect 使用 SSO 将用户从他们的网站发送到我们的网站。

做什么

现在我了解了如何设置接收令牌的端点,并且需要使用“直接反向通道”将其发回以获取可理解的 ID 令牌(通过阅读 OpenID 文档)。

我认为最简单的方法是将令牌与我们通过定义每个唯一用户帐户(例如他们的帐户 UUID)的 API 收集的东西进行比较。我不知道 ID 令牌有什么可用的.. 一旦我确定了哪个帐户正在尝试进行身份验证/登录,我就可以通过我们的系统以编程方式进行身份验证并重定向到相应的页面。

这合理吗? - 看起来很老套,因为这似乎忽略了 OpenID Connect 提供的所有内容?

【问题讨论】:

    标签: authentication oauth-2.0 openid-connect


    【解决方案1】:

    他们希望通过 OpenID Connect 使用 SSO 将用户从他们的网站发送到我们的网站。

    从您的解释中我可以理解,您需要的是允许托管(存储)在第三方授权服务器中的用户访问您的系统。

    这类似于您在“使用 Facebook 登录”或“使用 Google 登录”场景中看到的内容。基本上,您是从受信任的身份提供者(AKA 授权服务器)中提取用户数据并在您的系统中创建一个用户。如果您的第三方拥有暴露给您的系统的身份提供程序并允许您的系统使用类似于“使用 System X 登录”的东西,那么您可以继续实施。当您从登录中收到 ID 令牌时,您可以将其值与之前获取的用户数据进行比较。为此,您可以使用用户 ID、电子邮件或简单的两个系统都可以理解的 ID。

    关于单点登录,如果系统在浏览器上运行并且用户已经登录,点击“使用 System X 登录”时,用户可能不需要重新登录。这类似于使用 Google 登录。

    【讨论】:

    • 嗯,也许我没有很好地表达我的问题。这是我的主要问题 - 我不想从“使用 facebook 登录”样式系统创建用户。我已经有了用户设置。每个将存在的帐户在被重定向到我们的网站之前就已经存在。我们的系统也无法选择登录方式,您通过我们的系统帐户登录。我需要一种网站 A 将用户重定向到网站 B 的方式,并且网站 B 中有一个用户以某种方式与网站 A 上的用户匹配
    猜你喜欢
    • 2021-07-29
    • 2019-12-16
    • 2018-04-12
    • 2018-01-01
    • 1970-01-01
    • 2016-06-28
    • 2021-09-07
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多