其他分享
首页 > 其他分享> > Keycloak服务授权

Keycloak服务授权

作者:互联网

概述

keycloak支持细粒度的授权策略,并且可以和不同的访问控制机制结合,比如:

keycloak通过一组管理界面和RESTful接口提供创建权限的必要方法,这些权限用户保护资源和作用域,把权限和鉴权策略绑定,就可以在应用或服务中执行鉴权。

资源服务器(应用或者服务)通常会基于一些信息来决定使用允许对受保护资源的访问。对于RESTful服务而言,这些信息一般是从安全令牌中获得的,而安全令牌是由请求通过bearer token携带的。对于基于会话的网络服务而言,这些信息通常存放在用户会话中,每次请求都需要检索这些信息。

通常,资源服务器会采用基与角色的访问控制策略。当用户试图访问受保护资源时,服务器会检查用户的角色是否允许访问请求的资源。但是这一策略有一些缺点:

假如我们的应用需要服务多样的场景,我们的用户散布在不用的地区,每个地区都有各自的政策,用户也使用不同的设备,同是也有较高的信息共享需求。keycloak的服务授权通过以下方法可以帮助我们提升授权的能力。

架构

在这里插入图片描述
从设计角度来看,授权服务基于一组定义良好的授权模式,提供以下功能:

鉴权过程

三个主要流程定义了理解使用Keycloak对应用程序进行细粒度授权的必要步骤:

资源管理

资源管理过程中可以定义需要被保护的资源
在这里插入图片描述
首先,指明需要保护的对象,通常是一个网络应用或一组服务。
资源服务器通过keycloak控制台管理。任何注册的客户端都可以作为资源服务器并开启管理资源和作用域。
在这里插入图片描述
资源可以是一个网页、一个RESTFul资源、文件系统容中的文件、EJB等。既可以是一组资源也可以是某个特定的资源。
资源可以通过keycloak管理界面管理,也可以通过Protection API管理。使用后者,资源服务器可以远程管理他们的资源。
作用域一般代表可以对某种资源执行的操作,但是并不限于操作。也可以表示资源的属性。

权限和策略管理

定义完资源服务器和要保护的资源后,就需要设置权限和策略。
此过程包括定义管理资源的安全性和访问要求的所有步骤。
在这里插入图片描述
策略定义了对某些内容(资源或范围)访问或执行操作所必须满足的条件,但策略与其所保护的内容无关。策略是通用的,可以重用以生成权限或更复杂的策略。
定义完策略就可以定义权限,权限和权限保护的资源绑定。你需要指定要保护的资源或作用域,然后定义授予或拒绝权限的策略。

策略执行

策略实施涉及到对资源服务器实际实施授权决策的必要步骤。这是通过在能够与授权服务器通信的资源服务器上启用策略实施点来实现的。根据服务器返回的决定和权限请求授权数据,控制对受保护资源的访问。
在这里插入图片描述

鉴权服务

鉴权服务包括如下RESTFul端点

token端点

OAuth2客户端(比如前端服务)可以使用token端点获取访问令牌,然后使用这一令牌访问资源服务器(后台服务)中的资源。以同样的方式,KeyClope授权服务提供对OAuth2的扩展,以允许基于与所请求的资源或范围相关联的所有策略的处理来发布访问令牌。这意味着资源服务器可以根据服务器授予的权限和访问令牌持有的权限管理对受保护的资源的访问。在KeyCloak授权服务中,具有权限的访问令牌称为请求方令牌或简称RPT。

protection API

protection API是方便资源服务器管理他们资源、作用域以及相关策略的端点。只有资源服务器可以访问这些API,访问这些API需要uma_protection作用域。
Protection API提供的操作包括如下两个类别:

当使用

标签:服务,策略,访问,服务器,授权,权限,资源,Keycloak
来源: https://blog.csdn.net/JosephThatwho/article/details/120530609