在 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(我的意思是用户在这里输入的内容
),如何确定 OpenID 提供商发行者在哪里?换句话说,如果我想允许通过 OpenId Connect 登录,我是否必须保留我自己的从 OpenID 模式到 OpenID 颁发者的映射?
最佳答案
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"
关于rest - 发现 OpenID Connect 提供商发行者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27352532/