Keycloak 入门实战(1)-

Keycloak 入门实战(1)-

Keycloak 是面向应用和服务的身份认证及访问控制解决方案,本文主要介绍器基本概念。

1、KeyCloak 概述

Keycloak支持细粒度的授权策略,并且能够组合不同的访问控制机制:

  • Attribute-based access control (ABAC): 基于属性的访问控制
  • Role-based access control (RBAC): 基于角色的访问控制
  • User-based access control (UBAC): 基于用户的用户控制
  • Context-based access control (CBAC): 基于上下文的访问控制
  • Rule-based access control: 基于规则的访问控制
    • 使用Javascript
  • Time-based access control: 基于时间的访问控制
  • 通过策略提供程序服务提供程序接口(SPI)支持自定义访问控制机制(ACMs)

Keycloak 基于一组管理 UI 和一个 RESTful API,它提供了必要的方法来为受保护的资源和作用域创建权限,将这些权限与授权策略相关联,并在应用程序和服务中强制实施授权决策。

资源服务器(为受保护资源提供服务的应用程序或服务)通常依赖于某种信息来决定是否应向受保护资源授予访问权限。对于基于 RESTful 的资源服务器,该信息通常从安全令牌中获取;对于依赖会话对用户进行身份验证的 Web 应用程序,该信息通常存储在会话中。

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

  • 资源和角色紧密耦合,对角色的更改(如添加、删除或更改访问上下文)可能会影响多个资源

  • 安全要求变化时可能需要大量修改代码

  • 如果应用程序较大,角色管理可能会变得困难且容易出错

  • 它不是最灵活的访问控制机制。角色不能代表你是谁,并且缺乏上下文信息。如果您被授予了某个角色,则您至少具有一定的访问权限。

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

  • 使用细粒度的授权策略和不同的访问控制机制进行资源保护

  • 集中的资源、权限和策略管理

  • 集中式策略决策点

  • REST 的安全基于一组 REST 的授权服务

  • 授权工作流和用户管理访问

  • 可避免跨项目(和重新部署)的代码复制,并快速适应安全要求的变化

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Keycloak 入门实战(1)-