单点登录sso部署

news2024/9/26 20:35:26

文章目录

      • 同域下的单点登录原理
      • 不同域下的单点登录原理
    • 第三方 OAuth2 授权登录
      • 支持第三方登录
    • 本地用keycloak实现
      • 1、生成证书
      • 2、编写docker-compose.yml文件
      • 3、创建持久化数据目录
      • 4、接下来启动docker-compose
      • 5、访问keycloak

单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。

preview

如图所示,图中有4个系统,分别是Application1、Application2、Application3、和SSO。Application1、Application2、Application3没有登录模块,而SSO只有登录模块,没有其他的业务模块,当Application1、Application2、Application3需要登录时,将跳到SSO系统,SSO系统完成登录,其他的应用系统也就随之登录了。这完全符合我们对单点登录(SSO)的定义

同域下的单点登录原理

(原理略)

不同域下的单点登录原理

(原理略)

第三方 OAuth2 授权登录

第三方 OAuth2 授权登录,QQ、微信开放平台(Weixin)、微信公众平台(WeixinMP)、微博(Weibo)、淘宝(Taobao)、支付宝(Alipay)、钉钉(DingTalk)、飞书(Feishu)、码云(Gitee)、GitHub、微软(Microsoft )、StackOverflow、谷歌(Google)

支持第三方登录

三方参考文档应用申请(已登录)
QQ参考文档应用申请
微信参考文档应用申请
微信公众平台参考文档应用申请
微博参考文档应用申请
淘宝参考文档应用申请
支付宝参考文档应用申请
钉钉参考文档应用申请
飞书参考文档应用申请
码云参考文档应用申请
Gitlab参考文档应用申请
微软参考文档应用申请
GitHub参考文档应用申请
谷歌参考文档应用申请

参考链接:https://gitee.com/netnr/Netnr.Login

本地用keycloak实现

1、生成证书

#生成https证书,我用的IP,也可以换成域名
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt -subj "/CN=10.10.0.8"
#修改证书权限,不然容器读取证书会有报错,服务起不来
chmod 644 server.key server.crt

2、编写docker-compose.yml文件

services:
  # mysql容器
  mysql:
    container_name: mysql
    image: mysql:8.0.39
    command:
      - mysqld
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_bin
      - --log_timestamps=SYSTEM
      - --binlog_expire_logs_seconds=3600
      - --innodb_buffer_pool_size=2G
      - --max_connections=1000
      - --lower_case_table_names=1
    ports:
      - 3306:3306
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/keycloak/mysql/data:/var/lib/mysql
      - /data/keycloak/mysql/conf:/etc/mysql/conf.d:rw
      - /data/keycloak/mysql/logs:/var/log/mysql:rw
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: keycloak
      TZ: Asia/Shanghai									# 可选
  # keycloak容器
  keycloak:
    container_name: keycloak
    image: quay.io/keycloak/keycloak:25.0.6
    depends_on:
      - mysql
    environment:
      # 设置管理员账号密码
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
      # 数据库配置
      KC_DB: mysql
      KC_DB_USERNAME: root
      KC_DB_PASSWORD: 123456
      KC_DB_URL: jdbc:mysql://10.10.0.8:3306/keycloak			# 能连接到数据库的ip 例如公网ip
      quarkus.transaction-manager.enable-recovery: true	# 可选
    ports:
      - 8443:8443
    security_opt: 
      - seccomp:unconfined								# 可选
    volumes:
      - /data/keycloak/cert:/etc/x509/https
      # 下面3行卷映射为可选配置
      - /data/keycloak/conf/quarkus.properties:/opt/keycloak/conf/quarkus.properties
      - /data/keycloak/themes:/opt/keycloak/themes
      - /etc/localtime:/etc/localtime
    privileged: true									# 可选
    command: start --hostname=10.10.0.8 --https-certificate-file=/etc/x509/https/server.crt --https-certificate-key-file=/etc/x509/https/server.key

3、创建持久化数据目录

