sidetech

(元)インフラエンジニアの寄り道メモ。

ADのユーザーの有効化・無効化をIISから実施

雨は嫌ですね。最近ネタが浮かばないというか・・・ネタにしていいのかもわからず悶々とした日々を送っています。

さて、またしてもActiveDirectory(AD)な話なのですが、WEBから色々とユーザー管理が出来るといいな・・・とおもって始めてしまったナンチャッテプログラミングですが、今回は、アカウントの有効化と無効化です。

画面イメージは以下の様な感じ。
Enabledisable

アカウントを指定して有効化か無効化かを選んでコミットするだけでというシンプルなもの。
一応、有効になっているユーザーを有効化しようとするとエラーをだしたりします。
変更後は、管理者宛てに、どのユーザーのフラグを変更したかのメールが配信されるようになっています。

参考になったページは・・・
[ADSI] ユーザー アカウントの有効化と無効化

以下の構文のままやると
DirectoryEntry(path,
null, null, AuthenticationTypes.Secure);

私の環境では「アクセス拒否」のエラーがでてしまったので、
nullの部分を調べた処、ここに管理者権限を充てればいいという事が分かったんで何とかできました。

ソースは恥ずかしいのでだせません[E:coldsweats01]興味がある方はお知らせください・・・。
しかし結局色々やろうと思うとLDAPが絡む。LDAPアプライアンスがある程度出来る構造も少し見えてきました。評価が進んでいませんが、とにかく尻に火がついている案件をやっつけないとね・・・[E:sad]

とりあえず、これで以下の事が出来る様になりました。
・ユーザー自身でパスワードの変更
・管理者が各ユーザーのパスワードを変更(初期化)
・管理者が各ユーザーの有効化・無効化

あとは・・・
・管理者がセキュリティグループの作成・変更(編集)・削除
・管理者がユーザーアカウントの特定箇所の編集
を作ってみたいと思っています。

ユーザーの追加もやってみたいと思うのですが、Office365との連携部分でどうしても苦しい部分(Exchange onlineでのメールボックス生成とか)があるので、そこはちょっと別の手段で別の中の人が作りこんでいます[E:coldsweats01]

問題は、このままツールを作りこんでも「ユーザー自身でパスワードの初期化(忘れてしまった場合のやつ)」が出来ない事ですね。
一応、ASPのモジュールの中に「質問と答え」を実装しているのでこれを使えば・・・と言うのはわかっているのですが、質問と答えを最初にユーザーに入れさせる方法や変更させる方法が思いつかず、またIIS上(又はべつのサーバー)にSQLサーバーを建ててそこにしまい込んであげないと駄目っぽいので、もうちょっと手段を考えてみます。

ソースださないと、完全に独り言だなぁ・・・[E:despair]

他の参考
Active Directory UserAccountControl

第8回 Webサーバ・コントロール(後編) (3/4)