OpenID Connect-使用OpenID提供程序对现有帐户系统进行身份验证

时间:2018-10-31 03:06:52

标签: authentication oauth-2.0 openid-connect

我试图进行研究,但没有找到有用的东西,但也许我不知道要搜索什么。

任务

我必须设置一个OpenID Connect回调URL才能提供给自定义OpenID提供程序。

背景

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

我认为第三方网站的帐户由其运营商提供。我们的系统中有一些帐户,这些帐户是通过API提取帐户并在系统中本地生成的(此过程无法更改)。

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

做什么

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

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

这看似合理吗? -似乎很hack,因为这似乎忽略了OpenID Connect提供的一切?

1 个答案:

答案 0 :(得分:0)

  

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

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

这与您在“使用Facebook登录”或“使用Google登录”方案中看到的相似。基本上,您是从受信任的身份提供者(AKA授权服务器)提取用户数据并在系统中创建用户。如果您的第三方拥有一个身份提供者,该身份提供者可以在您的系统中使用,并且允许您的系统使用类似于“使用System X登录”的方式,那么您可以继续执行该操作。并且当您从登录名收到ID令牌时,可以将其值与以前获取的用户数据进行比较。为此,您可以使用用户ID,电子邮件或两个系统都可以理解的ID。

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