Plugin OpenID Connect Client pour SPIP

, par DnC

Un client OIDC pour SPIP. Permet à une application SPIP de proposer l’authentification avec OpenID Connect, à côté de l’authentification classique.

Les développeurs d’application SPIP pourront renforcer la protection de l’accès aux fonctionnalités réservées et à l’espace privé en limitant l’accès aux seules personnes enregistrées sur le serveur OIDC configuré [1].

Prérequis

- SPIP 3.x
- PHP 5.6, 7.0, 7.1, 7.2,
- ionCube encoder installé sur le serveur de l’application SPIP.

Inscriptions sur le serveur OAuthSD

L’application recevant le plugin doit être enregistrée sur le serveur OAuthSD.
La procédure est décrite ici : OpenID Connect : Lier une application cliente au serveur OAuthSD.

En suivant cette procédure :
- vous vous inscrirez en tant qu’auteur sur le serveur,

- vous enregistrerez votre application. L’enregistrement se fait ici : Inscrire une application cliente.
Vous devrez :

  • configurer l’adresse de retour (Redirect URI) sous la forme suivante : https://mon_application.com/?action=auth
  • Inscrire au moins le scope "openid".

- l’installation et la configuration du plugin répond à l’étape 3.

Installation et configuration du plugin

- Télécharger le plugin [2] : https://oa.dnc.global/plugins/oidcc...
- décompresser l’archive.
Le plugin s’installe ensuite selon la procédure d’installation manuelle de tout plugin SPIP :
- transférer le répertoire oidcclient dans le répertoire plugins,
- activer le plugin dans l’administration,
- ouvrir le formulaire de configuration et indiquer l’ID de l’application cliente et son secret fournis lors de l’enregistrement de l’application sur le serveur OAuthSD :

Utilisation

Entrez votre email puis :

Pour vous identifier avec OpenID Connect, assurez-vous que le champ "Mot de passe" est vide et actionnez le bouton "Valider".

Pour vous connecter avec la méthode standard, entrez un mot de passe avant d’appuyer sur le bouton "Valider". Notez que si vous vous connectez avec la méthode standard, et que votre login ou mot de passe est faux, vous serez redirigé vers la connexion avec OpenID Connect.

Commentaires et avertissements :

- Ce plugin n’est pas un remplacement ou un équivalent du plugin OpenID.

- Il reprend cependant le principe du plugin OpenID qui consiste à donner le choix entre la connexion avec OpenID Connect ou la méthode login/mot de passe classique. Merci aux auteurs d’OpenID à qui a été emprûntée la structure générale du plugin.

- OpenID Connect (OIDC) ne doit pas être confondu avec OpenID. La connexion automatique avec un identifiant OpenID universel n’existe pas dans le standard OIDC. OIDC offre une sécurité supérieure en permettant de construire un système propriétaire dans lequel les applications clientes et les serveurs, ainsi que les utilisateurs, sont limités à un ensemble bien identifié.

- Un utilisateur qui souhaite utiliser OIDC pour s’identifier doit être enregistré sur un serveur OIDC que lui a désigné le concepteur de l’application et dont l’URL est configurée dans l’administration de ce plugin.

- Un concepteur d’application qui utilise ce plugin doit enregistrer l’application en tant que client sur un serveur OpenID Connect. Si vous voulez le faire sur ce serveur OAuthSD, il faut vous inscrire comme auteur et administrateur d’applications puis enregistrer l’application.

- Dans l’état actuel du développement, le plugin n’a été testé qu’en relation avec le serveur OauthSD (sur ce site web).

- Ce site web implémente un démonstrateur d’OAuthSD ; le serveur peut être indisponible et les données enregistrées effacées à tout moment.

- Aucune garantie d’aucune sorte n’est attachée à l’utilisation de ce serveur, des plugins, du code et de la documentation fourni par DnC.

- Le plugin est distribué sous licence GPL3.

- une partie sensible du source du plugin n’est pas fournie pour des raisons de sécurité.

Notes

[1Pour l’instant, ce plugin n’a été validé que sur le serveur OAuthSD (ce serveur).

[2On voit donc que OAuthSD utilise ce plugin !