- PR -

ACL管理について

1
投稿者投稿内容
ジーちゃん
ベテラン
会議室デビュー日: 2006/01/07
投稿数: 69
お住まい・勤務地: 関東
投稿日時: 2006-10-27 16:59
いつも参考にさせて頂いております。

私はサーバの運用をしており、Windows 2000のドメインを管理しております。
そこにはメンバサーバ(Windows2000Server)が多数存在し、そのリソースの
ACLをドメインローカルグループで管理しております。

最近になってユーザが所属しているグループ情報が1000以上になったため、
リソースにアクセスできない障害が発生しております。
MSKB:http://support.microsoft.com/kb/275266/ko

ACLを見直したことで現在は普及しておりますが、今後同様な問題が発生する
ことを危惧しております。

皆さんはどのような形でACLや組織グループを管理されているか、参考意見を
お聞かせ頂けますでしょうか。


ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-29 06:34
以前いたところでは、group を多重に nest して管理していましたが、これはこれで問題山積みで・・・

というのはAD の仕様では、nest された group を展開した cache を保持する仕組みがないらしいのです。

ということで、nest された gorup が存在する場合、毎回 nest された回数分 (実際はもっと細かいところで制限があるので実際はもっと多い) LDAP query を発行し、その都度展開している。

頻度が少なければさほど問題になりませんが、Exchange server と連携するような場合にはものすごい負荷となって跳ね返ってくるので注意が必要です。

でも、正直 1 user が所属している group が 1000 を超えるって想像がつかないのですが・・・
# 管理できるのだろうか?
ジーちゃん
ベテラン
会議室デビュー日: 2006/01/07
投稿数: 69
お住まい・勤務地: 関東
投稿日時: 2006-10-29 18:49
ちゃっぴさん、ご返答ありがとうございます。

引用:

ちゃっぴさんの書き込み (2006-10-29 06:34) より:

でも、正直 1 user が所属している group が 1000 を超えるって想像がつかないのですが・・・




自分も想像してませんでした^^;
しかし、上位管理職(部長など)はその部内の課全てに所属し、その課がそれぞれ
色々なドメインローカルグループに所属しているため、1000を超えることになって
しまったのです。
この1000個はNestされた数もカウントされるため、管理に困っています^^;

グループのメンバを表示することはNetコマンドを使えば確認できるのですが、
逆のパターン(所属するメンバ)の情報が引っ張れなくて・・・。
ユーザやドメインローカルグループが所属する全てのグループを一括で表示できる
ようなツールをご存知の方いらっしゃいましたら、ご紹介頂けますでしょうか。

よろしくお願い致します。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-29 19:08
Error Message: During a Logon Attempt, the User's Security Context Accumulated Too Many Security IDs

この制限はなんとなく、access token の制限のような・・・
User が起動した process には、user SID とか group SID とかが詰まった access token が格納されていて、access token に格納される group SID は 1000 までに制限されているのでしょう。

ということで、nest しても回避できないというのには納得です。

引用:
グループのメンバを表示することはNetコマンドを使えば確認できるのですが、
逆のパターン(所属するメンバ)の情報が引っ張れなくて・・・。
ユーザやドメインローカルグループが所属する全てのグループを一括で表示できる
ようなツールをご存知の方いらっしゃいましたら、ご紹介頂けますでしょうか。



私はこの手の管理をほとんどゴリゴリと script を書いて対処していました。
ADSI を使えばできちゃいますが、数が多いので負荷および responce と AD にまつわるいろいろな数の制限を考えるとお手軽じゃないですね〜。

まあ、でも数減らさないとしょうがないのでしょうから、変更作業も考慮に入れて、script を勉強するのがよいかもしれません。
ジーちゃん
ベテラン
会議室デビュー日: 2006/01/07
投稿数: 69
お住まい・勤務地: 関東
投稿日時: 2006-10-30 20:22
ちゃっぴさん、返信ありがとうございます。

引用:

ちゃっぴさんの書き込み (2006-10-29 19:08) より:

私はこの手の管理をほとんどゴリゴリと script を書いて対処していました。
ADSI を使えばできちゃいますが、数が多いので負荷および responce と AD にまつわるいろいろな数の制限を考えるとお手軽じゃないですね〜。

まあ、でも数減らさないとしょうがないのでしょうから、変更作業も考慮に入れて、script を勉強するのがよいかもしれません。



やっぱりそうですか・・・。scriptの勉強をして、また質問させて頂きます。
ありがとうございました。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-31 23:31
とりあえず、ひとつ助言すると、

負荷および responce を気にしなければ、ADSI で IADsGroup class の instance を取得し、MemberOf property を列挙する部分を再帰で回してやれば、要件は実現できるでしょう。

ただ、結構負荷が高いので、それを考慮するならば、ADO ADSI provider で LDAP query を発行するほうが速いでしょうね。
カンタ
会議室デビュー日: 2005/10/12
投稿数: 13
投稿日時: 2006-11-09 19:48
お勉強の参考まで

[TechNet] ユーザーが属する Active Directory グループの一覧表示
http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/groups/adgpvb17.mspx
1

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