3


0

イントラネットWebアプリケーションを、独自のフォームベースのセキュリティを使用しているものからActive Directoryに移行しようとしています。 アプリケーションはさまざまなユーザー操作をログに記録し、ユーザーアカウントに関連する大量のデータがあります。 私たちの計画は、さまざまなテーブルのこれらのUserId列すべてを、独自のシステムをリンクする外部キーからActive DirectoryのGUIDに移行することでした。 ログイン名は2つのシステム間で同一なので、移行は問題になりません。

ただし、大きな問題が1つありました。セキュリティポリシーにより、アクティブでないユーザーはActive Directoryから削除する必要があると定められています。 セキュリティログに孤立したGUIDがあると、エントリを閲覧している人にはほとんど意味がありません。

Active Directoryから削除されたGUIDについて、アプリケーションは人間が判読できる基本事項(名前、ログインなど)をどのように維持できますか?*

以下の選択肢を検討しました。 これらのオプションのうちの1つは最適であることに終わるかもしれません、しかし私達はよりよいために試みたいと思います:

  • ログテーブルを非正規化し、GUIDの代わりにストア名/ loginを使用します(ログについては大丈夫、アクティブデータについてはそれほどではありません)。

  • エントリが削除されることのないADオブジェクト情報の「キャッシュ」を維持する

  • ADアカウントを保持したまま無効化/ロックダウンする

3 Answer


1


Timが言ったように、ログテーブルを完全に非正規化するのではなく、代わりに関連するAD情報をGUIDと一緒に格納します。 ただし、他の分野でこのAD情報が必要になる場合は、ユーザーテーブルにキャッシュしてください。 セキュリティポリシーを変更しないことをお勧めします。


0


ロギングのために、私は非正規化されたアプローチを支持しますが、idを維持します。 私は他の人間が読める識別情報と共にユーザのIDを保存します。 アクティブなユーザーのために私はまだ結合でidを使うことができます(必要ならば)。 非アクティブな(削除された)ユーザーのために、私は監査人が使用するための人間が読める形式を持っています。


0


わかりやすいユーザー情報に対応するGUIDの辞書を格納する "キャッシュ"テーブルを使用することにしました。 これには、ADユーザーリストを抽象化し、キャッシュから不足しているエントリを合体させるビューが必要です。