2022年11月30日 星期三

設定 Keycloak 連結 PostgreSQL Server

學習目標:
  • 設定 KeyCloak 的資料,存放於 PostgreSQL 上!
  • 需要先架設好 Keycloak 服務,可參考這一篇
安裝設定流程:
  1. 請參考前一篇的安裝設定
  2. 在第四個步驟,啟動 keycloak 之前,編輯設定檔內容:
    # vim /opt/keycloak-20.0.1/conf/keycloak.conf
    db=postgres
    db-username=keycloak
    db-password=XXXXXXXXXX
    db-url=jdbc:postgresql://127.0.0.1/keycloak
    (只修改需要的!修改好之後,存檔離開。)
    
  3. 登入 PostgreSQL Server ,建立新的使用者與資料庫。
    # psql -h 127.0.0.1 -U postgres -d postgres
    Password for user postgres: 
    postgres=# CREATE USER keycloak WITH PASSWORD 'XXXXXXXXXX';
    postgres=# CREATE DATABASE keycloak;
    postgres=# GRANT ALL PRIVILEGES ON DATABASE keycloak TO keycloak;
    postgres=# \connect keycloak;
    keycloak=# ALTER SCHEMA public OWNER TO keycloak;
    keycloak=# \q
    
  4. 設定完成後,即可啟動 Keycloak 服務。接下來的步驟,請參考前一篇內容

2022年11月19日 星期六

在 CentOS/RHEL 上架設 KeyCloak Server

學習目標:
  • 在 CentOS/RHEL 作業系統上,安裝 KeyCloak 服務!
  • 需要先架設好 CentOS/RHEL 作業系統
安裝設定流程:
  1. 安裝相關必要軟體安裝工作!
    # yum -y epel-release
    # yum -y upgrade
    # reboot
    
  2. 安裝 OpenJDK 套件:
    # yum -y install java-17-openjdk-*
    
  3. 取得 KeyCloak 套件軟體!
    # cd /opt
    # wget https://github.com/keycloak/keycloak/releases/download/20.0.1/keycloak-20.0.1.zip
    
  4. 進行安裝與設定 KeyCloak Server 工作!
    # unzip keycloak-20.0.1.zip
    # cd keycloak-20.0.1/
    # export KEYCLOAK_ADMIN="admin" (管理者帳號,可以自訂)
    # export KEYCLOAK_ADMIN_PASSWORD="a123456" (管理者密碼,可以自訂)
    # bin/kc.sh start-dev &
    
  5. 開啟瀏覽器,輸入 http://localhost:8080

  6. 點選網頁中的「Administration Console」出現下列的登入畫面,輸入上兩個步驟所自訂的管理者帳號密碼:

  7. 登入後的畫面如下所示:

  8. 設定防火牆
    # firewall-cmd --add-port=8080/tcp --permanent
    # firewall-cmd --reload
    
  9. 設定服務啟動檔:
    # cd /etc/systemd/system
    # vim keycloak.service
    [Unit]
    Description=KeyCloak Service
    After=multi-user.target
    
    [Service]
    ExecStart=/usr/bin/bash /opt/keycloak-20.0.1/bin/kc.sh start-dev
    Type=simple
    
    [Install]
    WantedBy=multi-user.target
    (存檔後離開)
    
  10. 測試是否可以正常啟動
    # kill %1
    # systemctl daemon-reload
    # systemctl start keycloak.service
    # systemctl status keycloak.service -l
    # systemctl enable keycloak.service
    
  11. 重新登入 http://localhost:8080 查看是否可以登入

使用 Keycloak 官方測試程式進行測試:
  1. 以管理者帳號登入 Keycloak 系統
  2. 在最左方下拉選單中,按下「Create Realm」按鈕

  3. 在 Realm name 櫚位內,輸入想要的名稱。確認 Enabled 欄位是 On 的狀態後,按下「Create」按鈕即可。

  4. 在已新增的 Realm 內,選擇「Users」項目。在右邊畫面中,按下「Create new user」按鈕。

  5. 在 Username 欄位內,輸入新增的使用者帳號,以及相關的訊息。最後再按下「Create」按鈕。

  6. 選擇 Credentials 標籤,選下「Set password」按鈕

  7. 連續輸入兩次密碼之後,Temporary 選擇「Off」,再按下「Save」按鈕之後,再於確認視窗內,按下「Save password」。

  8. 在左方選單中,選擇 Clients 選項,再按下右方「Create client」按鈕

  9. 在 Client type 欄位中,選擇「OpenID Connect」,在 Client ID 中,輸入想要的名稱,再按下「Next」按鈕。

  10. 接下來的畫面中,在 Authentication flow 欄位內,勾選 Standard flow 選目,然後按下「Save」按鈕。

  11. 接下來的畫面中,選擇右邊 Access settings 選項,再輸入 Valid redirect URIs 以及下方的 Web origins,最後按下「Save」按鈕。

    Valid redirect URIs: https://www.keycloak.org/app/*
    Web origins: https://www.keycloak.org
    
  12. 在溜覽器上開新的分頁,網址輸入:https://www.keycloak.org/app/,進入測試頁面。
  13. 在 Keycloak 的測試頁面中,輸入相關的訊息,再按下「Save」按鈕。

  14. 接下來的畫面,按下「Sing in」按鈕。

  15. 畫面將轉回本地端的 Keycloak 登入畫面,輸入剛才新增的使用者帳密後,再按下「Sign In」按鈕。

  16. 畫面將轉到 Keycloak 官方測試站台,如下圖,表示自架的 Keycloak Server 有成功運作。



參考文獻:
  • https://www.keycloak.org/getting-started/getting-started-zip
  • https://linuxhandbook.com/create-systemd-services/