如何使用OpenID Connect WebFinger端点?

时间:2017-11-04 18:17:01

标签: http security oauth-2.0 openid-connect

阅读它所说的description here

  

WebFinger - 根据用户的电子邮件地址或其他信息,为给定用户启用动态发现OpenID Connect提供程序。

有人可以给出一个如何工作的例子(描述有点抽象)吗?

1 个答案:

答案 0 :(得分:1)

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

  

<强> 3.1。 OpenID Connect的身份提供商发现

     

假设Carol希望通过她访问过的网站进行身份验证      OpenID Connect。她会为网站提供她的OpenID      连接标识符,例如carol@example.com。访问过的网站      将执行寻找OpenID Connect的WebFinger查询      供应商。由于该网站只对一个特定链接感兴趣      关系,WebFinger资源可能会使用“rel”参数      在第4.3节中描述:

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

服务器可能会这样回复:

HTTP/1.1 200 OK
 Access-Control-Allow-Origin: *
 Content-Type: application/jrd+json

{
   "subject" : "acct:carol@example.com",
   "links" :
   [
     {
       "rel" : "http://openid.net/specs/connect/1.0/issuer",
       "href" : "https://openid.example.com"
     }
   ]
 }
     

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