2013-10-18 12 views
11

Ich habe Schwierigkeiten, eine SAML2.0-Authentifizierung für eine REST-API mit einem Gateway zu entwerfen. REST wird zwischen meinem Backend und meiner Anwendung verwendet. Ich benutze Java Servlet Filter und Spring.REST API-Authentifizierung mit SAML

Ich sehe zwei Möglichkeiten:

  1. die SAML-Token in den Header jedes Mal hinzufügen.

  2. Einmal mit SAML authentifizieren und dann eine Sitzung oder eine ähnliche (sichere Konversation) zwischen dem Client und dem Gateway verwenden.

Fall 1: Es ist eine gute Lösung, weil wir noch RESTful sind aber:

  • SAML-Token sind ziemlich groß. Es ist möglicherweise ein Problem aufgrund der großen Header-Größe.
  • Die Wiedergabe von Tokens ist nicht der beste Weg für Sicherheitsbedenken.

Fall 2: Es ist nicht mehr staatenlos und ich muss eine Verbindung mit dem Client verwaltet. Da ich ein Gateway verwende, können die zugrunde liegenden Dienste immer RESTful sein.

Fall 2 sucht nach der besseren Wahl trotz der Tatsache, dass es nicht den Ruhezwängen folgt.

Hat jemand das schon gemacht und mir ein paar Hinweise gegeben (für Design oder Implementierung)?

Gibt es einen besseren Weg, es mit SAML zu tun?

Jede Hilfe oder Beratung ist willkommen.

+0

Verwenden Sie den zweiten Ansatz. Viele Diensteanbieter werden die wiedergegebenen Token trotzdem ablehnen. Ist dies zur Authentifizierung von Benutzern oder Ihrer Client-Software? – tom

+0

Es ist Benutzer zu authentifizieren – Nereis

+0

Sie können auch sehen, mit OAuth2 für die gleiche, wenn Sie SAML abwechselnd geöffnet haben. –

Antwort

11

Es ist immer noch Entwurf, aber: das OAuth2 SAML-Trägerprofil kann eine mögliche Lösung sein. http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-17

ein SAML2 verwenden zu einem OAuth2 Provider, dann rufen Sie Ihren Dienst mit dem OAuth2 Token zu authentifizieren.

+0

Oh, davon würde ich nicht ausgehen. – tom

+1

Es scheint der Weg zu sein. Mehrere große Namen des Webs verwenden OAuth mit JSON-Web-Token (JWT), um ihren REST-Service zu sichern. Siehe auch diesen Entwurf: [http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-05#page-21](http://tools.ietf.org/html/ Entwurf-ietf-oauth-json-web-token-05 # page-21) und zu Sicherheitstokendienst (STS) keyworld – Nereis

+0

Also, wie benutze ich SAML2, um einen OAuth2-Anbieter zu authentifizieren? –