惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - builderman

运行abp install-libs的时候,提示"NPM is not installed"的原因及解决办法 nginx 基本操作 nginx 正向代理与反正代理的区别及简单配置 用crontab定时分隔nginx日志文件 修改linux终端中当前用户的显示颜色 minikube使用笔记 ssh端口转发 kubectl proxy 让外部网络访问K8S service的ClusterIP 记录一下我在ubuntu下安装 minikube的过程 ssh ssh-keygen 私钥 docker vscode server docker network docker mysql8 phpmyadmin linux 压缩与解压缩 Ubuntu添加开机自动启动程序的方法 Linux基本命令集合 linux下使用supervisor启动.net core mvc website的配置 小修改,让mvc的验证锦上添点花(2) 小修改,让mvc的验证锦上添点花(1)
KeyCloak基础概念
builderman · 2021-12-25 · via 博客园 - builderman

Users

是一种可以登录系统的实体,可以拥有一些属性,如email、username、address、phone number等, 可以加入组,成为组成员 可以分配角色

Authentication

识别和验证用户

Authorization

为用户授权

Credentials

Keycloak用来识别和验证用户的一些数据,如密码、一次性密码、数字签名、指纹。

Roles

  • 角色,用户的一个分类,如管理员、普通用户、管理者、普通雇员等
  • 应用程序一般会将权限分配给指定角色,而不是直接分配给用户。
  • 角色分为Realm级别角色和client级别角色。
  • 用户可以同时拥有Realm角色和不同client的client级别的角色。

User role mapping

一个用户可以与0个或多个角色关联,这些关联关系可以被包含进token或assertions(断言)中,applications可以根据这些映射关系来进行访问控制。

Composite roles 复合角色

一个复合角色可以关联多个普通角色,如复合角色superuser可以关联sales-admin、order-entry-admin角色,如果用户拥有superuser角色,则相当于同时拥有sales-admin和order-entry-admin角色。

Groups

  • 组是为了更方便的管理用户
  • 可以为组定义属性
  • 可以为组分配角色
  • 组成员自动继承组的属性和角色。

Realm 领域

  • 一个realm管理一系列user、Credentials、roles、groups。
  • 一个user隶属于一个realm
  • 一个user也只能log in 一个realm
  • Realm彼此之间是隔离的
  • 每个realm只能管理和认证自己控制的user

Clients

Clients可以请求keycloak去认证一个user

大多数情况下,clients是一些应用和服务,这些application和service想要通过keycloak加固自己,并提供单点登录解决方案。

Clients还可以仅仅请求认证信息或者访问token,这样他们可以安全的调用其他被keycloak保护的服务。

Client apapters

Client适配器 是一种插件,

这种插件是用来安装在你的应用环境上的, 安装后,可以与keycloak进行通信,并被keycloak保护。 Keycloak针对不同的应用环境提供了不同的适配器,可以下载。 有些应用环境keycloak没有提供apapter,可以使用第三方开发的adapter。

realm

领域的名称, 这是必需的。

resource

应用程序的client-id,每个应用程序都有一个用于标识该应用程序的client-id。 这是必需的。

realm-public-key

领域的公钥,PEM格式。 您可以从管理控制台中获取。 这是可选的,建议您不要进行设置。 如果未设置,则适配器将从Keycloak下载此文件,并且始终会在需要时重新下载它(例如Keycloak旋转其密钥)。 但是,如果设置了realm-public-key,那么适配器将永远不会从Keycloak下载新密钥,因此,当Keycloak旋转其密钥时,适配器会损坏。

auth-server-url

Keycloak服务器的基本URL。 所有其他Keycloak页面和REST服务端点都从此派生。 通常采用https:// host:port / auth的形式。 这是必需的。

ssl-required

确保与Keycloak服务器之间的所有通信均通过HTTPS。 在生产中,这应该设置为全部。 这是可选的。 默认值为外部,这意味着外部请求默认情况下需要HTTPS。 有效值为“全部”,“外部”和“无”。

confidential-port

Keycloak服务器用于通过SSL / TLS进行安全连接的机密端口。 这是可选的。 默认值为8443。

use-resource-role-mappings

如果设置为true,则适配器将在令牌内部查找用户的应用程序级角色映射。 如果为false,它将查看用户角色映射的领域级别。 这是可选的。 默认值为false。

public-client

如果设置为true,则适配器不会将客户端的凭据发送到Keycloak。 这是可选的。 默认值为false。

bearer-only

对于服务,应将其设置为true。 如果启用,适配器将不会尝试对用户进行身份验证,而仅验证承载令牌。 这是可选的。 默认值为false。

autodetect-bearer-only

如果您的应用程序同时提供Web应用程序和Web服务(例如SOAP或REST),则应将其设置为true。 它允许您将Web应用程序的未经身份验证的用户重定向到Keycloak登录页面,但是将HTTP 401状态代码发送到未经身份验证的SOAP或REST客户端,因为他们不了解重定向至登录页面的方式。 Keycloak根据典型的标头(例如X-Requested-With,SOAPAction或Accept)自动检测SOAP或REST客户端。 默认值为false。

enable-basic-auth

这告诉适配器也支持基本身份验证。 如果启用此选项,则还必须提供密码。 这是可选的。 默认值为false。

expose-token

如果为true,则经过身份验证的浏览器客户端(通过JavaScript HTTP调用)可以通过URL root / k_query_bearer_token获取签名的访问令牌。 这是可选的。 默认值为false。

credentials

指定应用程序的凭据。 这是一种对象表示法,其中密钥是凭证类型,而值是凭证类型的值。 当前支持密码和jwt。 只有具有“机密”访问类型的客户端才需要执行此操作。

connection-pool-size

此配置选项定义应与Keycloak服务器建立多少连接。 这是可选的。 预设值为20。