Keycloak是一個(gè)開(kāi)源的Identity 和 Access Management工具,主要特性:
使用Keycloak實(shí)現(xiàn)單點(diǎn)登錄,這意味著你不必要為每個(gè)應(yīng)用都單獨(dú)開(kāi)發(fā)一套登錄表單、驗(yàn)證用戶和存儲(chǔ)用戶信息等相關(guān)功能。
Keycloak 可以代理登錄目前主流的網(wǎng)絡(luò)服務(wù)賬號(hào),比如谷歌、GitHub、FaceBook等。
Keycloak 已經(jīng)內(nèi)建支持已有 LDAP 或者 Active Directory 服務(wù)。
通過(guò)管理控制臺(tái),可以集中對(duì)服務(wù),賬號(hào)、權(quán)限、會(huì)話等功能進(jìn)行管理。
支持 OpenID Connect、 OAuth 2.0、SAML等標(biāo)準(zhǔn)協(xié)議
更多技術(shù)細(xì)節(jié)請(qǐng)參考 Keycloak 官方文檔。
環(huán)境準(zhǔn)備本文參考官方文檔 Get started with Keycloak on bare metal 的部署方式進(jìn)行部署
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ù)庫(kù)使用mysql(mysql安裝、數(shù)據(jù)庫(kù)創(chuàng)建、賬號(hào)分配相信大家也都能搞得)
主機(jī) | 服務(wù) |
---|---|
10.0.2.10/node01.example.io | Nginx(反向代理) |
10.0.2.11/node02.example.io | keycloak |
10.0.2.12/node03.example.io | keycloak |
keycloak生產(chǎn)環(huán)境默認(rè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 請(qǐng)求配置文件 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、基于上面的配置文件生成證書簽名請(qǐng)求
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,兩個(gè)節(jié)點(diǎn)上配置相同
1、關(guān)閉防火墻、啟用時(shí)間同步服務(wù)(此處以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 復(fù)制到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、啟動(dòng)keycloak
# 首次啟動(dòng)需要設(shè)置管理員賬號(hào)密碼(只有首次啟動(dòng)需要),只需在node02.example.io或node03.example.io一臺(tái)機(jī)器上添加即可
export KEYCLOAK_ADMIN=admin
export KEYCLOAK_ADMIN_PASSWORD=CondingDemo
# 啟動(dòng)
bin/kc.sh start
配置代理本文選用 CentOS 7 部署 nginx 作為反向代理服務(wù),上文 keycloak 配置的代理模式為 passthrough,所以這里使用 nginx 的stream模塊進(jìn)行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
客戶端訪問(wèn)配置DNS或者修改本地的 hosts 文件,添加10.0.2.10 keycloak.example.io
地址映射
瀏覽器訪問(wèn) https://keycloak.example.io 即可登錄管理控制臺(tái)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁(yè)題目:Keycloak高可用部署實(shí)戰(zhàn)-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article6/psgig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、云服務(wù)器、外貿(mào)建站、ChatGPT、虛擬主機(jī)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容