8 Stimmen

Wie unterstützen Sie eine Webanwendung mit gehashten oder verschlüsselten Kennwörtern?

Bei der Unterstützung einer neuen Webanwendung in einer Unternehmensumgebung ist es oft notwendig, sich als ein bestimmter Benutzer anzumelden, um ein tatsächliches oder vermeintliches Problem zu diagnostizieren, das dieser hat. Hier gibt es zwei gegensätzliche Probleme:

  1. Die beste Praxis ist die Verwendung von gehashte oder verschlüsselte Passwörter , nicht im Klartext. Manchmal ist ein SSO (Single Sign-On) eines Drittanbieters dazwischengeschaltet. Es gibt keine Möglichkeit, das Passwort des Benutzers abzurufen. Es gibt keine Möglichkeit, sich als dieser Benutzer anzumelden, es sei denn, der Benutzer gibt es an (was nicht erwünscht ist).

  2. Viele Webanwendungen haben Personalisierung und komplexe Autorisierung . Verschiedene Benutzer haben unterschiedliche Rollen (Admin, Manager, Benutzer) mit unterschiedlichen Berechtigungen. Manchmal können Benutzer nur ihre Daten sehen - ihre Kunden oder Aufgaben. Einige Benutzer haben nur Lesezugriff, während andere bearbeiten können. Somit ist die Ansicht der Webanwendung für jeden Benutzer einzigartig.

Nehmen wir an, dass es in einer Unternehmensumgebung nicht möglich ist, zum Schreibtisch des Benutzers zu gehen oder eine direkte Verbindung zu seinem Rechner herzustellen.

Wie gehen Sie mit dieser Situation um?

Edit: Ich möchte noch einmal betonen, dass es in einem großen Finanzinstitut oder einem typischen Fortune-500-Unternehmen mit Hunderttausenden von Mitarbeitern im ganzen Land und auf der ganzen Welt nicht möglich ist, dass ein einfacher Entwickler in einer IT-Abteilung direkt auf den Rechner eines Benutzers zugreifen kann. Bei einigen dieser Anwendungen handelt es sich um öffentliche Webanwendungen, die von Kunden genutzt werden (z. B. Online-Banking und Aktienhandel). Und viele dieser Intranet-Anwendungen basieren auf Active Directory oder SSO, was bedeutet, dass die Benutzeranmeldedaten für viele Anwendungen gleich sind. Ich danke Ihnen allen für Ihre Vorschläge, von denen einige auch in anderen Umgebungen sehr nützlich sein können.

0voto

dove Punkte 20015
  1. Könnten Sie eine Testumgebung einrichten, in die regelmäßig Live-Daten kopiert werden (natürlich bereinigt, um alle Sicherheits- und Datenschutzanforderungen zu erfüllen)? Ein Benutzer, der ähnlich eingerichtet ist wie derjenige, der Probleme hat, könnte für die Fehlersuche verwendet werden, oder sogar der Benutzer selbst, wenn dies erlaubt ist.

  2. Verwenden Sie einen Remote-Desktop-Client, wie in anderen Antworten erwähnt, aber auch das ist für Sie vielleicht nicht praktikabel. Wenn Sie diese Rechte innerhalb der Domäne haben, habe ich gehört, dass die Fehlerbehandlung sogar einen Screenshot macht und diesen in die Protokolle aufnimmt, aber das klingt für mich etwas seltsam.

  3. Könnten Sie ein Admin-Tool haben, um einen Benutzer in ein Demokonto zu klonen?

0voto

Die Lösung, die wir in unseren Webanwendungen verwendet haben, besteht darin, dass authN/authZ den gewünschten Benutzer als den effektiven Benutzer zurückgibt. Wir tun dies, indem wir eine Admin-Funktion haben, um eine Maskerade einzurichten, und dann, wenn wir nach dem aktuell angemeldeten Benutzer (current_user) fragen, behandeln wir die Maskerade:

  def current_user_with_effective_user
    if masked?
      current_user_without_effective_user.masquerade_as
    else
      current_user_without_effective_user
    end
  end
  alias_method_chain, :current_user, :effective_user

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X