2016-08-26 1 views
5

Einige Zeit bevor wir begannen zu schauen, wie man PingFederate in unsere Infrastruktur integriert.PingFederate und NGinx Integration und Einsatzmöglichkeiten

Unser anfänglicher Anwendungsfall ist folgender: Wir bieten mandantenfähigen Zugriff auf unsere Anwendung und verschiedene Firmen können verschiedene (ihre) Identitätsanbieter verwenden, um auf unsere Anwendung zuzugreifen.

fließen Gerade jetzt zu diesem Workflow beschränkt ist: Mutiple Idp(s) to one SP

jedoch in Zukunft fließen könnte

Zeit zu Many-to-many relations erweitert werden wir NGINX als Reverse Proxy verwenden, und basierend auf PingFed Dokumentation ist es total schwer Verstehen Sie die Einsatzmöglichkeiten, die wir gerade haben.

Basierend auf Diagramm, das von dieser guide PingFed and apache httpd integration

Es ist mehr oder weniger klar, wie diese Integration funktioniert für Apache genommen wurde. Hauptsächlich gibt es Apache PingFed Agent, der mit SSO-Flows auf Apache arbeitet und hauptsächlich "Session" validiert oder SSO-Fluss einleitet.

Processing Steps 
1. A user attempts to access a resource on the Apache server protected by the PingFederate 
Apache Agent. 
2. The user is redirected to the PingFederate server for authentication. 
(If an OpenToken session already exists, the user is granted immediate access.) 
3. The PingFederate server redirects the user’s browser to an IdP for authentication using either the 
SAML or WS-Federation protocols. The IdP partner authenticates the user and returns a SAML 
assertion. 
4. PingFederate validates the assertion and creates an OpenToken for the user including any 
configured attributes. PingFederate then redirects the browser, including the OpenToken, back to 
the Apache Agent. 
5. The Agent verifies the OpenToken and grants access to the protected resource. The User ID and 
any attributes from the OpenToken are exposed to the resource as HTTP Request Headers or Apache Environment Variables. 

Und vor allem auf Schritt 5 Apache-Agent leitet Informationen über Benutzer auf die tatsächliche Anwendung Anforderungsheader oder Apache-Umgebungsvariablen verwenden.

Basierend auf allen Info hier oben erwähnt sind 2 Fragen:

  1. Wie ähnlich Einsatz für PingFed und NGINX (für die Option, die in dieser Frage mit Apache beschrieben) machen?
  2. Ist es erforderlich, Web Server (Reverse Proxy) zusammen mit PingFederate zu verwenden. Oder kann Ping Federate auch als WebServer fungieren? Wenn ja, werden einige Links und zusätzliche Erklärungen geschätzt.

Antwort

2
  1. Es gibt keine PingFederate Agenten-Architektur von Ping Identity, dass nginx unterstützt. Ich würde vorschlagen, dass Sie in den "Agentenlosen Adapter" schauen (auch bekannt als Referenzadapter) und bauen Sie Ihr eigenes auf.
  2. Es ist nicht erforderlich, einen Reverse-Proxy mit PingFederate zu verwenden. PingFederate verwendet Jetty als seinen Web-Container und ist perfekt in der Lage Verkehr zu bedienen. Wir bieten Optionen für den umgekehrten Proxy, um Organisationen zu unterstützen, die die Anforderungen gegen das Öffnen eines Ports direkt auf einen Anwendungsserver haben.
+0

gut, es gibt: https://github.com/pingidentity/lua-resty-openidc/ –

+0

Sie also im Allgemeinen empfehlen, diesem Schema zu folgen (ohne NGINX): https://documentation.pingidentity.com/display/AIK12/Implementing+SP+Funktionalität? Und können Sie Link wie PingFed ist gut mit typischen Reverse-Proxy-Aufgaben bereitstellen: statische Inhalte Einlösung, SSL-Kündigung ..... Oder sollte ich auf Jetty-Funktionen aussehen? – user1459144

+0

lua-resty-openidc - Könnten Sie bitte ein bisschen Erklärung hinzufügen, wie es in dieser Aufgabe nützlich sein könnte? Ich bin mir nicht sicher, ob ich die Idee wirklich verstanden habe. – user1459144

4

Es lohnt sich endgültig Ideen Lösung und unsere Beobachtungen

  1. zu veröffentlichen Wenn wir PingFed zu integrieren versucht, bekamen wir ein Verständnis, dass pingFed sehr nativ mit Ping-Zugang integriert. Und Ping Access fungiert als Reverse-Proxy.

enter image description here

Und die Hauptidee, die Authentifizierung zwischen PingAccess und PingFed erfolgt OpenId Protokoll eine Verbindung verwendet wird.

  1. Es SAML
  2. sein kann es ein anderes SSO ProTool sein kann
  3. Ping Fed auch Seite dienen können sich anmelden und einige benutzerdefinierte mit Authentifizierung machen: Die Authentifizierung zwischen PingFederate und Auth-Provider kann durch sehr unterschiedliche Art und Weise erfolgen DB oder LDAP

jedoch Authentifizierungsablauf für die Anwendung wird die gleiche wie PingFed bleiben versteckt sich diese Komplexität