Frage

Ich entwickle individuelle Client / Server-Anwendung, die Client mit ihrem Benutzernamen und Passwort anmelden muss. Die Benutzerkonten sind nicht auf Windows / AD-Konten in irgendeiner Weise im Zusammenhang. Nach der Anmeldung wird Client-Anwendung andere Dienste von Server-System anfordern.

Meine Frage ist, was ist der beste Weg, dies zu implementieren? Welche Art von Architektur passen würde hier am besten? Ich denke, eine Art von Ticket / Token-Authentifizierungssystem muss umgesetzt werden ???

Danke

War es hilfreich?

Lösung

Sie können in der Tat wollen ein System implementieren, die „Karten“ entlang zwischen den verschiedenen Teilen passiert (Login-Server, Client, Applikationsserver). Dieses Ticket enthält grundlegende Informationen wie beispielsweise die Benutzer-ID (die Benutzernamen, die Zeilennummer, etc). Dieses Ticket wird entweder mit einem geheimen Schlüssel, der die autorisierten Server teilen oder gestanzt wird mit einem Hash des Inhalts Ticket gesalzenen mit einem geheimen Schlüssel, dass die Server Teile verschlüsselt werden. Der erste Weg ist es möglich, nur die autorisierten Server das Ticket zu erstellen und zu lesen, und die zweite Art und Weise ist es möglich, dass die autorisierten Server zu überprüfen, ob nur die autorisierten Server das Ticket erstellt haben könnte, aber erlaubt es jedem, die Karte zu lesen. All App-Server wird das Ticket überprüfen (indem er versucht, sie zu entschlüsseln, oder durch die Überprüfung, dass der Hash übereinstimmt), bevor mit irgendwelchen Aktionen fortfahren, die geschützt werden sollen. Wenn dies ein Web-App ist, sind dann Cookies ein guter Ort, um das Ticket zu speichern.

Andere Tipps

Sie haben gesagt, nicht viel über Ihre Architektur, andere als Client / Server ist, so gehe ich davon aus Sie irgendeine Art von Formulardesigner wie Windows Forms in VS. verwenden In diesen Fällen habe ich immer irgendeine Form der Datenbanktabelle Authentifizierung verwendet wird, wie es ist leicht, einfach zu installieren, und einigermaßen sicher. Sie können sogar einrichten Gruppen und Rollen auf diese Weise, ohne viel Aufhebens.

Table:  Users
Fields: UserID   PK
        Login    Text
        Password Text
        ...

Table:  Roles
Fields: RoleID   PK
        Role     Text
        ...

Table:  UserRoles
Fields: UserID    FK
        RoleID    FK
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top