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



查看OpenID Connect和OAuth规范,OpenID连接似乎都是关于身份的,而OAuth是关于委派访问的(尽管它似乎特别是neneneba API访问(。

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

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

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

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

如果客户端获得ID令牌,则该令牌应该仅用于请求该令牌的客户端验证用户身份——ID令牌包含客户端的client_idaud(受众(字段。

如果客户端获得由资源所有者授权的访问令牌,则客户端可以使用该访问令牌来访问接受由授权提供商颁发的令牌的任何资源(API服务(。但是API服务检查访问令牌是否包含服务所需的作用域。如果客户端请求资源所有者无法委托的作用域(权限不足(,则身份验证提供程序可能会返回错误invalid_scope,或者只是从访问令牌中省略该作用域。客户端是否可以委派作用域取决于身份验证提供程序实现(OAuth2 RFC不包括它(。

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

如果您的问题更多地是关于在具有ID令牌(或访问令牌(的应用程序中允许经过身份验证的用户做什么,那么由您决定如何做。应用程序通常需要限制对服务和数据的访问。服务通常是静态的,并且访问可以基于访问令牌作用域。但是应用程序数据是动态的,访问通常基于数据所有权或访问控制列表(ACL,类似于文件系统(。

最新更新