KeycloakでLDAP認証する

Kazuki Koide

January 18, 2021

KeycloakでLDAP認証をしてみたときのメモ。

環境

OpenLDAPとphpLDAPadminを起動

以下のコンテナイメージを使用した。

Kubernetesマニフェストは以下。

apiVersion: v1
kind: Namespace
metadata:
  name: ldap
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: openldap
  name: openldap
  namespace: ldap
spec:
  ports:
  - name: ldap1
    port: 389
  - name: ldap2
    port: 636
  selector:
    app: openldap
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: phpldapadmin
  name: phpldapadmin
  namespace: ldap
spec:
  ports:
  - name: https
    port: 443
  selector:
    app: phpldapadmin
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: openldap
  name: openldap
  namespace: ldap
spec:
  replicas: 1
  selector:
    matchLabels:
      app: openldap
  template:
    metadata:
      labels:
        app: openldap
    spec:
      containers:
      - image: osixia/openldap:1.4.0
        name: openldap
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: phpldapadmin
  name: phpldapadmin
  namespace: ldap
spec:
  replicas: 1
  selector:
    matchLabels:
      app: phpldapadmin
  template:
    metadata:
      labels:
        app: phpldapadmin
    spec:
      containers:
      - env:
        - name: PHPLDAPADMIN_LDAP_HOSTS
          value: openldap.ldap.svc.cluster.local
        image: osixia/phpldapadmin:0.9.0
        name: phpldapadmin

ユーザー登録

登録例

KeycloakでのFederation設定

設定例 Federation

動作確認

後片付け

$ kubectl delete ns ldap