首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
大数据
›
数据仓库与分析
›
Keycloak中授权的实现-转载
返回列表
发新帖
Keycloak中授权的实现-转载
[复制链接]
发表于 2026-2-7 10:51:22
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
在Keycloak中实现授权,起首必要相识与授权干系的一些概念。授权,简单地说就是某个(些)用户大概某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操纵(Scope)的权限(Permission)。以是,授权是一种权限管理,它创建在认证的底子上:用户起首要完成认证(Authentication),才气谈授权(Authorization)。在讨论认证与授权的文章或论坛里,通常用Authn代表认证(Authentication),而用Authz代表授权(Authorization)。
1. Keycloak中的授权模子
在上面这段形貌中,我已经将几个告急的概念用黑体字标注了。大概会有如许的疑问:用户/用户组不应该是User/Group吗?在谈授权的时间,至少也应该是脚色(Role)吧,比如我们认识的基于脚色的访问控制(RBAC),内里就是脚色,怎么会是战略(Policy)呢?在回复这个题目前,照旧先看一下Keycloak中的授权模子:
这个模子中,包罗了几个告急的概念:
资源(Resource):资源是应用步调中可以或许被访问的对象。假设有个有关天气预报的
API
,它的URL是http://localhost:5678/WeatherForecast,那么,在这台资源
服务器
上,URI
/WeatherForecast就是一个资源的地点,它表现一个跟天气预报干系的
API
端点资源
操纵(Scope):着实Scope并不翻译为“操纵”,这里我使用“操纵”来表现Scope,是由于在授权的场景中,Scope就是界说针对资源的一些“操纵”。比如:对于上面的天气预报
API
资源,我们可以有获取资源的操纵,也可以有更新资源的操纵(比如,让情形员根据别的科学数据来调解某地的天气预报)。于是,在界说Scope的时间,可以用“weather.read”、“weather.update”如许的名字来定名
对于某个资源,它可以声明自己所必要的操纵,比方,在RESTful
API中,/WeatherForecast这个API可以有读取(read/HTTP GET)的操纵,也可以有更新(update/HTTP
PATCH)的操纵,那么,就可以在这个API资源上声明weather.read和weather.update这两个Scope
一个用户组(Group)可以包罗多个子组,一个组下可以有多个用户(User),一个用户又可以属于多个用户组。对于一个用户大概一个组而言,它可以扮演多种脚色(Role),而一个脚色又可以被赋予多个用户大概多个用户组,这些都是耳熟能详的RBAC授权的根本概念,就不多阐明确
战略(Policy)可以明确为满意某种条件的资源访问者(可以是用户或用户组),以是,Policy界说的是条件:脚色就是一种条件,表现“被赋予某种脚色”的条件。基于脚色的战略实现的访问控制,就是RBAC。固然条件不但仅只有脚色,用户满意某个条件也可以成为一种战略,比如要求某个用户年事大于18岁。除此之外,战略是可以被聚合的,聚合战略的投票效果(允许照旧拒绝),取决于被聚合的战略以及投票的方式(是全部被聚合战略都允许,效果才被允许,照旧只要有一个投票为“允许”,整个聚合战略的效果就是“允许”),比如要求用户是年事大于18岁(User
Policy)的体系管理员(Role
Policy)。上图中只简单列了几个继续于Policy的子类用以表示,Keycloak所支持的战略范例不止这些
权限(Permission)是资源(Resource)大概操纵(Scope)与战略(Policy)之间的关联关系。在Keycloak中,权限分为两种:基于资源的权限和基于操纵的权限。表达的语义是:符合某些战略的访问者对指定的资源大概操纵可以访问
明确了这些概念后,在Keycloak中实现授权并不困难。
本文是转载的,原文链接 https://www.cnblogs.com/daxnet/p/18132246
回复
使用道具
举报
返回列表
浏览过的版块
IOS
分布式数据库
Java
DevOps与敏捷开发
开源技术
linux
.Net
Oracle
SQL-Server
勿忘初心做自己
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表