发现OpenID Connect Provider Issuer

时间:2014-12-08 06:28:46

标签: rest oauth-2.0 openid openid-connect webfinger

在OpenID Connect Discovery 1.0规范的User Input using E-Mail Address Syntax部分中,他们有这个例子:

  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(我的意思是用户在这里输入的内容

enter image description here

),您如何确定OpenID提供商发行人的位置?换句话说,如果我想通过OpenId Connect允许登录,我是否 将我自己的地图从OpenID模式保存到OpenID发布者?

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:1)

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

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

我还没有实现OpenID Connect,但如果您想使用常规WebFinger查询进行测试,请执行ping操作。我可以让我的服务器发出你想要测试的任何东西。