Keycloak高可用部署實戰(zhàn)-創(chuàng)新互聯(lián)

Keycloak 簡介

Keycloak是一個開源的Identity 和 Access Management工具,主要特性:

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比吉利網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式吉利網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋吉利地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
  • 單點登錄

使用Keycloak實現(xiàn)單點登錄,這意味著你不必要為每個應用都單獨開發(fā)一套登錄表單、驗證用戶和存儲用戶信息等相關功能。

  • 身份代理和社交登錄

Keycloak 可以代理登錄目前主流的網(wǎng)絡服務賬號,比如谷歌、GitHub、FaceBook等。

  • 用戶聯(lián)邦

Keycloak 已經(jīng)內(nèi)建支持已有 LDAP 或者 Active Directory 服務。

  • 管理控制臺

通過管理控制臺,可以集中對服務,賬號、權限、會話等功能進行管理。

  • 支持標準協(xié)議

支持 OpenID Connect、 OAuth 2.0、SAML等標準協(xié)議

更多技術細節(jié)請參考 Keycloak 官方文檔。

環(huán)境準備

本文參考官方文檔 Get started with Keycloak on bare metal 的部署方式進行部署

https://jdk.java.net/java-se-ri/11 下載OpenJDK11

https://github.com/keycloak/keycloak/releases/download/20.0.3/keycloak-20.0.3.zip 下載最新版 Keycloak

這里我采用 nginx 做反向代理(代理模式 passthrough),nginx的高可用在這里就不在演示。

數(shù)據(jù)庫使用mysql(mysql安裝、數(shù)據(jù)庫創(chuàng)建、賬號分配相信大家也都能搞得)

主機服務
10.0.2.10/node01.example.ioNginx(反向代理)
10.0.2.11/node02.example.iokeycloak
10.0.2.12/node03.example.iokeycloak
生成證書

keycloak生產(chǎn)環(huán)境默認使用tls加密通信,這里就使用自簽證書

1、自簽CA

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.io" -days 3650 -out ca.crt

2、編輯 CSR 請求配置文件 csr.conf

[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C = CN
L = BeiJing
OU = CondingDemo
CN = KeyCloak

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = keycloak.example.io
DNS.2 = node02.example.io
DNS.3 = node03.example.io
IP.1 = 10.0.2.11
IP.2 = 10.0.2.12

[ v3_ext ]
authorityKeyIdentifier=keyid,issuer:always
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=serverAuth,clientAuth
subjectAltName=@alt_names

3、基于上面的配置文件生成證書簽名請求

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -config csr.conf

4、基于自簽CA簽發(fā)證書

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \
    -CAcreateserial -out server.crt -days 3650 \
    -extensions v3_ext -extfile csr.conf -sha256
部署KeyCloak

在 node02.example.io和node03.example.io 上部署 keycloak,兩個節(jié)點上配置相同

1、關閉防火墻、啟用時間同步服務(此處以CentOS7為例)

systemctl stop firewalld.service
systemctl disable firewalld.service

systemctl enable chronyd.service
systemctl start chronyd.service

2、安裝OpenJDK

tar -xzf openjdk-11+28_linux-x64_bin.tar.gz -C /opt/
# 配置環(huán)境變量
# vi /etc/profile.d/jdk.sh 
export JAVA_HOME=/opt/jdk-11
export PATH=$PATH:$JAVA_HOME/bin

3、安裝keycloak

unzip keycloak-20.0.2.zip
cd keycloak-20.0.2

# 創(chuàng)建tls目錄,并將生成證書文件 server.crt、server.key 復制到tls目錄下
mkdir tls

4、修改配置文件

# vi conf/keycloak.conf
db=mysql
db-username=keycloak
db-password=CondingDemo
db-url=jdbc:mysql://192.168.21.138:3306/keycloak?characterEncoding=UTF-8
health-enabled=true
metrics-enabled=true
https-certificate-file=${kc.home.dir}/tls/server.crt
https-certificate-key-file=${kc.home.dir}/tls/server.key
proxy=passthrough
hostname-url=https://keycloak.example.io
hostname-admin-url=https://keycloak.example.io
https-protocols=TLSv1.2
log=file

5、啟動keycloak

# 首次啟動需要設置管理員賬號密碼(只有首次啟動需要),只需在node02.example.io或node03.example.io一臺機器上添加即可
export KEYCLOAK_ADMIN=admin
export KEYCLOAK_ADMIN_PASSWORD=CondingDemo

# 啟動
bin/kc.sh start
配置代理

本文選用 CentOS 7 部署 nginx 作為反向代理服務,上文 keycloak 配置的代理模式為 passthrough,所以這里使用 nginx 的stream模塊進行tcp代理

yum -y install epel-release
yum -y install nginx nginx-all-modules.noarch

vi /etc/nginx/nginx.conf
......
stream {
    upstream keycloak {
        server 10.0.2.11:8443;
        server 10.0.2.12:8443;
    }
    server {
        listen 443;
        proxy_pass keycloak;
    }
}
......

systemctl enable nginx.service
systemctl start nginx.service
客戶端訪問

配置DNS或者修改本地的 hosts 文件,添加10.0.2.10 keycloak.example.io地址映射

瀏覽器訪問 https://keycloak.example.io 即可登錄管理控制臺

在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁題目:Keycloak高可用部署實戰(zhàn)-創(chuàng)新互聯(lián)
分享地址:http://muchs.cn/article6/psgig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、云服務器、外貿(mào)建站、ChatGPT、虛擬主機、品牌網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)