2009-05-19 3 views
3

Wir sind dabei, eine Intranet-Webanwendung von der Verwendung einer proprietären formularbasierten Sicherheit auf Active Directory zu migrieren. Die Anwendung protokolliert eine Vielzahl von Benutzeraktionen, und es ist eine erhebliche Menge an Daten mit Benutzerkonten verknüpft. Unser Plan war, alle diese UserId-Spalten in verschiedene Tabellen zu migrieren: von einem Fremdschlüssel, der das proprietäre System mit einer Active Directory-GUID verbindet. Login-Namen sind zwischen den beiden Systemen identisch, so dass die Migration kein Problem darstellt.AD-Benutzeraktionen protokollieren (mit gelöschten Benutzern)

Wir haben jedoch ein großes Problem festgestellt: Unsere Sicherheitsrichtlinie schreibt vor, dass inaktive Benutzer aus Active Directory gelöscht werden müssen. Eine verwaiste GUID in unseren Sicherheitsprotokollen macht die Einträge für jeden, der sie anzeigt, ziemlich bedeutungslos.

Wie kann eine Anwendung die lesbaren Grundlagen (Name, Login usw.) über eine GUID verwalten, die aus Active Directory gelöscht wurde?

Wir haben die folgenden Optionen berücksichtigt. Eine dieser Optionen kann am Ende der optimal zu sein, aber wir wollen für besser, versuchen:

  • denormalisieren die Log-Tabellen und speichert Namen/login statt einer GUID (okay für Protokolle, nicht so sehr für aktive Daten.

Antwort

0

Wir haben uns entschieden, eine "Cache" -Tabelle zu verwenden, in der ein Wörterbuch mit GUIDs gespeichert wird, das benutzerfreundlichen Benutzerinformationen zugeordnet wird. Dies erfordert eine Ansicht, die eine AD-Benutzerliste abstrahiert und fehlende Einträge aus dem Cache zusammenführt.

0

für Logging)

  • einen „Cache“ von Informationen pflegen Objekt AD wo Einträge werden nie
  • halten sie die AD-Konto gelöscht, sondern Deaktivierung/it down Sperren ich den denormalisierter Ansatz bevorzugen, aber die Aufrechterhaltung der id . Ich speichere die ID des Benutzers zusammen mit anderen, lesbaren Informationen. Für aktive Benutzer kann ich die ID immer noch in Joins verwenden (falls nötig). Für inaktive (gelöschte) Benutzer habe ich das lesbare Formular zur Verwendung durch die Auditoren.

  • 1

    Ich würde die Log-Tabelle nicht vollständig denormalisieren, sondern stattdessen die relevanten AD-Informationen neben der GUID speichern, wie Tim sagte. Wenn Sie diese AD-Informationen jedoch in anderen Bereichen benötigen, speichern Sie sie in Ihrer Benutzertabelle. Ich würde empfehlen, Ihre Sicherheitsrichtlinien nicht zu ändern.

    +0

    Keine Sorge, Option 3 ist höchst unwahrscheinlich. Dafür gibt es mürrische Systemadministratoren. –