- PR -

業務のadslを使用したアクセス制御

1
投稿者投稿内容
fuifui
会議室デビュー日: 2007/07/19
投稿数: 3
投稿日時: 2007-07-19 21:19
ms.accessとSQLServerを利用した業務システムを開発しています。
ADを利用してアクセス制御を厳しくしようと思っています。
accessのVBAを利用して
adsiから権限のあるUSERグループに属しているか判定して
利用を拒否するか、続行するか判断したいと思います。
@ユーザidはapiのgetusername()を利用してGET。
Aユーザオブジェクトは
Set usr = GetObject("LDAP://cn" & uname & ",ou=**,ou=**,dc=**,dc=**")
 でなんとかなるかなと思っていますが、ここから
 所定のグループに属しているか判定したいと思います
過去ログとかいろいろ見たのですが私にはあまり良く分かりません。
1.このアプローチ自体間違ってますか?
2.間違ってなければ一般的に有益な筈です。
解決策教えてください。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-07-19 22:57
その方法もあるんですが、現在使用している user がどの group に所属しているか?というのは、process の access token に入っているのでそこから引き出してやったほうが効率的です。

Win32 でやることになりますが、事前に対象の group SID を取得しておいて、OpenProcessToken で token handle を取得して、CheckTokenMembership ですかね。

[追記]
ただ、どこで判断したいのが不明なので、アレですが、access 側で判断させるのであれば、その file 自体の ACL で、SQL server 側ならそちらで roll を使用したほうがいいでしょう。
[/追記]
_________________
ちゃっぴ@わんくま同盟
ちゃっぴの監禁部屋

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2007-07-19 23:02 ]
fuifui
会議室デビュー日: 2007/07/19
投稿数: 3
投稿日時: 2007-07-20 09:48
ちゃっぴさんありがとうございます。
方向がちょっとずれていましたか?
また教えてください。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-07-20 10:34
で、Access と SQL server をどのように連携させるのですか?

こういった Web とか AP server を介さないで client から直接 DB へ接続する場合には、access control は DBMS 側で行わないとダメですね。

SQL server には Windows 認証を使うようにして、SQL server 側で roll を設定したほうがいいですね。

_________________
yawata133
ベテラン
会議室デビュー日: 2007/04/06
投稿数: 76
投稿日時: 2007-07-20 11:53
どのようあアプリケーションをつくるのですか?WEBアプリならば対象フォルダにアクセス権をつけ、匿名アクセスを許可しなければWindows認証で簡単にできます。確かにSQL ServerのWindows認証を使う手もあるので、凝ったことをする必要はないはずなんですが・・・
fuifui
会議室デビュー日: 2007/07/19
投稿数: 3
投稿日時: 2007-07-24 13:00
ServerのWindows認証を使うのが、フォーマルで一般的という事ですか。
ん、やって見ます。また報告します。
1

スキルアップ/キャリアアップ(JOB@IT)