mkdir -p /data/keycloak/mysql/{data,logs,conf}
mkdir -p /data/keycloak/{cert,conf,themes}

将证书复制到挂载的证书目录

cp -pr server.key server.crt /data/keycloak/cert/

4、接下来启动docker-compose

# 首次启动先拉取镜像
docker compose -f docker-compose.yml pull

# 启动命令
docker compose -f docker-compose.yml up -d

# 关闭命令
docker compose -f docker-compose.yml down

# 查看日志
docker compose -f docker-compose.yml logs

5、访问keycloak

启动好后稍等片刻,可通过ip或域名访问。
在上面的配置中,使用的是ip地址,端口使用的是8443。
访问https://xxx.xxx.xxx.xxx:8443即可。
在这里插入图片描述
因为是自签名证书,提示不安全,忽略,点击继续访问。
在这里插入图片描述
访问成功,点击左侧的Administrator Console进行登录,输入刚才配置的账号和密码(admin)。
在这里插入图片描述
可以按图所示将界面改为中文。
在这里插入图片描述

到此,keycloak就安装成功了!🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宠物浮毛难清理,希喂、小米、美的宠物空气净化器该选哪款?

养猫养出病来说的就是我了。 养猫之前幻想的一人一猫幸福生活还没一个月,我就进了医院。我自认为是很爱干净的人,养猫后打扫得更勤快了,早晚都给猫咪梳毛。平时卫生也没少搞,家里也是很干净的,实在不明白为什么会过敏…

语义分割性能提升---通过优化损失改进分割效果

本文主要总结最近的调研调试结果,介绍通过改进损失来提升语义分割的分割效果;当然还有其他途径,比如蒸馏(提升分割效果)、剪枝(提升fps),之前博客有总结,此处不做介绍。 …

数字化AI直播系统领创者:赋能无人直播新动力,永久告别假AI!

数字化AI直播系统领创者:赋能无人直播新动力,永久告别假AI! 在数字化浪潮汹涌的今天,AI技术正以前所未有的速度渗透并重塑着各行各业,而直播行业作为数字经济的重要组成部分,更是迎来了AI技术深度融合的崭…

C++类和对象第一关

