首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建公共sdk需要选择哪种oauth或openid-connect?

构建公共sdk需要选择哪种oauth或openid-connect?
EN

Stack Overflow用户
提问于 2018-06-29 18:21:23
回答 1查看 73关注 0票数 0

我将为开发人员构建一个SDK来访问我的后端restful资源。例如,我在下面定义了restful apis:

代码语言:javascript
复制
get     GET  /changes/changeId  
list    GET  /changes   
getStartPageToken   GET  /changes/startPageToken

我需要保护我的apis,我遇到了openid-connect、auth1和auth2,但我不确定我需要使用哪一个。据我所知,auth2更多的是用于第三方身份验证,比如以googlefacebook账号等登录,对吗?

在其他一些公共app设计中,开发人员需要注册开发人员帐户并获得应用程序密钥和密钥。他们可以使用密钥和密钥来使用他们的API。这是哪种类型的身份验证?

其中哪一个更适合我的用例?

EN

回答 1

Stack Overflow用户

发布于 2018-07-02 13:08:36

OAuth 1.0已经被OAuth 2.0淘汰了。因此,您可以从清单中删除OAuth 1.0。

现在OAuth 2.0和OpenID Connect的不同之处在于它们的用途。OAuth 2.0是一个为授权而构建的框架。OpenID连接构建在OAuth 2.0 (扩展其功能)之上,并提供授权和身份验证(身份验证构建在id token上)。

现在,这些协议使您能够完成协议流并从授权服务器(有时称为身份提供者或身份服务器)获取令牌。与按应用程序维护用户不同,用户注册表是由授权服务维护的,授权服务可以在多个应用程序之间共享。此外,授权服务器将颁发和维护令牌。此外,它还将提供令牌消费者使用的令牌验证机制(例如:- OAuth 2.0 Token introspection)。

据我所知,auth2更多地用于第三方身份验证

不一定。如上所述,此方法使您能够集中维护用户帐户。并提供针对内部应用程序的用户获取令牌的方法。允许第三方进行身份验证是一个额外的好处。

在其他一些公共app设计中,开发人员需要注册开发人员帐户并获得应用程序密钥和密钥。他们可以使用密钥和密钥来使用他们的API。

OAuth 2.0 (OpenID连接)还要求您在授权服务器上注册应用程序。但与应用程序密钥、基于密钥的方法(或基于API密钥的方法)不同,OAuth 2.0为您提供的是自动化令牌获取和令牌刷新过程的能力。这是通过遵循定义的流(例如:- Authorization code flow)来完成的。生命周期较短且能够撤销的令牌对安全性也有好处。

它们中哪一个更适合我的用例?

我更喜欢你使用OAuth 2.0或OpenID连接。有了它们,您可以使用访问令牌来保护您的API。SDK的用户应该发送Bearer Token Usage中定义的访问令牌。

现在,在OAuth 2.0和OpenID连接之间选择什么?

这取决于SDK对客户端的要求。如果客户端应用程序需要识别最终用户并对其进行身份验证,则应选择OpenID连接。但是如果客户端应用程序只需要使用API,那么您可以使用OAuth 2.0。无论哪种方式,您的API都必须使用有效的访问令牌来调用。并且您的API应该在授予访问权限之前验证访问令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51099567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档