2013-10-10 47 views
13

尽管我之前使用过OAuth 2,但我是Open ID Connect的新手。OAuth 2 access_token vs OpenId Connect id_token

阅读我所遇到的两个的access_token教程和文档和id_token其中的access_token是根据OAuth的生成的随机唯一字符串2id_token是JSON网络令牌包含了像的ID信息用户,算法,发行者和可用于验证它的各种其他信息。据我所知,API提供者同时提供了access_token和id_token,并且我知道它是为了向后兼容。

我的问题是是否可以使用access_token和id_token来访问受保护的资源?或者是仅用于验证目的的id_token,access_token用于访问受保护的资源?

回答

24

最初,OAuth和OpenId是为不同目的设计的:OpenId用于身份验证,OAuth用于授权。 OpenId Connect是两者的统一,适用于两者,但不会改变其原有功能。牢记这一点,你应该能够发现自己。 ;-)

id_token用于标识已通过身份验证的用户,例如,为SSO。必须使用access_token来证明受保护资源的访问权限,例如用于OpenId Connect中的userinfo端点。

+0

我有点困惑这个开放的ID连接和oauth2实现。我有一个前端(html,angularjs)和后端 webservice.Now我想在登录过程中实现基于令牌的机制,所以登录用户将发送clientid ,emailid,密码和后端我会验证客户端ID其他凭据后,我会发出一个令牌给用户,并在该令牌的帮助下用户将维护该用户会话。所以,openid连接到哪里,以及它将如何使用请给我提供一些见解,因为我真的很困惑请 –

+0

据我所知,你不需要授权,只需要认证。如果是这样,那么您应该简单地使用OpenId或SSO解决方案,但根本不需要OAuth或OpenId Connect。 –

1

access_token可用于调用Auth0中的某些API(例如/ userinfo)或您在Auth0中定义的API。

id_token是智威汤逊,代表登录用户。它经常被你的应用使用。

是否可以同时使用access_token和id_token来访问受保护的资源 ?

不完全,首先,你需要使用id_token登录,
第二,你会得到一个的accessToken,
最后,使用的accessToken来访问数据。