4

在 OpenID Connect Discovery 1.0 规范中,使用电子邮件地址语法的用户输入部分 他们有这个例子:

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

  HTTP/1.1 200 OK
  Content-Type: application/jrd+json

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

我试过了

curl -GLv http://yahoo.com/.well-known/webfinger \
    --data-urlencode "resource=acct:myrealname@yahoo.com" \
    --data-urlencode "rel=http://openid.net/specs/connect/1.0/issuer"

我也试过

curl -GLv http://gmail.com/.well-known/webfinger \
    --data-urlencode "resource=acct:myrealname@gmail.com" \
    --data-urlencode "rel=http://openid.net/specs/connect/1.0/issuer"

在少数之中。但我得到的只是404 Not Found

也许我做错了什么,或者互联网上可能没有地方可以实际返回200 OK上面示例中显示的内容。

我的问题是,给定一个 OpenID(我的意思是用户在这里输入的内容

在此处输入图像描述

),如何确定 OpenID Provider Issuer 在哪里?换句话说,如果我想允许通过OpenId Connect登录,我是否必须保留自己的从 OpenID 模式到 OpenID 颁发者的映射?

4

2 回答 2

2

OpenID Connect 不同于 OpenID 2.0。Yahoo 支持 OpenID 2.0 但还不支持 OpenID Connect + Discovery,因此是 404。这是互联网上返回 200 OK 的地方:

curl -GLv https://seed.gluu.org/.well-known/webfinger \
    --data-urlencode "resource=acct:mike@seed.gluu.org" \
    --data-urlencode "rel=http://openid.net/specs/connect/1.0/issuer"
于 2014-12-08T07:43:16.623 回答
1

WebFinger 规范相对较新,OpenID Connect 甚至更新,因此两者都没有被广泛部署。您可以从我的个人帐户获取信息:

$ curl https://packetizer.com/.well-known/webfinger?resource=acct%3Apaulej%40packetizer.com

我还没有实现 OpenID Connect,但是如果你想用一般的 WebFinger 查询进行测试,请联系我。我可以让我的服务器发出任何你想测试的东西。

于 2014-12-08T20:14:16.247 回答