通过OneLogin和.NET Core使用OpenID Connect / OAuth2进行基于角色的访问控制

时间:2019-02-10 21:10:10

标签: asp.net-core .net-core onelogin

我正在寻找有关使用OpenID Connect / OAuth2和.NET Core和OneLogin实现基于角色的访问控制的信息和示例代码。

任何建议都会非常令人感动。

2 个答案:

答案 0 :(得分:0)

我建议您使用IdentityServer4路由。

其实现是OAuth2和OpenIdConnect规范的抽象。

您可以先阅读docs

他们有相当不错的文档,并提供了大量示例,可以帮助您入门。

作为笔记以及基于角色的访问将不是您的首选,因为发出的令牌会存储声明。但是,您可以将UserRoles转换为Claims。

答案 1 :(得分:0)

OAuth2或OIDC不能单独实现RBAC。它们分别是授权或认证协议。 OIDC有可能携带组/角色信息作为令牌中的声明,这将要求您的应用程序能够解析声明,然后根据声明中携带的信息应用权限。

RBAC通常需要IAM或IGA工具来实现角色目录/模型。将角色分配给用户可提供权利。可以直接在目标应用程序上实现该权利(例如通过API或通过Microsoft AD组),或者IdP可以将OIDC令牌中的权利携带到目标应用程序。

对于专门用于AD集成的Onelogin,可以通过OIDC令牌中包含的memberOf属性来驱动您的权利。但是,这不是RBAC,除非已通过IAM / IGA工具分配了AD组成员身份,该工具通过角色分配了这些组成员身份。