1: 2011-01-10 (月) 22:23:09 maruo ソース
Line 1: Line 1:
 +*LDAPデータのユーザ間セキュリティを考慮する [#cf10c8a8]
 +LDAPのデータはいろいろ重要データが入っています。中には人に見られたくないデータもある。なもので、ユーザ間で見られても良いデータ、見られると嫌なデータを分けておこうと思います。
 +私のポリシーは以下で。
 +-Managerさんは当然全て読み書き可能
 +-syncuserさんはレプリカの都合上全て読み出し可能
 +-パスワードは自分自身は読み書き可能。他ユーザは参照も不可
 +-個人アドレス帳も他ユーザは参照不可。個人情報保護の観点で。
 +-その他の情報は他ユーザも参照可能
 +ということで行ってみましょう。
 +
 +*LDAPサーバのアクセスリスト [#y657123f]
 +OpenLDAPにはアクセスリストという便利な機能があります。これを用いることで、各ユーザのアクセス制御が可能です。
 +[[SLAPD.ACCESSのManページ>http://www5f.biglobe.ne.jp/~inachi/openldap/man23/man5/slapd.access.5.html]]とか見ると良いですかね。構文は
 +
 + access to <what> [ by <who> <access> [ <control> ] ]+
 +
 +:<what>|どの要素を
 +:<who>|誰に
 +:<access>|どんなアクセスを許すか
 +:<control>|アクセス規則適用のフローを制御します
 +
 +詳しくは、そっちを見てやってください。
 +
 +さて、アクセスリストのポリシー実現方法を具体的に。
 +**パスワードは自分自身は読み書き可能。他ユーザは参照も不可 [#d4a5bfd5]
 + access to attrs=userPassword,sambaNTPassword
 +       by self write
 +       by dn="cn=Manager,dc=example,dc=com" write
 +       by dn="cn=syncuser,dc=example,dc=com" read
 +       by anonymous auth
 +       by * none
 +さて。userPasswordとsambaNGPasswordは、
 +-self=自分自身は書き込み可能。
 +-Managerさんも書き込み可能
 +-レプリカに使用するユーザは読み込みが可能
 +-その他の人は認証
 +
 +*個人アドレス帳も他ユーザは参照不可 [#f0c48ca7]
 + access to dn.regex="ou=(.+),ou=Address,,dc=example,dc=com"
 +       by self write
 +       by dn="uid=$1,ou=People,dc=example,dc=com" write
 +       by dn="cn=Manager,dc=example,dc=com" write
 +       by dn="cn=syncuser,dc=example,dc=com" read
 +       by anonymous auth
 +       by * none
 +さてー、今度は記号が出てきましたね…正規表現です。(.+)は、任意の文字列にマッチする、を表現します。つまりうちのポリシーの場合は、ユーザごとにuidと一致したouのアドレス帳を持つ設定にしてますので、対応する文字列が出てきますね。
 +
 +で、2行飛ばして、uid=$1ってあるのわかりますかね?これは、後方検索といって、先の正規表現にマッチした文字列が代入されます。つまり、``あるユーザのアドレス帳は、あるユーザだけ書き込み可能``を意味します。つまりあるユーザのアドレス帳は
 +-自分は書き込みOK
 +-あるユーザだけ書き込み可能
 +-Managerさんも書き込み可能
 +-レプリカユーザは読み込みだけ可能
 +-その他の人は認証
 +
 +**-その他の情報は他ユーザも参照可能 [#yecb2bb9]
 + access to *
 +       by self write
 +       by users read
 +       by anonymous auth
 +       by * none
 +他の情報全ては
 +-自分は書き込み可能
 +-ユーザは参照のみ可能
 +-その他の人は認証
 +
 +*slapd.confに反映 [#l3e96a14]
 +以上の設定を/etc/openldap/slapd.confに反映します。
 + access to attrs=userPassword,sambaNTPassword
 +       by self write
 +       by dn="cn=Manager,dc=example,dc=com" write
 +       by dn="cn=syncuser,dc=example,dc=com" read
 +       by anonymous auth
 +       by * none
 +
 + access to dn.regex="ou=(.+),ou=Address,,dc=example,dc=com"
 +       by self write
 +       by dn="uid=$1,ou=People,dc=example,dc=com" write
 +       by dn="cn=Manager,dc=example,dc=com" write
 +       by dn="cn=syncuser,dc=example,dc=com" read
 +       by anonymous auth
 +       by * none
 +
 + access to *
 +       by self write
 +       by users read
 +       by anonymous auth
 +       by * none
 +このアクセスリストは、上から順に評価されていきますので、順序は誤らないように注意してね。特に一番最後のaccess to *が頭にあると、全てが台無しでございます。気をつけてねー。


トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 5298, today: 3, yesterday: 1
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード