やりたいこと
OpenLDAPでユーザが最後にbindした時間を記録したい!
環境
OpenLDAP 2.4
slapd -V
@(#) $OpenLDAP: slapd (Ubuntu) (Nov 16 2020 13:41:27) $
buildd@lgw01-amd64-021:/build/openldap-tdJ5yB/openldap-2.4.42+dfsg/debian/build/servers/slapd
手順
1. モジュールの読み込み
lastbindモジュールを読み込む
下記のようなコンフィグ用ldifを作成
load_lasbind.ldif
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleload
olcModuleLoad: lastbind.la
ldapaddする
# ldapadd -Y EXTERNAL -H ldapi:/// -f load_lasbind.ldif
2. オーバーレイの有効化
lastbindにhookさせてauthTimeを追加するオーバーレイを有効化する。
lastbind.ldif
dn: olcOverlay=lastbind,olcDatabase={1}mdb,cn=config
objectClass: olcLastBindConfig
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: lastbind
olcLastBindPrecision: 60
ldapaddする
# ldapadd -Y EXTERNAL -H ldapi:/// -f lasbind.ldif
3. slapd再起動
systemctl restart slapd
4. おわり
試しにuserでbindしてみると以下のような要素が増えていることがわかる。
# slapcat | grep auth
authTimestamp: 20210121005115Z
authTimestamp: 20210121004901Z
authTimestamp: 20210121005041Z
authTimestamp: 20210121005128Z
authTimestamp: 20210121004613Z
authTimestamp: 20210121005019Z
...