如何获得谷歌帐户的Openid

时间:2013-09-19 12:21:29

标签: spring spring-mvc spring-security openid google-openid

我正在开发一个启用了Spring安全性的Spring MVC webapp。我正在尝试使用OpenID来使用gmail登录来访问webapp,并提供说明here

我只希望一组特定用户可以访问webapp。为此,我需要将所有用户及其ID添加到标记中。 (稍后将为此实现数据库访问)

我的问题是:如何找到用于访问网络应用的gmail帐户的OpenID?

据我所知,OpenID对每个帐户都是唯一的,可用于本地授权。如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:0)

  1. 设置一个OpenID依赖方,记录与之通信 OpenID提供商。
  2. 使用您的Google帐户进行身份验证。
  3. 查看日志。

答案 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>