5

Ich interessiere mich dafür, welche Strategien für die Handhabung der Benutzerauthentifizierung und -autorisierung in einem plattformübergreifenden verteilten System verwendet werden können. Ich möchte in der Lage sein, Aktionen im System als zu einem bestimmten Benutzer gehörig zu kennzeichnen und bestimmten Benutzern nur bestimmte Aktionen zu erlauben.Strategien für den Umgang mit plattformübergreifender Benutzerauthentifizierung und -autorisierung

Hintergrund: Das System zur Zeit unter Windows verwendet wird, nur, wo die von einem Benutzer initiierte Aktionen zur Zeit nur als von der speziellen Maschine des Benutzers markiert. Eine Aktion beinhaltet im Wesentlichen die Verwendung der CPU, um einige Berechnungen durchzuführen und das Ergebnis zurückzugeben.

Derzeit wird keine Autorisierung und keine Authentifizierung von Benutzern (oder zwischen Computern) durchgeführt. Das System wird als Dienst mit geringen Rechten ausgeführt (mit dem NETWORK SERVICE-Konto). Daten sind nicht sensibel und alle Benutzer im lokalen Netzwerk dürfen das System nach Herzenslust nutzen.

Das System kann sowohl in homogenen Windows-Domänen-Setups als auch in Arbeitsgruppen ohne Domänencontroller oder mit einer Mischung aus einer Domäne und einer Reihe von Arbeitscomputern implementiert werden, die nicht zur Domäne gehören.

Problem

Um Funktionalität zu dem System hinzuzufügen, sagen zum Beispiel Nutzungsstatistiken pro Nutzer zu sammeln oder die Anzeige, die Verwendung eines Computers zu machen ist es notwendig ist, den Überblick über einzelne Benutzer zu halten. Wenn bestimmte Aktionen nur von bestimmten Benutzern ausgeführt werden dürfen (z. B. wenn einige Einstellungen für das System geändert werden), ist außerdem eine Form der Autorisierung erforderlich.

Ich habe ein gutes Verständnis der Windows-Weg dies zu tun und diese Art von Funktionalität in einer homogenen Windows-Domain-Setup hinzufügen wäre einfach mit der integrierten Authentifizierung und Autorisierung in Windows. Dadurch entfällt auch die Notwendigkeit, dem System spezielle Accounts zuzuweisen, die nur für dieses System gültig sind - sobald sich der Benutzer normal angemeldet hat, können alle Authentifizierungen und Autorisierungen durchgeführt werden, ohne dass zusätzliche Benutzerinteraktionen erforderlich sind.

Aber was, wenn das System auf Mac OSX laufen kann? Oder Linux? Was, wenn es in einer gemischten Umgebung mit einigen Benutzern in einer Windows-Domäne, anderen unter OSX und einigen Arbeitscomputern mit Linux ausgeführt werden soll? (Das tatsächliche System kann auf alle diese Systeme portiert werden und behandelt plattformübergreifende Kommunikation und so weiter). Ich habe nur begrenzte Kenntnisse über die Art und Weise, wie Authentifizierung und Autorisierung auf diesen Plattformen gehandhabt werden, und keine Kenntnisse darüber, wie dies bei der Interaktion zwischen Plattformen erreicht werden kann.

Gibt es eine gute Strategie für die plattformübergreifende Benutzerauthentifizierung und Autorisierung in einem verteilten System wie diesem? Beachten Sie die doppelte Verwendung von "plattformübergreifend" - sowohl als Möglichkeit, das Programm für verschiedene Plattformen zu kompilieren, als auch in der Lage zu sein, zwischen Plattformen zu interagieren.

Ich habe die Frage als C++ markiert, da dies die Sprache ist, in der das System geschrieben ist, aber ich bin bereit, alles zu akzeptieren, was mit C++ interagiert werden kann. Irgendwelche Ideen (einschließlich der wilden architektonischen Änderungen) sind willkommen!

Update:

Ein Beispiel dafür, was wäre interessant, die Lage sein, zu erreichen:

Benutzer A in zu Rechner angemeldet 1, die eine Windows-Maschine ist.

Benutzer A öffnet die administrative Schnittstelle für das System, wählt Maschine 2 (ein Linux-System) aus und passt eine Einstellung an. Das System überprüft, dass Benutzer A tatsächlich über ausreichende Berechtigungen verfügt, um dies zu ermöglichen.

Da A bereits beim Anmelden seine Identität verifiziert hat, wäre es wünschenswert, ihm zu erlauben, diese Einstellung zu ändern, ohne zusätzliche Anmeldeinformationen eingeben zu müssen.

+0

Gibt es bereits eine zentrale Benutzerdatenbank, die wiederverwendet werden sollte? –

+0

@free_easy: Nein, das System hat derzeit überhaupt keine Benutzerbehandlung. Ich würde gerne die bestehenden Benutzerkonten verwenden, wenn möglich - d. H. Single Sign-On. – villintehaspam

+0

Wo sind diese bestehenden Benutzerkonten gespeichert? (Active Directory, LDAP, Datenbank) –

Antwort

3

Sie können eine anspruchsbasierte Authentifizierung mit SAML-Token verwenden, die plattformübergreifend arbeiten.

Auf der Windows-Seite gibt es eine Bibliothek dafür: Windows Identity Foundation.

Siehe: http://msdn.microsoft.com/en-us/security/aa570351

+0

Das scheint ziemlich genau das zu sein, wonach ich gesucht habe, danke! – villintehaspam

Verwandte Themen