使用OpenID Connect和OAuth管理应用程序访问

时间:2018-12-08 21:30:14

标签: oauth-2.0 openid identity openid-connect

从OpenID Connect和OAuth规范来看,似乎OpenID connect完全与身份有关,而OAuth与委托访问有关(尽管它似乎特别是 API 访问)。

如果OAuth是用于API访问的,那么推荐的管理客户端访问的方法是什么? OpenID Connect可以说出您是谁,但是会说出您可以访问哪些客户端(应用程序)。

这是应用程序本身的工作还是我们可以放入访问令牌的工作?

1 个答案:

答案 0 :(得分:0)

我不确定您到底想知道什么,所以我将尝试更广泛地回答。

假设您有一个身份验证(OAuth2)提供程序,使用它的多个应用程序(客户端)和多个用户。

如果客户端获得了ID令牌,则该令牌仅应由请求它的客户端用来验证用户身份-ID令牌包含客户端的{{1}和aud(受众群体)字段}。

如果客户端获得了资源所有者授权的访问令牌,则客户端可以使用该访问令牌来访问任何接受授权提供者发布的令牌的资源(API服务)。但是API服务会检查访问令牌是否包含该服务所需的范围。如果客户端请求资源所有者不能委托的范围(权限不足),则身份验证提供程序可以return error client_id或仅从访问令牌中省略范围。客户端是否可以委托范围的决定取决于auth提供者的实现(OAuth2 RFC并不涵盖范围)。

如果您想限制某些用户/客户端组合,以使用户无法授权客户端获取令牌,那么再次,这是身份验证提供程序的实现细节。

如果您的问题更多是关于具有ID令牌(或访问令牌)的应用程序中允许经过身份验证的用户执行的操作,则由您决定如何执行。应用程序通常需要限制对服务和数据的访问。服务通常是静态的,访问可以基于访问令牌范围。但是应用程序数据是动态的,访问通常基于数据所有权或访问控制列表(ACL,例如文件系统)。