Active Directoryとの友情はどこから始まりますか

Active Directoryからの情報の処理を頻繁に処理する必要があります。 このシステムは多くの場所で広く普及しているため、経験を共有することにしました。



すべては、私がMS Sharepointへのアクセスを配布しているという事実から始まりました。 従業員からのアプリケーションでは、せいぜい、アカウントが入ってくるだけで、最悪の場合、「私と私のボス」のようなものを書くことができました。 最初は気になりましたが、私は本当の管理者のように感じて、そのようなアプリケーションを不注意なユーザーに送り返し、すべてをやり直すようにしました。 それは怒った手紙と電話の山に変わりました。 Active Directory-ADの略語がロシア語の「地獄」と一致するのは偶然ではないかとさえ思い始めました。 その結果、世界をより良く変える必要があることに気づき、Active Directoryに保存されているものと、それを使用してアクセスやその他の便利なものを自動的に配布する方法を詳細に検討することにしました。



従業員に関する会社情報は、2つの場所に保存されます。



Oracleでは一意性が維持され、ADを介してアクセスが許可されます。 従業員ごとに複数のアカウントが存在する場合があります。 アカウントで従業員を一意に識別する必要がありました。



この問題の解決策は、社内で積極的に使用されている多くのユーティリティおよびソフトウェア製品で発見され、複製されました。 最もよく使用されるユーティリティの1つは、従業員情報取得プログラムです。 彼女はさまざまな基準に従って1人または複数の従業員を検索し、Active DirectoryとOracleのデータを組み合わせて、それらに関する最も完全な情報を提供します。 特に人気があるのは、データベースに保存されている従業員の写真です。



また、Active DirectoryとOracleだけでなくMS Sharepointとの統合も注目に値します。 ソリューションのおかげで、SharepointポータルのページでActive Directoryからユーザーのグループにすばやくアクセスできるようになり、さまざまな理由でそれを残したユーザーを削除できるアプリケーションが登場しました。



この問題は2つの方法で解決されました。

  1. 1人の従業員に関する情報-OracleのDBMS_LDAP
  2. 使用可能なすべてのレコードを圧縮し、Active Directoryの内容を確認するために、C#コードを使用しました


C#を使用する場合、次のことを考慮してください(System.DirectoryServices.dllライブラリ):



返された結果のレコードの最大数を設定するDirectorySearcher.SizeLimitプロパティもあります。 デフォルトでは0です。つまり、サーバーからこの値を取得します。 通常、サーバーの値は1000です。SizeLimitプロパティを操作して、関数の結果( リンク )がどのように変化するかを確認できます。



上記のリンクには、yiledを使用するコードの例があります。これは.NETの観点からはより正確ですが、アルゴリズムを説明するために以下の例では使用しませんでした。

コード例:





結論:



Active Directoryを操作し、Oracleデータベースから直接Active Directoryにアクセスできることにより、私が勤務する部門のプログラマーの作業が大幅に簡素化されました。 最初に、実験のために、Active Directoryのコンテンツをデータベーステーブルにアップロードしました。 その後、驚いたことに、このテーブルで機能する一連のストアドプロシージャを発見しました。 開発者は彼女に目を向け、DBMS_LDAPパッケージを理解するのが面倒だと判明しました。 この前例により、Active Directoryの操作方法の例を示し、例を挙げたいと思いました。




All Articles