已安装应用程序的OpenID身份验证

时间:2009-05-08 08:19:48

标签: authentication java-me openid oauth

我正在筹划一个新的网络项目。客户端将使用常规Web浏览器进行连接,如果是常规的支持Java的手机,则使用j2me客户端。我真的想使用OpenID身份验证。在常规Web浏览器的情况下,事情非常简单。但是,我真的不确定已安装的应用程序(例如安装在移动设备上的j2me客户端) - 通过在特定OpenID提供程序的网页上输入用户名/密码来执行常规OpenID身份验证 - 这是一个非常大的限制:)

有没有人应对这种情况?是否可以为从移动j2me客户端使用OpenID的站点创建身份验证机制?

目前,我想到一个解决方案,希望从手机连接的用户在自己进行身份验证后(从常规浏览器身份验证)从服务器网站下载必要的j2me应用程序。移动客户端应用程序可以在服务器上动态组装,嵌入的SSL证书与特定登录的OpenID用户相关联。之后,j2me客户端可以在不输入任何用户名/密码的情况下对服务器进行身份验证。将要存储在服务器上的数据并不敏感 - 考虑到手机盗窃等情况。

有人能提出更好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

您正在做的最佳解决方案是将OAuth与OpenID结合使用。你在RP上使用OpenID很好。但对于需要访问该网站的已安装应用程序,他们应该使用OAuth获得授权。流程将如下工作:

  1. 用户在其设备上安装应用
  2. 在安装或首次启动期间,该应用程序有一个“授权我”按钮。
  3. 用户按下按钮,Web浏览器会弹出客户端应用程序从中访问数据所需的网站。
  4. 用户使用OpenID
  5. 登录该网站
  6. 网站现在询问“您是否要授权客户端应用X?”
  7. 用户说是并关闭浏览器。
  8. 客户端应用程序重新出现并说“谢谢”。并且现在具有访问用户数据所必需的OAuth令牌,而无需用户再次登录。