OpenID Connect webfinger端点是OpenID Connect提供商的用户帐户地图吗?

时间:2017-11-04 19:55:33

标签: security authentication oauth-2.0 openid-connect

this question中,示例答案以:

开头
  

假设Carol希望使用OpenID Connect访问的网站进行身份验证。她会为网站提供她的OpenID Connect标识符,例如carol@example.com。访问过的网站将执行WebFinger查询,查找OpenID Connect提供程序。

听起来example.com还不知道哪个OpenID连接提供商可以验证Carol?它必须使用Carol的电子邮件地址作为查找键才能找出哪些OpenID Connect提供商可以验证她的身份?

许多网站使用Github进行身份验证使用Google进行身份验证,但在这种情况下,网站似乎只根据电子邮件地址确定身份验证提供程序希望进行身份验证的人因此,站点不是选择身份验证提供程序的人,而是要求提供电子邮件地址,然后确定用户可以使用的身份验证提供程序。所以序列就像:

  • 1)用户输入电子邮件地址(或用户ID)
  • 2)服务器使用电子邮件地址/ userid
  • 查找身份验证提供程序
  • 3)服务器显示用户可以从中选择的身份验证提供程序列表

    我是否理解正确?

2 个答案:

答案 0 :(得分:1)

  

所以听起来像example.com还不知道哪个OpenID连接提供商可以验证Carol?

你是对的。 WebFinger协议的作用是确定与OpenID Connect标识符关联的OpenID连接提供程序。

当网站显示"使用Github"进行身份验证时,它的OpenID连接提供程序是硬编码的(Github),并且不实现WebFinger。

答案 1 :(得分:0)

OpenID Provider Issuer Discovery是一个可选的发现服务依赖方通过带外机制了解OP的发行者位置。或者使用需要提供网站的webfinger

  • resource =作为发现请求主题的目标最终用户的标识符。

  • host =托管WebFinger服务的服务器。

  • rel = URI,用于标识正在请求其位置的服务类型。

恕我直言,提供的example from RFC 7033具有误导性。确定发行人和" carol@example.com"很多提供商都没有很好地实施。 (至少我能找到的)

tried a few email addresses并且只能继续发送回复。 (此外,该示例显示了一个简单的http get,但OpenID Connect Discovery需要https)

我确实得到了#34; will@willnorris.com"发送回复。 (参见威尔·诺里斯所做的https://indieweb.org/WebFinger

我也使用OpenID Connect webfinger发现这很方便也是一个安全问题。

我能够根据2010年的条目做some discovery on an bradfitz@gmail.com,但并不像示例中描述的webfinger查询那么简单。

也许其他人会回应。

通常,网站必须注册(客户ID),这可以与他们希望使用的每个OpenID连接提供商一起执行dynamically