OpenLDAP リライトオーバーレイ slapo-rwm

0
    OSS研究室の大野です。
    今日はOpenLDAPのリライトオーバーレイについて紹介します。

    Postfixには拡張メールアドレスという機能があります。
    これは、メールアドレスのローカルパート部に拡張部を付加しても、メールを受信できるという機能です。

    例えば

    user00@example.com

    というメールアドレスを使っている場合

    user00+ext@example.com
    user00
    +info@example.com
    user00
    +sys@example.com

    のように拡張部を付加しても、メールを受信することができます。
    便利ですね。


    さて、このようなメールシステムでLDAP参照をする場合、拡張部が付加されたメールアドレスをキーにしてLDAP参照を行っても、拡張部が付加されていないメールアドレスをキーにした時と同じ情報を得られるようにしたいことがあります。

    このような場合、OpenLDAPのリライト機能を使用すると便利です。
    OpenLDAPのリライト機能は、LDAPリクエストのbindDN,searchDN,searchFilter等の書き換えを行うことができます。

    今回の状況ではLDAP検索フィルタを書き換えることになります。
    この場合のOpenLDAPの設定例を紹介します。

    (1)rwmモジュールの読み出し
    # module{1}, config
    dn: cn=module{1},cn=config
    objectClass: olcModuleList
    cn: module{1}
    olcModulePath: /usr/lib/ldap
    olcModuleLoad: {0}rwm.la

    (2)リライトルールの設定
    # {0}rwm, {1}mdb, config
    dn: olcOverlay={0}rwm,olcDatabase={1}mdb,cn=config
    objectClass: olcOverlayConfig
    objectClass: olcRwmConfig
    olcOverlay: {0}rwm
    olcRwmRewrite: {0}rwm-rewriteEngine on
    olcRwmRewrite: {1}rwm-rewriteContext searchFilter
    olcRwmRewrite: {2}rwm-rewriteRule "(.*)¥(mail=(.*)¥+.*¥@(.*)¥)(.*)" "$1(mail=$2@$3)$4" ":@"

    (mail=アドレス+拡張部@ドメイン) を (mail=アドレス@ドメイン)  に書き換えています。

    この設定を行うと、以下のLDAP検索フィルタは同じLDAPエントリの結果を返すことになります。

    (&(objectClass=inetOrgPerson)(mail=user00@example.com))
    (&(objectClass=inetOrgPerson)(mail=user00+info@example.com))
    (&(objectClass=inetOrgPerson)(mail=user00+sys@example.com))

    LDAP検索フィルタから拡張部(赤色部分)が削除されて、LDAP検索が実行されます。


    コメント
    コメントする








       

    calendar

    S M T W T F S
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    << July 2020 >>

    selected entries

    categories

    archives

    recent comment

    links

    profile

    search this site.

    others

    mobile

    qrcode

    powered

    無料ブログ作成サービス JUGEM