Est-il possible d'utiliser Shibboleth 2 avec Nginx + Passenger?

Réponses:

8

Pas avant que FastCGI ne prenne en charge le mode "authorizer". La documentation de Shibboleth 2 décrit une application FastCGI SP mais explique qu'elle ne fonctionne pas avec Nginx car il manque le mode "authorizer" nécessaire pour le filtre.

Un thread Nginx montre que beaucoup de gens veulent le mode "authorizer" mais c'est trop difficile à implémenter. Quand les gens essaient, ils abandonnent .

L'affiche Alex sur ce fil Rails partage le code Ruby pour l'authentification Shibboleth mais semble avoir utilisé Apache. D'autres affiches utilisant Nginx ne pouvaient toujours pas le faire fonctionner.

Turadg
la source
1

Oui c'est possible. Installez et configurez le nginx-http-shibbolethmodule pour nginx, qui permet à nginx de comprendre les parties de la spécification d'autorisation FastCGI que nginx peut prendre en charge ; assez pour que l'authentification Shibboleth réussisse. Votre installation nécessite une version FastCGI du fournisseur de services Shibboleth (SP) et une configuration appropriée de nginx pour communiquer avec les applications shibauthorizeret shibresponderFastCGI.

Toutes les applications et tous les environnements dorsaux peuvent être pris en charge d'une certaine manière, en supposant qu'ils prennent en charge les en-têtes HTTP ou les variables d'environnement définies à partir de nginx. La transmission des attributs Shibboleth à votre application se fait soit via les variables d'environnement nginx (via shib_request_set), soit via shib_request_use_headers on;les en-têtes HTTP (attention à l'usurpation d'identité). Je n'ai jamais utilisé Passenger pour héberger une application, mais dans votre cas, il semble que vous puissiez utiliser passenger_env_varet shib_request_setobtenir des attributs Shibboleth dans votre application.

Le processus d'installation complet se trouve dans le référentiel GitHub à https://github.com/nginx-shib/nginx-http-shibboleth .

Avertissement: je suis le mainteneur actuel de ce module.

Remarque : ce module remplace tous les articles de blog ou les entrées wiki précédents que j'ai pu écrire précédemment.

davidjb
la source