前回、Synology NASにMinioをインストールしましたが、今回はKeycloakをDockerを使ってインストールします。
MinioにDockerをインストールする方法は前回の記事を参照してください。
Keycloakの永続化にはデータベース(MySQLまたはPostgreSQL)が必要です。MinioでMySQLのDockerコンテナを起動すると、 Volume Mountでなぜか権限エラーになったので、特に問題の起きなかったPostgreSQLを使いました。
以下、作業メモです。
DB用Shared Folderの作成
まずはPostgreSQLコンテナにマウントするためのShared Folderを作成。
"Control Panel" => "Shared Folder"でCreateボタンをクリック。
"Name"はkeycloak-db
にし、ゴミ箱は不要なので"Enable Recycle Bin"のチェックを外しておく。
OKボタンをクリックして作成。"Permission"もデフォルトでOK。
PostgreSQLのデータフォルダには空フォルダを設定する必要があるため、data
フォルダを作成作成。
"File Station" => "keycloak-db"を選択 => "Create" => "Create folder"でdata
を入力してフォルダ作成。
PostgreSQLのインストール
次にPostgreSQLのインストール。
"Main Menu"から"Docker"を開き、"Registry"タブをクリックし、"Insert keywords"にpostgres
を入力し、postgres
を選択。。
"Download"をクリック。Tagは9.6
を使用。
"Image"タブをクリックし、postgres:9.6
を選択。
"Launch"ボタンをクリック。"Container Name"にkeycloak-db
を入力。
"Advanced Settings"ボタンをクリック。"Enable auto-restart"にチェックを入れる。
"Volume"タブをクリックし、"Add Folder"ボタンをクリック。
keycloak-db/data
を/var/lib/postgresql/data
にマウントする。
"Environment"タブをクリックし、"Command"に環境変数に次の内容を設定。
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
"Apply"ボタンをクリックして"Advanced Settings"ウィンドウを閉じる。
"Next"ボタンクリック => "Apply"ボタンクリックでPostgreSQLを起動する
"Container"タブをクリックし、keycloak-db
コンテナが"Running"になっていればOK。
Keycloakのインストール
最後にKeycloakのインストール。
"Registry"タブをクリックし、"Insert keywords"にminioを入力し、jboss/keycloak
を選択。
"Download"をクリック。Tagは3.4.3.Final
を使用。
"Image"タブをクリックし、jboss/keycloak:3.4.3.Final
を選択。
"Launch"ボタンをクリック。"Container Name"にkeycloak
を入力。
"Advanced Settings"ボタンをクリック。"Enable auto-restart"にチェックを入れる。
"Port Settings"タブをクリックし、"Local Port"に8080
を入力。
"Links"タブをクリックし、"Container Name"にkeycloak-db
を選択し、"Alias"にpostgres
を入力する。
"Environment"タブをクリックし、"Command"に環境変数に次の内容を設定。
POSTGRES_DATABASE: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
HTTPS対応するために、フロントにHA Proxyやnginxを置く場合は環境変数
PROXY_ADDRESS_FORWARDING
をtrue
にする必要あり。デフォルトではfalse
が設定されている。
"Apply"ボタンをクリックして"Advanced Settings"ウィンドウを閉じる。
"Next"ボタンクリック => "Apply"ボタンクリックでKeycloakを起動する
"Container"タブをクリックし、keycloak
コンテナが"Running"になっていればOK。
keycloak
コンテナをクリックし、"Details"ボタンをクリックし、"Log"タブを開いて、Keycloak ... started ...
というログが出ていることを確認しておくとベター。
動作確認
http://<Synology NASのIP>:8080
にアクセスすると、UIが表示される。
SynologyのLDAPサーバーとUser Federationすれば、SynologyだけでLDAP, OAuth2, OpenID Connect, SAMLで対応できそうなので、SynologyがSSO中央集権サーバーとして役に立ちそうです。
Synology DiskStation大変良いです。