KeycloakとOpenLDAPを連携する.
はじめに
KeycloakとOpenLDAPを連携し,Keycloak側でもOpenLDAP側に登録しているデータを閲覧できるようにする方法を説明します.
前提
- OS:Ubuntu
- Keycloak:25.04
- OpenLDAPにいくつかデータを登録済み
手順
1. realm(レルム)を新たに作成
- 適当に名前を決めます.
- 以後,新たに作成したこのrealm内でLDAPの連携を行います.

2. Configure(設定)のUser federation(ユーザー・フェデレーション)に,ldap設定を追加する.
2.1 User federation → Add Ldap providersをクリック


2.2 LDAPの設定を行う
2.2.1 General options(LDAP一般設定)
| 主な変数 | 詳細 |
|---|---|
| UI display name | 適当に決めます. |
| Vendor |
Otherにします. |
2.2.2 Connection and authentication settings(LDAPとの接続設定)
| 主な変数 | 詳細 |
|---|---|
| Connection URL(接続URL) | 接続するLDAPサーバのURL(例:ldap://~) |
| Bind type(バインドタイプ) |
simpleにします |
| Bind DN(バインドDN) | LDAP管理者のDN(cn=admin, dc=~, dc=~) |
| Bind credentials | LDAP管理者のパスワード |
※接続テストと認証テストは行うことを推奨します.

2.2.3 LDAP searching and updating(LDAP検索と編集の設定)
| 主な変数 | 詳細 |
|---|---|
| Edit mode(編集モード) | keycloakからLDAPデータを編集させるかどうかの設定 |
| Users DN(ユーザーDN) | 検索したいユーザが存在するLDAPツリーのDN |
| Username LDAP attribute(ユーザー名のLDAP属性) | keycloak側のユーザ名としてマッピングされるLDAP属性(例:uid) |
| RDN LDAP attribute(RDN LDAP属性) | RDNに使用するLDAP属性(例:uid) |
| UUID LDAP attribute(UUID LDAP属性) | LDAPのオブジェクトのUUIDとして使用される属性(例:uid) |
| User object classes(ユーザー・オブジェクト・クラス | ユーザの方で適用されているLDAPのオブジェクトクラスを列挙していきます. |
| Search scope(検索スコープ) | subtreeと設定すると,Users DN(ユーザーDN)の方で設定したDN配下全てを検索できる. |

2.2.3 Synchronization settings(同期設定)
| 主な変数 | 詳細 |
|---|---|
| Import users(ユーザーのインポート) |
onにします |
| Sync Registrations |
Onにします |
| Periodic full sync(定期的なフル同期) |
Onにします |
| Full sync period(フル同期の周期) | 単位は,秒(second) |
| Periodic changed users sync(定期的な変更ユーザーの同期) |
Onにします |
| Changed users sync period(変更ユーザーの同期周期) | 単位は,秒(second) |

3. LDAPユーザー確認
-
Manage(管理)→Users(ユーザー)に移ります. - 検索欄に
アスタリスク(*)を打てば,全てのユーザデータを検索・表示できます.
検索画面

ユーザーの詳細画面の例

4. ※LDAPに登録しておいたユーザー属性値をKeycloak側でも表示するようにしたい場合
- 下記のようにユーザー詳細画面に,LDAP側で登録しておいた属性値を表示する方法を説明します.

-
User federation(ユーザー・フェデレーション)画面に移動し,対象のフェーデレーションを選択します. -
その後,
Mappers(マッパー)を選択します.

-
Add mapperをクリックすると,下記のような画面が表示されます.

主な変数に関しては,下記のように設定しました.
-
Name(クライアント・スコープの名前):Mapperの名前.追加するLDAPの属性名と同じにします. -
Mapper type(マッパータイプ):user-attribute-ldap-mapperを選択します. -
User Model Attribute(Keycloak側のユーザーで表示される属性名):追加するLDAPの属性名と同じにします.(※ LDAPにおけるuid属性をKeycloak側,つまりUser Model AttributeではemployeeIDとして表現・表示することができたりします) -
LDAP Attribute:追加したいLDAP属性を設定します. -
それ以外の変数(
Read Only,Always Read Value From LDAP,Is Mandatory In LDAPに関しては,状況に合わせて設定してください) -
私のほうでは,下記のように設定しました.
-
Read Only:On -
Always Read Value From LDAP:On -
Is Mandatory In LDAP:Off -
Attribute default value:空白 -
Force a Default Value:On -
Is Binary Attribute:基本,Off.Keycloakのユーザにバイナリーデータを追加する場合は,On
Discussion