我正在开发一个启用了Spring安全性的Spring MVC webapp。我正在尝试使用OpenID来使用gmail登录来访问webapp,并提供说明here。
我只希望一组特定用户可以访问webapp。为此,我需要将所有用户及其ID添加到标记中。 (稍后将为此实现数据库访问)
我的问题是:如何找到用于访问网络应用的gmail帐户的OpenID?
据我所知,OpenID对每个帐户都是唯一的,可用于本地授权。如果我错了,请纠正我。
答案 0 :(得分:0)
答案 1 :(得分:0)
简短回答是Google OpenID网址不是特定于帐户的,由https://www.google.com/accounts/o8/id确定。
详细说明: 在后台,OpenID使用者应该获取XRDS OpenID文档,该文档位于https://www.google.com/accounts/o8/id。通过解析此文档并执行服务发现过程,消费者将提取由https://www.google.com/accounts/o8/ud标识的Google OpenID提供商地址。 该文档告诉消费者什么是Google OpenID参数。 以下是位于https://www.google.com/accounts/o8/id的Google XRDS文档:
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud</URI>
</Service>
</XRD>
</xrds:XRDS>