2chより

190 :名無しさん@お腹いっぱい。 :03/06/12 10:27
ディレクトリに人のエントリを格納し、この人は a, b, c のアプリを利用で
き、この人は b, c, d のアプリが利用できるといった制御をするためにはサー
バ側での実現方法、アプリ側での認証方法はどのようにしたら良いでしょう
か?

191 :名無しさん@お腹いっぱい。 :03/06/12 10:40
アプリを動かすplatformは?

192 :名無しさん@お腹いっぱい。 :03/06/12 10:53
scheme/schema
http://science.2ch.net/test/read.cgi/math/1011949239/

193 :名無しさん@お腹いっぱい。 :03/06/12 11:07
>191

アプリは Windows, UNIX 上での Perl, PHP, Java, VB 等様々です。

ユーザ認証を行うには uid, password で bind して成功/失敗をチェックすれば
良いのではと考えてます。
その後ユーザが利用出来るアプリを制限するところがピンときません。

194 :名無しさん@お腹いっぱい。 :03/06/12 11:35
>>193
アプリが全部自作なら、
アプリ自身が実行しているユーザが利用可能であるか、directory情報を見て、
自分で制御すればいいと思います。終了するなど。

自作じゃないなら、local systemのauthorization systemを使って、
実行可能/不可能を制御すればいいです。
グループをdirectoryで管理して、グループに対するアクセス許可を行なう。

Authentication systemとauthorization systemの区別が
はっきりしてないからピンと来ないということはないですか?
LDAPはauthenticationしかやってくれないので、
authorizationは別途実現してやる必要があります。

上の2例の場合、authenticationはログオン/イン時に行なわれます。

アノニマスログオン/インが許可されている環境で、
authenticationも絡めて行ないたい場合は、
(つまりlocal systemのauthenticationを信頼しない場合)
アプリごとにou=アプリ名を作って、
その中にcn=ユーザ名を作成、(パスワードはCoSで共有する)
アプリで認証する時のbaseDNをこのouを指定する、などの方法があります。
cn=ユーザ名があるユーザが利用可能なユーザ。

195 :名無しさん@お腹いっぱい。 :03/06/12 11:39
ちなみに、
> この人は a, b, c のアプリを利用でき、
> この人は b, c, d のアプリが利用できるといった制御
は、authorization(=アクセス制御)です。

196 :名無しさん@お腹いっぱい。 :03/06/12 13:33
>194
なんとなく見えてきました。

authorization を行う為の手段は明確には定められていない。
それは各アプリが任意の方法を用いて各自で判断しなさいと。

>アプリごとにou=アプリ名を作って、
>その中にcn=ユーザ名を作成、(パスワードはCoSで共有する)
>アプリで認証する時のbaseDNをこのouを指定する、などの方法があります。

この方法の場合、各アプリで個別に必要になる属性を
ou=アプリ 1, ou=アプリ 2, ou=アプリ 3 に格納し、パスワードのような共通属性は
Cos で ou=人 のようなエントリ以下とひも付けすると言う事ですね。

ユーザ A がアプリ 1 を利用しようとした場合、
アプリ 1 は ou=アプリ 1 を baseDN として cn, password で bind してみる。
→ 成功/失敗をチェック!

従ってユーザ A はアプリ1, 2, 3 を、ユーザ B は アプリ 2 を、ユーザ C は
アプリ 2, 3 を利用出来るようにしたいなら

ou=人には ... cn=ユーザ A, cn=ユーザ B, cn=ユーザ C (共通属性を格納)
ou=アプリ 1 には ... cn=ユーザ A (固有の属性を格納)
ou=アプリ 2 には ... cn=ユーザ A, cn=ユーザ B, cn=ユーザ C (固有の属性を格納)
ou=アプリ 3 には ... cn=ユーザ A, cn=ユーザ C (固有の属性を格納)

の各エントリを作ってあげれば authentication & authorization が行なえ
ると言う事でよいでしょうか?

197 :名無しさん@お腹いっぱい。 :03/06/12 15:40
>>189
鵜飼さんの日記にも出てた。
Understanding and Deploying LDAP Directory Services , Second Edition

198 :名無しさん@お腹いっぱい。 :03/06/12 16:33
>>196
> authorization を行う為の手段は明確には定められていない。

明確に定められてないどころか関知しません。
LDAPはauthentication serviceとdirectory serviceを提供するだけです。

DITに対するaccessのauthorizationについては、
serverごとに実装されていて、またいろいろな標準提案もありますが。

> (ずばっと省略)

そんな感じでいいんじゃないでしょうか。
もちろんこれはひとつの方法に過ぎませんが。