如何使用 OpenID Connect WebFinger 端点?

Ole*_*Ole 5 security http oauth-2.0 openid-connect

阅读这里的描述,它说:

\n\n
\n

WebFinger \xe2\x80\x94 根据给定用户的电子邮件地址或其他一些信息启用 OpenID Connect 提供程序的动态发现。

\n
\n\n

有人可以举例说明它是如何工作的(描述有点抽象)吗?

\n

Ort*_*kni 4

WebFinger 是RFC7033中定义的协议。3.1节中有一个完整的例子:

3.1. OpenID Connect 的身份提供商发现

假设 Carol 希望使用 OpenID Connect 对她访问的网站进行身份验证。她会向网站提供她的 OpenID Connect 标识符,例如 carol@example.com。访问的网站将执行 WebFinger 查询来查找 OpenID Connect 提供商。由于站点仅对一种特定链接关系感兴趣,因此 WebFinger 资源可能会使用第 4.3 节中所述的“rel”参数:

GET /.well-known/webfinger?
Run Code Online (Sandbox Code Playgroud)
        resource=acct%3Acarol%40example.com&
        rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer
        HTTP/1.1
 Host: example.com
Run Code Online (Sandbox Code Playgroud)

服务器可能会这样响应:

HTTP/1.1 200 OK
Run Code Online (Sandbox Code Playgroud)
 Access-Control-Allow-Origin: *
 Content-Type: application/jrd+json
Run Code Online (Sandbox Code Playgroud)
{
Run Code Online (Sandbox Code Playgroud)
   "subject" : "acct:carol@example.com",
   "links" :
   [
     {
       "rel" : "http://openid.net/specs/connect/1.0/issuer",
       "href" : "https://openid.example.com"
     }
   ]
 }
Run Code Online (Sandbox Code Playgroud)

由于“rel”参数仅用于过滤资源返回的链接关系,因此将返回响应中的其他名称/值对,包括任何别名或属性。此外,由于不能保证对“rel”参数的支持,因此客户端不得假设“links”数组将仅包含所请求的链接关系。