やることリスト
- Hyper-Vにdebianを入れる
- CentOS7にKeycloakを入れる
- KeycloakとADを紐付ける
- GoogleWorkspaceと紐付ける
参考文献
1.Hyper-Vにdebianを入れる
サーバーマネージャーのツールからHyper-Vマネージャーを開く
※なければ 管理 → 役割と機能の追加 → 役割の選択でHyper-Vを選択して進めればOK(再起動必須)
ISOは
からダウンロードしておく。サーバが物理DISK読み込めるならそれでも大丈夫っぽい
自分はNetInstallをダウンロードしてきた。
とりあえず順番に進めていけばOK
debianのインストール手順
Graphical installを選択して順番に進めていく
ネットの接続設定
DNSでADの名前解決ができるように上位のADのDNSを設定しておくと吉
ソフトウェアの選択は特にチェックなくてもOK
※GUIが欲しければチェック入れておく
インストール中にrootと初期Userの設定をしておく。
終わったら再起動かけてrootでも初期ユーザーでrootに上がってもいいので管理者権限にする
2.debianにKeycloakを入れる
とりあえずパッケージの更新と必要な物を引っ張ってくる。
# apt update && apt upgrade -y
# apt install -y wget vim openjdk-17-jdk
終わったら一旦再起動。
最新版は
こっからダウンロードできるのでtar.gzをダウンロードする。
※起動するシステムがローカルからブラウザでアクセス出来ない場合環境変数に下二行を入れる必要あり。
# wget https://github.com/keycloak/keycloak/releases/download/24.0.3/keycloak-24.0.3.tar.gz
# tar zxvf keycloak-24.0.3.tar.gz
# export KEYCLOAK_ADMIN= <username>
# export KEYCLOAK_ADMIN_PASSWORD= <password>
展開し終わったらディレクトリに行って実行する。
# cd keycloak-24.0.3.tar.gz
# bin/kc.sh start-dev
Updating the ~~
が出てしばらくしたら色々出てくるからブラウザからサーバーのIPの8080にアクセスする。
環境変数で指定したパスワードとユーザー名を入れるとログインできる
右上のKeycloakからCreate realmで適当にrealmの名前を付けてcreateする。
日本語化はRealm settingsのLocallzationからjapaneseで設定できる。
3. KeycloakとADを紐付ける
User federationからAdd LDAP providerで設定する。
UI名は適当に。
Connection URLは ldap://<ADのIP>
Bind DNは cn=Administrator,cn=Users,dc=ドメインの一番上(exampleとか),dc=ドメインの一番上(comとか)
必要であればdcを足していけばOK
あとはUserDNだけ変えて完成
ログインチェック
http://<KeycloakのIP>:8080/realms/<realmの名前>/ldap/account/
にアクセスしてADのユーザーでログイン出来たらOK
4. GoogleWorkspaceと紐付ける
Adminのアカウントから入り設定したRealmのClientに行きCreate Clientから設定する。
NextからValid redirect URIsにhttps://www.google.com/*を設定してSave
Keysタブに移動してClient signature required を外してSave
左のメニューからRealms settingsを選択してKeyタブのRS256のCertificateをコピーする。
適当にNotePadとかを開き、
-----BEGIN CERTIFICATION-----
MIICmz................................................................
-----END CERTIFICATION-----
Google側の設定
を開き
左のメニュータブからすべてを表示にし、セキュリティ、認証、サードパーティの IdP による SSOを開く
SSOプロファイルの追加から設定する。
サードパーティの ID プロバイダで SSO を設定するにチェックを入れ、
ログインページのURLには
http://<KeycloakのIP>:8080/realms/<realm名>/protocol/saml
ログアウトページのURLには
http://<KeycloakのIP>:8080/realms/<realm名>/protocol/openid-connect/logout
を入力し、先ほどのpemファイルをアップロードして
ドメイン固有の発行元を使用のチェックを外す。
パスワード変更用のURLには
http://<KeycloakのIP>:8080/realms/<realm名>/account
を入力して保存。
Workspace上に別のアカウントを作って、ADにアカウント追加して、Usersから同じメアドを設定しておく。
TESTしてみる。
新しいプライベートウィンドウで
を開く。作ったアカウントでログインしてKeycloakに飛ばされれば成功。
お疲れさまでした。
はじめてQiita書いたので不十分な点も多かったと思いますが参考になったら幸いです。
参考にさせていただいたサイトではCentOSを使ってましたが、個人的にdebianが好きなのでdebianで構築しました。
改めて参考にさせていただいたサイトの作成者様ありがとうございます。
それではよいSSOライフを!