2011-09-28 77 views
7

我试图理解在您的项目中实现OpenID的概念和好处。而且,由于我是Java开发人员,因此我对理解其主要Java实现openid4java或多或少都有同样的兴趣。Java的OpenID体系结构

我的理解是,OpenID是以统一的方式配置分散ID的标准。现在,如果这完全(或者甚至稍微)不正确,请纠正我!

假设我仍然处于正轨,我看到各种类型或组织都在使用OpenID,例如MySpace,他们通过匹配http://www.myspace.com/username的URL标识每个用户。

那么OpenID如何作为一个系统工作?它是否仅仅表现为“OpenID服务器”的网络,像DNS机器一样,协调并确保其系统中的所有ID都是唯一的并且匹配某种模式?或者,它仅仅是一种算法,像GUID一样为每个客户端域(如MySpace)生成全局唯一的ID。

我只是不理解OpenID如何实际表现自己,以及像openid4java这样的框架如何与该“表现”相互作用。 (他们的用途是什么)。

回答

3

首先,OpenID通信有两个方面 - 提供者和消费者。消费者是尝试使用OpenID进行身份验证的应用程序,提供程序是身份验证请求发送到的服务器。

每个提供者都有一个所谓的Endpoint - 接受认证请求的url。在支持OpenID提供程序时,您应该提前知道该URL。首先,您必须发现给定openId的端点是什么,然后与该提供者交换消息。这全部包装在openid4java ConsumerManager中。

然后发生身份验证 - 您将用户重定向到提供者网址,用户确认他想用他的帐户登录(应该登录),然后提供者重定向回您,然后您可以获得请求有关用户的信息(通过另一个请求)

+0

谢谢@Bozho!那么像openid4java这样的类似OpenSSO这样的SSO框架如何工作呢?那里的“分工”是什么? – IAmYourFaja

+0

说实话 - 我不知道:) – Bozho

+0

找到[this](http://www.alleged.org.uk/pdc/2007/08/13.html)文章,这对于开发者来说可能是有意义的已经有了SSO和/或OpenID的经验。对我来说,它并没有形成一大堆意义,但我将其另存为另一项研究工作;-)〜再次感谢您的回答 – IAmYourFaja