it-swarm.com.de

LDAP vs. SAML-Autorisierung

Derzeit untersuche ich, ein Asset-Tracking-System von LDAP auf SAML umzustellen. Es gibt zwei Hauptbereiche, in denen unsere Software derzeit LDAP verwendet. Die erste ist die Authentifizierung. Um heute auf das System zugreifen zu können, müssen Sie sich erfolgreich mit LDAP authentifizieren und Mitglied einer angegebenen LDAP-Gruppe sein. Dieser Teil ist relativ einfach zu SAML zu wechseln. Wir haben eine Bibliothek benutzt, um die meiste schmutzige Arbeit zu erledigen. Und auf dem IDP können wir einen Anspruch hinzufügen, um den Benutzer zu autorisieren. Aber unser zweiter Einsatz von LDAP führt mich zu einer Schleife.

Heute kann jedes von uns verwaltete Asset mit einem Benutzernamen verknüpft werden. Beispielsweise kann ein bestimmter Drucker zu "someuser" gehören. Eine der Optionen, die unsere Software dem Administrator bietet, besteht darin, Assets basierend auf LDAP-Benutzergruppen anzuzeigen und mit ihnen zu interagieren. Als Administrator möchte ich möglicherweise alle Drucker aktualisieren, die sich im Besitz von Personen einer bestimmten Abteilung befinden. Zu diesem Zweck erstellt der Administrator eine Regel für die LDAP-Gruppe 'departmentInQuestion'. Unsere Software würde dann ein Dienstkonto verwenden, um eine Verbindung zu LDAP herzustellen, eine Abfrage erstellen, um zu sehen, welche Benutzer unseres Systems sich in 'departmentInQuestion' befinden, diese ausführen und anhand der Ergebnisse ermitteln, welche Assets das Update erhalten sollen.

Bislang konnte ich keinen SAML-Workflow analog dazu finden. Es scheint, dass die einzige Möglichkeit, die wir als "Someuser" betrachten, besteht, wenn sie sich authentifizieren und wir Zugang zu ihren Ansprüchen erhalten. In unserem Workflow kann sich „someuser“ jedoch niemals bei uns authentifizieren. Es ist fast so, als würden wir einen Benutzer für das Dienstkonto autorisieren. Gibt es einen vorhandenen Workflow, den ich bei meiner Untersuchung übersehen habe? Gibt es andere Technologien, die die Autorisierung auf diese Weise unterstützen? 

Danke für jeden Input! 

10
Staros

SAML ist wie ein Pass oder ein Visum. Es verfügt über (vertrauenswürdige) Informationen über Sie, die verwendet werden können, um über Sie zu erfahren (z. B. Ihr Name, DOB) und daraus abzuleiten, worauf Sie zugreifen können (z. B. Zugang zu einem Land). Sie können Eigenschaften im Token verwenden, um andere Systeme nach zusätzlichen Informationen zu fragen, mit denen Sie möglicherweise verbunden sind (z. B. Ihr Kontoauszug).

Analog dazu wird SAML in der Regel dazu verwendet, Benutzer bei einem System zu authentifizieren (sobald Sie Origin vertraut haben). Es gibt jedoch keine Vorkehrungen für die Verwaltung von Benutzerprofilen oder „Ressourcen“.

Wenn überhaupt, werden Autorisierungsentscheidungen basierend auf den Attributen getroffen, die dem Benutzer zugeordnet sind (z. B. der Gruppe, zu der er gehört) und in Ansprüchen in dem Sicherheitstoken übermittelt.

Vielleicht ist die erste zu beantwortende Frage, warum Sie sich von LDAP entfernen und über SAML nachdenken möchten. Möchten Sie Benutzer akzeptieren, die sich mit ihren eigenen Anmeldeinformationen anmelden? Der Grund dafür ist, dass Sie den LDAP-Server vollständig entfernen möchten

Sie können Ihren LDAP-Server für die Verwaltung von resources associated with users behalten und Benutzer an anderer Stelle authentifizieren. Das haben Sie jetzt. Sie würden Benutzer "außen" und "innen" über ein gemeinsames Attribut (z. B. einen Benutzernamen oder eine ID) in Beziehung setzen.

Wenn Sie LDAP zusammen löschen möchten, benötigen Sie zum Speichern dieser Informationen einen anderen Speicherort (z. B. Ihre App-Datenbank).

16
Eugenio Pace

Aufbauend auf der Antwort von Eugenio Pace und insbesondere nach diesem Absatz:

Analog dazu wird SAML in der Regel dazu verwendet, Benutzer bei einem System zu authentifizieren (sobald Sie Origin vertraut haben). Es gibt jedoch keine Vorkehrungen für die Verwaltung von Benutzerprofilen oder „Ressourcen“.

Wenn überhaupt, werden Autorisierungsentscheidungen basierend auf den Attributen getroffen, die dem Benutzer zugeordnet sind (z. B. der Gruppe, zu der er gehört) und in Ansprüchen in dem Sicherheitstoken übermittelt.

Worauf Eugenio hier Bezug nimmt, ist ABAC - Attribut-basierte Zugriffskontrolle. SAML macht das nicht. Um ABAC zu erreichen, benötigen Sie XACML. Sowohl SAML als auch XACML sind von OASIS definierte Standards, die zusammenarbeiten. Mit XACML können Sie attributbasierte Regeln definieren. Zum Beispiel könnten wir Ihr Beispiel erneut betrachten und eine Regel wie folgt schreiben:

  • Ein Benutzer mit Rolle == Administrator kann das Aktion == Update für eine Ressource von Typ == Druckerausführen. _ wenn und nur dann, wenn Abteilung des Benutzers == die Abteilung des Druckers.

Weitere Informationen zu XACML in ABAC finden Sie auf diesen Referenzseiten:

7
David Brossard

Auth0 implementiert bewährte, gängige und beliebte Identitätsprotokolle, die in verbraucherorientierten Webprodukten (OAuth 2.0, OpenID Connect) und in Unternehmensbereitstellungen (SAML, WS-Federation, LDAP).

  • S ecurity A ssertion M arkup L Sprache (SAML) ist ein XML-basiertes Framework zur Authentifizierung und Autorisierung zwischen zwei Entitäten: einem Diensteanbieter und einem Identitätsanbieter. Der Dienstanbieter verpflichtet sich, dem Identitätsanbieter die Authentifizierung von Benutzern anzuvertrauen. Der Identitätsanbieter authentifiziert Benutzer und stellt Dienstanbietern eine Authentifizierungsbestätigung bereit, die angibt, dass ein Benutzer authentifiziert wurde.

  • L eightweight D irectory A ccess P rotocol (LDAP) ist ein Anwendungsprotokoll, das für den Zugriff auf und verwendet wird Verwaltung verteilter Verzeichnisinformationsdienste über ein IP-Netzwerk (Internet Protocol). 

Quelle

0
Premraj