2

特别是我对验证声称的 ID 感兴趣。Google 的说明讨论了从声明 ID 中的域中检索元数据,其中将包含指向 XRDS 文档的链接。对于可以在以下位置找到元文件的谷歌应用程序

http://example.com/.well-known/host-metahttps://www.google.com/accounts/o8/.well-known/host-meta?hd=example.com

我的问题是这些主机元路径都是谷歌对规范的扩充还是仅是后者?我们正在尝试更新标准的开放 ID 库之一以正确支持这一点,并且我们希望保持支持 google 扩充的代码适当地分开。

我似乎在 open-id 规范文件中找不到对“.well-known/host-meta”的任何引用。

4

1 回答 1

1

协议本身大多是标准的——例如 /.well-known/host-meta 是用于发现的 LRDD 规范的一部分。Google Apps 的问题在于,很少有域(如果有的话)拥有自己的发现信息,因此尝试发现 example.com 之类的域的提供者会失败。因此,Google 为 host-meta 文件提供了一个备用位置,想要支持 Google Apps 的 OpenID RP 需要了解该位置。

此外,如果您要验证这些外包 XRDS 文件的签名,则需要允许 hosts-id.google.com 作为有效签名者。通常,您会检查签名证书主题是否与您要查找的域相同,但由于 Google 代表目标域进行签名,因此需要进行额外检查。

在相关的说明中,Google Apps 支持已经添加到一堆不同的库中,直接或通过附加组件:

PHP:php-openid + http://code.google.com/p/php-openid-apps-discovery/

红宝石:ruby-openid + http://code.google.com/p/ruby-openid-apps-discovery/

.NET:DotNetOpenAuth(内置)

Java:OpenID4Java + http://code.google.com/p/step2

Python:https ://github.com/adieu/python-openid

于 2011-12-16T22:46:08.483 回答