Keycloak安装使用

1 安装Docker

1.1 下载镜像

GitHub官网github.com/keycloak/ke...

官方文档www.keycloak.org/documentati...

中文文档:keycloak.com.cn/docs/latest...

1.2 编辑docker-compose.yml

加入下面配置:

bash 复制代码
version: "3"                                                                                                                                                                                    
services:
  keycloak:                                                                                                                                                                                     
    image: quay.io/keycloak/keycloak:latest                                                                                                                                                     
    container_name: keycloak                                                                                                                                                                    
    ports:                                                                                                                                                                                      
      - "9100:8080"                                                                                                                                                                             
    environment:                                                                                                                                                                                
      - KC_BOOTSTRAP_ADMIN_USERNAME=username
      - KC_BOOTSTRAP_ADMIN_PASSWORD=password                                                                                                                                                   
      - KC_DB=postgres                                                                                                                                                                          
      - KC_DB_URL=jdbc:postgresql://10.10.89.229:5432/keycloak                                                                                                                                  
      - KC_DB_USERNAME=db_username
      - KC_DB_PASSWORD=db_password                                                                                                                                                                 
      - http_proxy="http://username:password@proxy.neusoft.com:8080"                                                                                                                    
      - https_proxy="http://username:password@proxy.neusoft.com:8080"                                                                                                                   
      - KC_EMAIL_HOST=smtp.neusoft.com                                                                                                                                                          
      - KC_EMAIL_PORT=587                                                                                                                                                                       
      - KC_EMAIL_FROM="nais_integration@neusoft.com"                                                                                                                                            
      - KC_EMAIL_USER="email_username"                                                                                                                                            
      - KC_EMAIL_PASSWORD="email_password"                                                                                                                                                            
      - KC_EMAIL_SSL=false                                                                                                                                                                      
      - KC_EMAIL_STARTTLS=true                                                                                                                                                                  
      - KC_POP_HOST=mail.neusoft.com                                                                                                                                                            
      - KC_POP_PORT=995                                                                                                                                                                         
    command: start-dev 

参数说明

  • KC_BOOTSTRAP_ADMIN_USERNAME:初始化Admin用户名

  • KC_BOOTSTRAP_ADMIN_PASSWORD:初始化Admin密码

  • KC_DB: 使用后台数据库配型

  • KC_DB_URL:jdbc链接路径,keycloak是db_name

  • KC_DB_USERNAME: 数据库用户名

  • KC_DB_PASSWORD:数据库密码

  • http_proxy,https_proxy: 设置代理

  • start-dev: 启动命令

2 使用

2.1 修改登录密码

进入系统后点击 User -> username

一定注意这个选项,要变成OFF,否则会是临时密码,下次登录就必须要修改。

2.2 修改系统为不同语言

Realms是Keycloak的域,可以创建多个,进行隔离注册。登录后默认是master,可以根据项目创建不同的域,比如minio,pp等

而每个realm都可以设置自己的系统语言,所以当前的配置是针对master的realm进行的修改

可以选多个,一定记得报错

登录之后又多语言选择:

2.3 创建服务用client

2.3.1 创建域

2.3.2 创建用户

  1. 创建用户

  • 设置登录密码

一定要关闭成OFF

2.3.3 设置域配置

  1. 设置登录页面功能

登录查看:http://10.10.89.228:9100/realms/minio/protocol/openid-connect/auth

  • 事件设置

事件设置就是记录当前域所有的时间信息

  • 本地话设置(语言设置)

2.3.4 创建客户端

客户端可以用来完成不同功能,设置不同的客户端权限达到不同的鉴权功能

  1. 创建ID

其中最重要额是ID,不能用中文

  • 创建认证方式
  • 设置URL路径

2.3.4 创建Role角色

因为登录是需要policy的角色,需要创建

2.4 创建client scope

2.4.1 创建client scope, 名称为policy

2.4.2 为scope赋权

选中刚才创建的scope,进行

2.4.3 增加新mapper

选择UserClientRole

2.5 为client添加scope

点击clients -> minio -> client scopes -> add client scope 添加上一步建好的client

2.6 创建新的用户组

2.6.1 创建新用户组 2.6.2 添加用户到组 2.6.3 为组分配角色

3 配置Minio

3.1 创建Minio中对应的policy权限

admin权限:

json 复制代码
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": ["s3:*"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*", "arn:aws:s3:::*/*"]
        }
    ]
}

readonly权限

json 复制代码
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*"]
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*/*"]
        }
    ]
}

readwrite权限

json 复制代码
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*"]
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging",
                "s3:PutObjectTagging",
                "s3:DeleteObjectVersion"
            ],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*/*"]
        }
    ]
}

3.2 设置Minio的Openid

各部分参数说明

  • Claim Name: 可写

  • Scopes: openid,email,profile,policy 。其中policy必须有

  • Claim User Info:Enabled

3.3 登录验证

3.3.1 登录Minio 跳转到KeyCloak中 登录之后跳转到当前用户

4 配置公司LDPA

4.1 选好域选择User federation

4.2 填写配置信息

根据实际情况填写的部分,可能需要访问数据进行判断

通过下面的命令去访问主机查看返回值进行判断

bash 复制代码
# 安装具体工具
sudo apt install ldap-utils
# 发送请求查看返回值
ldapsearch -x -H ldap://10.10.88.63:389 -D "cn=nais_integration,ou=people,dc=neusoft,dc=internal" -w '密码' -b "CN=东软全体员工,OU=people,DC=neusoft,DC=internal"

4.3 同步用户到keycloak

保存之后去执行

相关推荐
冬奇Lab4 小时前
一天一个开源项目(第43篇):Star-Office-UI - 像素风格的 AI 办公室看板,让 AI 助手的工作状态可视化
人工智能·开源·资讯
冬奇Lab19 小时前
OpenClaw 深度解析(五):模型与提供商系统
人工智能·开源·源码阅读
冬奇Lab19 小时前
一天一个开源项目(第42篇):OpenFang - 用 Rust 构建的 Agent 操作系统,16 层安全与 7 个自主 Hands
人工智能·rust·开源
IvorySQL1 天前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
IvorySQL1 天前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
冬奇Lab2 天前
OpenClaw 深度解析(四):插件 SDK 与扩展开发机制
人工智能·开源·源码阅读
冬奇Lab2 天前
一天一个开源项目(第41篇):Workout.cool - 现代化开源健身教练平台,训练计划与进度追踪
docker·开源·资讯
南果梨2 天前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
IvorySQL2 天前
PostgreSQL 技术日报 (3月4日)|硬核干货 + 内核暗流一网打尽
数据库·postgresql·开源
碳基沙盒2 天前
当赛博皇上给Ai设立三省六部
开源