一:类的定义 (一)类的定义 (1)类的定义格式: class name{ // 类成员变量 // 类方法(函数) }; class是定义类的关键字,name为定义的类的名字,后面的花括号…

【高中数学/对数函数/零点】已知函数f(x)=1/x-log(2,x),在下列区间中,包含f(x)零点的区间是?

【题目】 已知函数f(x)1/x-log(2,x),在下列区间中,包含f(x)零点的区间是? A.(0,1) B.(2,3) C.(3,∞) D.(1,2) 【出处】 《高考数学极致解题大招》P136 第二题 中原教研工作室编著 【解答】 零点即01/x-log(2,x),移项得1/xlog(2,x) 两曲线y1/x…

【C++习题】2.双指针_移动零

文章目录 题目链接:题目描述:解法(快排的思想:数组划分区间 - 数组分两块):C 算法代码:图解 题目链接: 283.移动零 题目描述: 解法(快排的思想:数…

聚铭下一代智慧安全运营中心荣获CNNVD兼容性资质证书

近日,聚铭网络旗下安全产品——聚铭下一代智慧安全运营中心正式通过了国家信息安全漏洞库(CNNVD)兼容性认证测试,荣获国家信息安全漏洞库兼容性资质证书。 关于CNNVD兼容性 国家信息安全漏洞库(CNNVD)是…

Iceberg 基本操作和快速入门

安装 Iceberg 是一种适用于大型分析表的高性能工具,通过spark启动并运行iceberg,文章是通过docker来进行安装并测试的 新建一个docker-compose.yml文件 文件内容 version: "3" services: spark-iceberg: image: tabulario/spark-iceberg co…

干部画像如何精准科学识别优秀干部

干部画像作为一种精准、科学的评价工具,在识别优秀干部方面发挥着关键作用。通过全面、深入、系统地收集、整理和分析干部的多维度信息,形成一幅反映干部综合素质和能力的立体画卷,为组织部门提供了详实可靠的依据。以下是干部画像在精准、科…

Colorful/七彩虹将星X15 AT22 2022 Win11原厂OEM系统 带COLORFUL一键还原

安装完毕自带原厂驱动和预装软件以及一键恢复功能,自动重建COLORFUL RECOVERY功能,恢复到新机开箱状态。 【格式】:iso 【系统类型】:Windows11 原厂系统下载网址:http://www.bioxt.cn 注意:安装系统会…

Exception in thread “main“ java.lang.CloneNotSupportedException 解决方案

目录 前言: 解决方案 后言: 结言: 前言: 今天在学习设计模式的时候,犯的一个错误。很低级的错误,不过也记录一下(绝对不是想水文章)。 解决方案 在使用克隆方法时抛出这个异…

2024年第五届电力工程国际会议(ICPE 2024)将在上海召开!

为了总结交流我国电力研究技术的最新研究成果,促进国内外电力技术发展与交流,开拓电力技术应用领域,将于2024年12月13-15日在 中国上海举办第五届电力工程国际会议 (ICPE 2024) 。 本次会议由IEEE、PES、上海电力大学主办,电子科技…

猜想的反例:DFS中结点顺序与后代关系的分析

猜想的反例:DFS中结点顺序与后代关系的分析 猜想分析与反例构造反例描述伪代码与C代码实现反例验证在图论中,深度优先搜索(DFS)是一种重要的图遍历算法,它可以生成一棵深度优先森林(DFS Forest),揭示结点之间的祖先-后代关系。本文探讨一个特定猜想:如果有向图G包含一…

Linux服务器安装Anaconda环境

Linux浪潮云服务器安装Anaconda环境 读研之后在导师的帮助下,获得了浪潮的一台公共云服务器。以后做实验跑代码就可以使用云服务器上的虚拟环境了。减少了自己笔记本的压力。在创建并保存完成镜像环境之后。最重要的就是安装好深度学习需要的Anaconda环境&#xff0…

vue-i18n在使用$t时提示类型错误

1. 问题描述 Vue3项目中,使用vue-i18n,在模版中使用$t时,页面可以正常渲染,但是类型报错。 相关依赖版本如下: "dependencies": {"vue": "^3.4.29","vue-i18n": "^9.1…

MES管理系统的工单管理功能模块有什么用

在当今制造业的快速发展中,企业对于生产流程的高效管理与优化需求日益迫切。MES管理系统作为集成了生产计划、物料追踪、工艺执行、设备监控以及质量管理等核心功能的综合性软件平台,正逐步成为企业转型升级的关键驱动力。MES管理系统不仅通过实时数据洞…

鸿蒙界面开发——组件(9):进度条Progress 滑动条Slider

进度条 (Progress) Progress(options: {value: number, total?: number, type?: ProgressType})其中,value用于设置初始进度值,total用于设置进度总长度,type用于设置Progress样式。 Progress有5种可选类型,通过ProgressType可…

必应bing搜索广告如何开户?投放需要多少钱?

网络营销已成为企业增长不可或缺的一部分,为了帮助企业更高效地触达目标客户,云衔科技携手必应Bing搜索引擎,提供专业、便捷的广告开户与代运营服务。无论您是希望扩大品牌影响力,还是提升产品销量,选择云衔科技&#…

阻塞型IO与非阻塞型IO

阻塞IO与非阻塞IO 一.IO模型 IO的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的IO方式(模型),比较常见的有下列三种 阻塞型IO模型非阻塞型IO模型多路复用IO模型(重点!重点!重点!) 二…

KVM 安装 Windows11

在 KVM 安装 Windows 比安装 Ubuntu 会复杂一些,去微软官网下载 Win11,同时要下载 Virtio 可以从 Fedora 下载 (https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)。 安装Window 命令行输入以下命令&#xf…