/ / Was sind die führenden Verbundidentitätstechnologien? - oauth, openid, saml, anspruchsbasierte Identität, Verbundidentität

Was sind die führenden Technologien für föderierte Identitäten? - oauth, openid, saml, Anspruchsidentität, föderierte Identität

Ich muss herausfinden, wie wir es machen werdenAutorisierung und Authentifizierung für unsere Anwendung. Was sind die drei wichtigsten Technologien zur Implementierung von Autorisierung und Authentifizierung? Wir möchten, dass sich unsere Anwendung nicht auf Sitzungen stützt. Es wäre wünschenswerter, Token zu verwenden. Ich muss einen Identitätsanbieter erstellen und habe so etwas noch nie gemacht. Bitte helfen Sie!

Antworten:

4 für die Antwort № 1

Wie OhadR sagt, haben Sie es geschafft, Ihren Beitrag zu markierenmit den Top 3 Standards - OAuth, OpenID und SAML. Ich bin jedoch nicht mit seiner Aussage über den Grad der Komplexität von SAML einverstanden. Zusätzlich zu Ihren Aussagen: "Wir möchten, dass unsere Anwendung sich nicht auf Sitzungen stützt. Es wäre wünschenswerter, Token zu verwenden. Ich muss einen Identitätsprovider erstellen ... "ist ein wenig im Widerspruch zueinander. Sie sprechen in einem Atemzug von" Ihrer Bewerbung ", sagen aber dann, Sie müssen einen Identitätsprovider in einem anderen erstellen ... Also, ich "Ich werde nur allgemein sprechen. Um offen zu sein, arbeite ich für Ping Identity - wir verkaufen ein Produkt namens PingFederate, das all dies erledigt.

Mit OpenID und OAuth gibt es eine MengeÄhnlichkeit (insbesondere, da OpenID Connect im Wesentlichen OAuth2 mit einer oder zwei Erweiterungen ist). Verschiedene Unternehmen verwenden diese auf unterschiedliche Weise (z. B. Google, Facebook und Twitter). Natürlich versuchen alle, Ihr bevorzugter Identitätsanbieter zu sein. Von diesen drei Anbietern können Sie Google jedoch auch als Dienstanbieter verwenden. Diese beiden Technologien sind "tokenbasiert", dh Ihre Anwendung generiert und bestätigt entweder Token zur Authentifizierung (und möglicherweise zur Autorisierung), wenn Sie der Identitätsanbieter sind, oder sie überprüft die Gültigkeit dieses Tokens mit dem Identitätsanbieter innerhalb eines festgelegten Zeitraums von wenn Sie der Diensteanbieter sind.

Mit SAML sprechen Sie über Sitzungen (die SieDer Benutzer erscheint in Ihrer Anwendung und sendet den Benutzer aus, um sich für diese Sitzung zu authentifizieren und mit einer authentifizierten Sitzung und möglicherweise einigen Attributen zurückzukehren, die Ihrer Anwendung bei der Autorisierung helfen sollen.

Soweit zu verwenden ... Hier wird es schwieriger. SAML ist definitiv da draußen. Fast jeder echte Dienstanbieter ermöglicht Ihnen die Verwendung von SAML. Viele Unternehmen haben Identitätsanbieter eingeführt. Wenn Sie eine Anwendung erstellen, die von Unternehmen verwendet werden soll, können Sie sicher sein, dass Ihre Anwendung SAML verwendet. OpenID und OAuth sind zwar neuer, daher haben sie vom IdP-Standpunkt aus weniger Unternehmen zur Verfügung gestellt - es muss viel konfiguriert werden (Speicherung der Token und der Bereiche). Ich würde raten, dass nur einer von fünf (oder weniger) Unternehmen, die SAML als IdP ausführen, führen auch OAuth oder OpenID aus. Gleiches gilt für Unternehmen, die als Dienstanbieter fungieren.

Letztendlich müssen Sie Ihre Entscheidung auf der Grundlage treffenauf Ihren Anwendungsfall. Sind Sie Dienstleister oder Identitätsanbieter? Woran möchten Sie anschließen? Was bieten diese Unternehmen als Dienstleister oder Identitätsanbieter an? Beginnen Sie mit SAML und verzweigen Sie später zu OAuth / OpenID, wenn Ihre Verbindungen es verfügbar machen?

Viel Glück und hoffe, ich habe geholfen.


1 für die Antwort № 2

AFAIK die drei, die Sie markiert haben, sind die häufigsten: oAuth, SAML und OpenID. Diese 3 sind keine "Technologien", sondern Spezifikationen. Jeder hat seine Vor- und Nachteile ...

Wenn Sie im Begriff sind, Ihre eigene Identität zu implementierenProvider, ich würde die oAuth vorziehen - es wird einfacher für Sie zu implementieren. SAML IDP ist viel komplizierter - Shioboleth ist nicht einfach zu implementieren. Sie können die Spring-Erweiterung für die oAuth 2.0-Implementierung verwenden.

HTH.