Quelque temps avant, nous avons commencé à chercher comment intégrer PingFederate dans notre infrastructure.
Notre cas d'utilisation initial est le suivant : nous fournissons un accès à notre application à plusieurs locataires et différentes entreprises peuvent utiliser différents fournisseurs d'identité pour accéder à notre application.
Actuellement, le flux est limité à ce flux de travail : Idp(s) multiple(s) vers un SP
Cependant, à l'avenir, le flux pourrait être étendu à Relations entre plusieurs personnes
Actuellement, nous utilisons NGINX comme Reverse Proxy et, d'après la documentation de PingFed, il est totalement difficile de comprendre les options de déploiement dont nous disposons actuellement.
Basé sur le diagramme qui a été pris de ce guide
La façon dont cette intégration fonctionne pour apache httpd est plus ou moins claire. Il y a principalement l'agent PingFed d'apache qui fonctionne avec les flux SSO sur apache et principalement il valide la "session" ou initie le flux SSO.
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.
Et principalement à l'étape 5, l'agent Apache transmet les informations sur l'utilisateur à l'application réelle en utilisant les en-têtes de requête ou les variables d'environnement Apache.
Sur la base de toutes les informations mentionnées ci-dessus, voici deux questions :
- Comment faire un déploiement similaire pour PingFed et NGINX (pour l'option décrite dans cette question avec apache httpd) ?
- Est-il nécessaire d'utiliser un serveur Web (Reverse Proxy) avec PingFederate ? Ou Ping Federate peut également faire office de serveur Web ? Si oui, des liens et des explications supplémentaires seraient les bienvenus.