Aller au contenu

Accès par EZproxy

Cette page s’adresse aux bibliothèques et institutions qui donnent accès à une ressource ProxyNinja à travers leur EZproxy (hébergé par OCLC ou auto-hébergé), et aux éditeurs dont la ressource est atteinte par ce chemin.

EZproxy n’authentifie pas l’utilisateur auprès de ProxyNinja : il le fait sortir sur Internet avec l’adresse IP de l’institution. ProxyNinja reconnaît cette adresse, signe cette preuve, puis ouvre une session authentifiée sur la ressource. L’utilisateur n’a rien à saisir.

  1. L’utilisateur clique sur le lien fourni par sa bibliothèque. Il s’authentifie sur son EZproxy (CAS, Shibboleth, mot de passe… selon l’institution).
  2. EZproxy charge la page d’atterrissage ProxyNinja de la ressource (https://landing.gar.ninja/<route>) et réécrit son hôte dans sa propre forme proxifiée, par exemple landing-gar-ninja.mediatheque-exemple.idm.oclc.org.
  3. La page d’atterrissage transmet à ProxyNinja l’adresse IP de sortie de l’institution (signée) et l’origine proxifiée sous laquelle elle s’exécute.
  4. ProxyNinja vérifie la signature, identifie l’institution par son adresse IP, puis ouvre la session sur la ressource.
  5. L’utilisateur arrive sur la ressource : par défaut sur son URL directe, ou, si l’institution l’a demandé, sur son URL proxifiée (voir plus bas).

Le lien à publier dans le portail de la bibliothèque est le lien EZproxy classique, dont la cible est la route ProxyNinja de la ressource :

https://login.<institution>.idm.oclc.org/login?url=https://landing.gar.ninja/<route>
  • <institution>.idm.oclc.org : le domaine EZproxy de l’institution chez OCLC. Pour un EZproxy auto-hébergé, remplacez par son hôte de connexion.
  • <route> : le nom de route fourni par ProxyNinja pour la ressource (une route par ressource et par mode d’accès, par exemple editeur-ezproxy).

EZproxy ne réécrit que les hôtes qu’il connaît. La stanza de la ressource doit donc déclarer l’hôte de la ressource et la page d’atterrissage ProxyNinja, avec HJ pour que les liens et les en-têtes Location soient réécrits :

Title Nom de la ressource
URL https://landing.gar.ninja/<route>
HJ https://landing.gar.ninja
HJ landing.gar.ninja
HJ https://<hôte-de-la-ressource>
HJ <hôte-de-la-ressource>

Validez la stanza avec OCLC (ou votre administrateur EZproxy) : la forme exacte des hôtes proxifiés et le traitement des tirets (HttpsHyphens / NoHttpsHyphens) dépendent de la configuration de l’institution.

Pour que ProxyNinja reconnaisse l’institution, transmettez à l’équipe ProxyNinja :

  • l’adresse IP de sortie (ou la plage) de l’EZproxy, telle que vue depuis Internet ;
  • le suffixe d’hôte de l’EZproxy, sans schéma ni chemin, par exemple mediatheque-exemple.idm.oclc.org ;
  • le mode d’encodage des hôtes proxifiés : hyphens (les points de l’hôte d’origine deviennent des tirets, cas des EZproxy hébergés par OCLC) ou dots (l’hôte d’origine est conservé tel quel devant le suffixe).

ProxyNinja enregistre ces éléments pour l’institution (règles d’adresses IP, suffixe et mode). Sans suffixe enregistré, l’accès fonctionne mais le retour vers la ressource se fait sur son URL directe.

Étape 0 : vérifier la forme des hôtes proxifiés

Section intitulée « Étape 0 : vérifier la forme des hôtes proxifiés »

Avant d’activer le retour proxifié, demandez à la bibliothèque d’ouvrir, à travers l’EZproxy, l’URL directe de la ressource :

https://login.<institution>.idm.oclc.org/login?url=https://<hôte-de-la-ressource>/

Notez l’hôte exact affiché par le navigateur. Deux points sont à vérifier :

  • les points de l’hôte d’origine deviennent-ils des tirets (hote-ressource-fr.<institution>.idm.oclc.org) ou restent-ils des points ?
  • les tirets déjà présents dans l’hôte d’origine restent-ils simples ou sont-ils doublés ?

Puis naviguez dans la ressource sous cet hôte proxifié : les liens et les pages profondes doivent rester dans l’EZproxy. Si ce n’est pas le cas, le blocage se situe dans la stanza ou dans le site de la ressource, pas dans ProxyNinja.

Par défaut, après l’authentification, ProxyNinja renvoie l’utilisateur sur l’URL directe de la ressource (par exemple https://ressource.exemple.fr/). L’utilisateur quitte alors le tunnel EZproxy : la session ProxyNinja est ouverte, mais la navigation n’est plus proxifiée.

Le retour proxifié renvoie l’utilisateur sur la forme proxifiée de la même URL, par exemple https://ressource-exemple-fr.mediatheque-exemple.idm.oclc.org/. ProxyNinja ne réécrit l’URL de retour que si toutes ces conditions sont réunies :

  • la preuve d’adresse IP signée est vérifiée ;
  • l’adresse IP correspond à une institution enregistrée ;
  • la page d’atterrissage s’exécutait sous une origine https proxifiée ;
  • le suffixe de cette origine est enregistré pour cette institution ;
  • l’URL de retour configurée pour la ressource est une URL https valide.

Seuls l’hôte de l’URL de retour configurée et un suffixe enregistré servent à construire l’adresse proxifiée : aucune URL cible fournie par la requête n’est acceptée. Si une condition manque, le retour direct s’applique, sans erreur.

Pour que la ressource fonctionne sous l’hôte proxifié :

  • accepter l’échange de code OIDC lorsque le navigateur est sur le redirect_uri proxifié (l’hôte de retour n’est plus l’hôte direct) ;
  • utiliser des liens relatifs après connexion, ou des liens compatibles avec EZproxy ; un lien absolu vers l’hôte direct fait sortir l’utilisateur du tunnel ;
  • poser les cookies de façon compatible avec l’hôte proxifié.

L’utilisateur arrive sur l’URL directe, non proxifiée. C’est le comportement par défaut. Vérifiez, dans l’ordre : que le suffixe de l’institution est enregistré et activé chez ProxyNinja ; que l’adresse IP de sortie de l’EZproxy figure dans les règles de l’institution ; que la page d’atterrissage est bien chargée à travers l’EZproxy (l’hôte affiché pendant la redirection doit être proxifié).

L’utilisateur est refusé (« adresse non reconnue »). L’adresse IP de sortie vue par ProxyNinja ne correspond à aucune institution : demandez à l’administrateur EZproxy l’adresse de sortie réelle et transmettez-la.

La ressource s’affiche mal ou renvoie vers un domaine étranger. La stanza ne réécrit pas tous les hôtes utilisés par la ressource, ou la ressource utilise des liens absolus. Revenez à l’étape 0.