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

保存之后去执行

相关推荐
冬奇Lab8 小时前
一天一个开源项目(第73篇):Multica - 把 AI 编程智能体变成真正的团队成员
人工智能·开源·资讯
提子拌饭13311 小时前
生命组学架构下的细胞分化与基因突变生存模拟器:基于鸿蒙Flutter的情景树渲染与状态溢出防御
flutter·华为·架构·开源·harmonyos
m0_6948455712 小时前
CRUD (Nestjsx)部署教程:自动生成RESTful接口
服务器·人工智能·后端·开源·自动化·restful
a11177613 小时前
汽车展厅项目 开源项目 ThreeJS
前端·开源·html
亥时科技15 小时前
AI+ 无人机一体化平台:架构设计与竞品分析
人工智能·开源·无人机·低空经济·ai巡检
uzong17 小时前
107K Star:火爆的MarkItDown--一款用于将文件和办公文档转换为 Markdown 的 Python 工具
人工智能·后端·开源
智碳未来科技有限公司18 小时前
开源赋能双碳|智碳能源管理系统:全栈开源工业级 EMS,打破能源管控技术壁垒,助力千行百业零碳转型
开源·能源管理系统·能源管理·能碳管理系统·绿色工厂申报·能碳管理·绿色工厂认证
IT观测18 小时前
全国一体成型电感供应商推荐:深圳陆海高分子,覆盖AI服务器、汽车电子的国产方案
开源
悟空码字19 小时前
多租户CRM系统开源了,支持公海、线索、客户、订单管理等核心功能(附源码)
开源·crm