OAuth/OpenID - 我应该使用哪个?

Posted

技术标签:

【中文标题】OAuth/OpenID - 我应该使用哪个?【英文标题】:OAuth/OpenID - which should I use? 【发布时间】:2011-05-14 01:17:38 【问题描述】:

我正在开发一个 android 应用程序,该应用程序要求用户注册并登录网站,然后在 Android 应用程序中使用该注册信息。我应该使用 oauth 还是 openid 还是有什么更好的方法可以让我不需要开发一次性身份验证系统?

【问题讨论】:

OAuth 的发音如何?是“哦,应该”还是“誓言”? 我发音为“oh - auth” 【参考方案1】:

OpenID

如果您只是想在您的 Android 应用程序中验证用户身份,而不在您的应用程序和由第三方服务提供商(如 google、flickr、facebook 等)存储和管理的用户数据之间交换数据,那么OpenID 可能是您更好的选择。

有一个基于 java 的库应该可以在 Android 平台上运行,名为 openid4java。

OAuth

OAuth,虽然部分工作流程涉及针对 OAuth 服务提供商进行身份验证,但更侧重于授权部分,因为它在很大程度上不了解底层身份验证机制。

如果您希望您的应用程序代表用户行事(以获取存储在支持 oauth 的第三方的用户数据),那么 OAuth 是一个有趣的选择。 OAuth 无法获取用户的身份,它只是为已识别的用户提供授权机制。

Signpost 是一个基于 Java 的库,适用于 Android。

OpenID 连接

对于早期采用者,即将出现的另一个有趣的解决方案是 Open ID connect,它结合了两个世界中最好的。

查看以下帖子了解更多背景信息。

What's the difference between OpenID and OAuth? http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/

当然还有规格:

http://openid.net/ http://oauth.net/

【讨论】:

ddewaele - 很多很多 非常感谢您的回答 - 我可能会看看 Signpost - 因为它适用于 Android 平台。也感谢您建议 OpenID Connect.... alshapton,请注意:将答案标记为有用和接受答案是两件事 :)

以上是关于OAuth/OpenID - 我应该使用哪个?的主要内容,如果未能解决你的问题,请参考以下文章

在集成测试中使用 oauth/openid 进行身份验证

使用 Oauth2/OpenID 连接构建 Web-API

认证? ,开放ID?两者都不?我的网站应该支持哪一个?

使用 OAuth2/OpenId Connect 和微服务进行身份验证和授权

OAuth & OpenID & SAML 工作流程梳理对比

Spring Boot OAuth2/OpenID Connect Client 尝试解码 Jwt: Malformed Jwk set 时出错