如何使用 OpenID Connect WebFinger 端点?
Posted
技术标签:
【中文标题】如何使用 OpenID Connect WebFinger 端点?【英文标题】:How to use the OpenID Connect WebFinger Endpoint? 【发布时间】:2018-04-17 06:15:06 【问题描述】:阅读description here 上面写着:
WebFinger — 为给定用户启用 OpenID Connect 提供程序的动态发现,基于他们的电子邮件地址或其他一些信息。
谁能举例说明这是如何工作的(描述有点抽象)?
【问题讨论】:
【参考方案1】:WebFinger 是在RFC7033 中定义的协议。 section 3.1中有完整的例子:
3.1. OpenID Connect 的身份提供者发现
假设 Carol 希望通过她访问的网站进行身份验证 OpenID 连接。她会向网站提供她的 OpenID 连接标识符,比如 carol@example.com。访问的网站 将执行 WebFinger 查询以查找 OpenID Connect 提供者。由于该站点只对一个特定链接感兴趣 关系,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”参数,客户端必须 不要假设“链接”数组将只包含请求的链接 关系。
【讨论】:
这只是一个插图还是一个真实的规格?以上是关于如何使用 OpenID Connect WebFinger 端点?的主要内容,如果未能解决你的问题,请参考以下文章
如何验证每个用户可以使用 OAuth 和 OpenID Connect 访问哪些资源?
如何在 ADFS 服务器上使用 OpenID Connect 获取用户名
OpenId Connect 如何保护资源服务器免受客户端模拟?
Google OpenID Connect:如何验证 id_token?