Extension:OpenID Connect

From mediawiki.org
This page is a translated version of the page Extension:OpenID Connect and the translation is 94% complete.
Outdated translations are marked like this.
Cette extension est maintenue par un membre de Groupe des acteurs de MediaWiki .
Cette extension nécessite que l'extension PluggableAuth soit d'abord installée.
Manuel des extensions MediaWiki
OpenID Connect
État de la version : stable
Implémentation Identité de l'utilisateur
Description Etend l'extension PluggableAuth pour fournir l'authentification en utilisant OpenID Connect
Auteur(s) Cindy Cicalese (cindy.cicalesediscussion)
Dernière version 8.0.2 (2024-04-11)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki >= 1.36.0
Modifie la base
de données
Oui
Composer mediawiki/openidconnect
Tables openid_connect
Licence Licence MIT
Téléchargement
  • $wgPluggableAuth_Config
  • $wgOpenIDConnect_UseRealNameAsUserName
  • $wgOpenIDConnect_UseEmailNameAsUserName
  • $wgOpenIDConnect_MigrateUsers
  • $wgOpenIDConnect_ForceLogout
Traduire l’extension OpenID Connect sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L'extension OpenID Connect étend l'extension PluggableAuth pour fournir une authentification qui utilise OpenID Connect.

Merci en particulier à jumbojett pour la bibliothèque PHP OpenID Connect utilisée par cette extension.

Installation

Préconditions

Cette extension nécessite que PluggableAuth soit déjà installé. Il faut aussi disposer de l'extension PHP CURL et de la bibliothèque PHP OpenID Connect, qui peut être installée avec composer. Si vous faites la mise à jour à partir de la version 4.x ou inférieure vers la version 6.x ou supérieure, vous devrez d'abord mettre à jour vers la version 5.x.

Extension

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé OpenIDConnect dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'OpenIDConnect' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Installez les dépendances.
  • Configurez si nécessaire.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Dépendances

Ajoutez la ligne "extensions/OpenIDConnect/composer.json" au fichier composer.local.json dans le répertoire racine de votre wiki, par exemple

{
	"extra": {
		"merge-plugin": {
			"include": [
				"extensions/OpenIDConnect/composer.json"
			]
		}
	}
}

Puis, exécutez composer update dans le répertoire racine de votre wiki. Cela permettra d'installer toutes les dépendances (comme la bibliothèque PHP OpenID Connect de jumbojett).

Configuration

Paramètres

La plupart des configurations pour OpenID Connect sont gérées par un fichier situé à /.well-known/openid-configuration[1] sur le domaine du fournisseur. Il contient la plupart des paramètres nécessaires pour gérer l'authentification.

Drapeau Valeur par défaut Description
$wgPluggableAuth_Config (voir Configuration de PluggableAuth) [] tableau obligatoire de tableaux qui spécifient les émetteurs OpenID Connect et leur configuration. Le champ data du tableau contient un tableau qui a les clés suivantes :
providerURL obligatoire (obligatoire) URL de l'émetteur (comme https://accounts.google.com/ pour Google, https://api.slack.com/ pour Slack) utilisée pour trouver le fichier bien connu mentionné ci-dessus (par exemple https://accounts.google.com/.well-known/openid-configuration pour Google)
clientID obligatoire
clientsecret obligatoire
proxy optionnel (URL optionnelle)
scope optionnel (optionnel) chaîne ou ensemble de chaînes à transmettre à l'émetteur, valeur par défaut [ 'openid', 'profile', 'email' ]
preferred_username optionnel (optionnel, c'est nom de l'attribut nom d'utilisateur préféré que l'émetteur doit utiliser; il indique qu'il existe un attribut portant ce nom fourni par l'émetteur et dont la valeur sera le preferred username pour cet utilisateur; valeur par défaut : preferred_username; mettre à null ou une chaîne vide si vous ne voulez pas utiliser d'attribut de nom préféré d'utilisateur)
verifyHost optionnel (booléen optionnel pour activer ou désactiver la vérification de l'hôte; valeur par défaut : true)
verifyPeer optionnel (booléen optionnel pour activer ou désactiver la vérification paire SSL; valeur par défaut: true)
authparam optionnel (tableau associatif optionnel de paramètres d'authentification à transmettre à l'émetteur)
providerConfig optionnel (optionnel, tableau associatif utilisé pour modifier les points d'accès et les autres attributs d'un fournisseur)
issuerValidator optionnel boolean function that takes one string parameter, the issuer, and returns whether the issuer is valid (version 7.1.0+)
preferredUsernameProcessor optionnel callable that takes two parameters (preferred username string and the array of attributes returned from the identity provider) and returns a possibly modified preferred username to use for a new user (version 7.2.0+)
realnameProcessor optionnel callable that takes two parameters (real name string and the array of attributes returned from the identity provider) and returns a possibly modified real name to use for a new user (version 7.2.0+)
emailProcessor optionnel callable that takes two parameters (email address string and the array of attributes returned from the identity provider) and returns a possibly modified email address to use for a new user (version 7.2.0+)
useRandomUsernames optionnel boolean to indicate whether to generate a random unique identifier to use for the username of a new user if no preferred username is provided (rather than the default of using User followed by a unique integer) (version 8.0.0+)
$wgOpenIDConnect_UseRealNameAsUserName false Si un nouvel utilisateur est créé dans la base de données et qu'aucun nom préféré n'a été fourni par l'émetteur ou que preferred_username est défini à null ou à une chaîne vide, la valeur true de ce drapeau indique que le vrai nom d'utilisateur (s'il est fourni par le l'émetteur) doit être utilisé comme nouveau nom d'utilisateur. If set to true, and no preferred username was provided by the issuer "User" for the first and starting with the second user "User" followed by a number will be used, e.g., "User", "User1", "User2", etc. The same naming happens if this parameter is set to false.
$wgOpenIDConnect_UseEmailNameAsUserName false Si un nouvel utilisateur est créé dans la base de données et qu'aucun nom préféré n'a été fourni par l'émetteur ou que preferred_username est défini à null ou à une chaîne vide, et que soit le nom réel n'est pas fourni par le l'émetteur ou que $wgOpenIDConnect_UseRealNameAsUserName n'est pas défini ou qu'il vaut false, la valeur false de ce drapeau indique que la portion du nom dans l'adresse courriel de l'utilisateur (si celle-ci est fournie par le l'émetteur) doit être utilisé comme nouveau nom d'utilisateur. This parameter cannot be set to true at the same time $wgOpenIDConnect_UseRealNameAsUserName is set to true. In this case this setting will be ignored.
$wgOpenIDConnect_MigrateUsersByUserName false Si un utilisateur existe déjà dans la base de données avec la même adresse courriel que l'utilisateur authentifié et a les valeurs null pour le sujet et l'émetteur, utilisez cet utilisateur en définissant le sujet et l'émetteur dans la base de données correspondant à ceux de l'utilisateur authentifié. Ceci est utile lorsque le wiki utilisait précédemment un mécanisme d'authentification différent. If neither this parameter nor $wgOpenIDConnect_MigrateUsersByEmail are set to true the settings for user creation will be used as described above.
$wgOpenIDConnect_MigrateUsersByEmail false Si un utilisateur existe déjà dans la base de données avec la même adresse courriel que l'utilisateur authentifié et a les valeurs null pour le sujet et l'émetteur, utilisez cet utilisateur, en définissant le sujet et l'émetteur dans la base de données correspondant à ceux de l'utilisateur authentifié. Ceci est utile lorsque le wiki a précédemment utilisé un mécanisme d'authentification différent. If neither this parameter nor $wgOpenIDConnect_MigrateUsersByUserName are set to true the settings for user creation will be used as described above.
$wgOpenIDConnect_ForceReauth false Lorsque l'utilisateur se déconnecte du wiki, cela permet de forcer la réauthentification avec le fournisseur d'identité lors de la prochaine reconnexion, même s'il n'a pas été déconnecté du fournisseur.
$wgOpenIDConnect_SingleLogout false Lorsque l'utilisateur se déconnecte du wiki, il sera déconnecté également du fournisseur d'identité. Ceci n'est pas pris en charge par tous les fournisseurs d'identité (par exemple Google).
$OpenIDConnect_PreferredUsernameProcessor null Callable that takes two parameters (preferred username string and the array of attributes returned from the identity provider) and returns a possibly modified preferred username to use for a new user; this value is only used if no value is provided for preferredUsernameProcessor in the config data section (version 7.2.0+)
$OpenIDConnect_RealNameProcessor null Callable that takes two parameters (real name string and the array of attributes returned from the identity provider) and returns a possibly modified real name to use for a new user; this value is only used if no value is provided for realnameProcessor in the config data section (version 7.2.0+)
$OpenIDConnect_EmailProcessor null Callable that takes two parameters (email address string and the array of attributes returned from the identity provider) and returns a possibly modified email address to use for a new user; this value is only used if no value is provided for emailProcessor in the config data section (version 7.2.0+)
$OpenIDConnect_UseRandomUsernames false Boolean to indicate whether to generate a random unique identifier to use for the username of a new user if no preferred username is provided (rather than the default of using User followed by a unique integer) and no value is provided for useRandomUsernames in the config data section (version 8.0.0+)

Lors de la configuration du fournisseur d'identité, il demandera une URL de redirection ou une URL de callback. Utilisez l'URL complète vers la page Special:PluggableAuthLogin pour cette valeur.


Connecter un émetteur unique

Exemple simple de pour configurer $wgPluggableAuth_Config avec un émetteur unique :

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://id.mycompany_abc.com/connect/',
        'clientID' => '.....',
        'clientsecret' => '.....'
    ]
];

Connecter les émetteurs multiples

Exemple pour configurer $wgPluggableAuth_Config pour plusieurs émetteurs :

$wgPluggableAuth_Config["My Company's Connect Server"] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://id.mycompany_abc.com/connect/',
        'clientID' => '.....',
        'clientsecret' => '.....'
    ]
];
$wgPluggableAuth_Config["Partner Company's Connect Server"] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://id.partnercompany_def.com/connect/',
        'clientID' => '.....',
        'clientsecret' => '.....'
    ]
];

À partir de la version 7.0.0, la synchronisation de groupe est possible en utilisant la fonctionnalité fournie par l'extension PluggableAuth. Pour plus d'informations sur la configuration de la synchronisation de groupe, voir la documentation PluggableAuth.


Exemples

Google

Configurer l'émetteur

  1. Créez un projet en utilisant la console de développement de Google.
  2. Cliquez sur le projet, cliquez sur le menu hamburger (trois lignes horizontales en haut à gauche) et cliquez sur APIs & Services -> Credentials (API et Services > Identifiants) dans le menu.
  3. Cliquez sur le bouton Create credentials -> OAuth client ID et sélectionnez Web application ( Créer des identifiants > ID client OAuth). Remplissez les informations pour Configurer l'écran de consentement et sauvegardez.
  4. Fournir l'URI de redirection dans Authorized redirect URIs[2]:
    https://[URLofWiki]/wiki/Special:PluggableAuthLogin
    
  5. Cliquez sur Create Client ID.
  6. Notez les Client ID et Client Secret déjà assignés.

Configurer l'extension

L'émetteur Google est désormais configuré. Ajoutez la configuration correspondante à votre fichier LocalSettings.php, en remplissant les champs clientID et clientsecret avec les valeurs attribuées ci-dessus.

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://accounts.google.com',
        'clientID' => '.....',
        'clientsecret' => '.....',
    ]
];

Vous pouvez également attribuer d'autres valeurs telles que proxy et authparam.

Azure Active Directory

Azure Active Directory s'appelle maintenant Microsoft Entra ID.

Configurer l'émetteur

  1. Dans le portail Azure, allez à Active Directory puis à App Registrations
  2. Enregistrer une nouvelle demande
    1. Donnez un nom
    2. De manière similaire indiquez Accounts in this org directory only
    3. Donner l' URI de redirection :[2]
      https://[URLofWiki]/wiki/Special:PluggableAuthLogin
      
  3. Dans la nouvelle application, allez à Certificates and secrets et créez un nouveau secret Client

Configurer l'extension

En utilisant le Application (client) ID, l'ID du répertoire (locataire) et le secret de l'application, remplissez votre fichier LocalSettings.php :

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://login.microsoftonline.com/[tenantID]/v2.0/',
        'clientID' => '[Application (Client) ID]',
        'clientsecret' => '[Secret from Certs and Secrets]'
    ]
];
$wgOpenIDConnect_UseRealNameAsUserName = true;

Microsoft Entra ID

Voir Azure Active Directory

Keycloak

Keycloak page d'acueil.

Configurer l'émetteur

Hypothèses :

  • Votre nom Keycloak realm est acme
  • Votre URL et votre port Keycloak sont https://keycloak.local:8080
  • Votre identifiant client Keycloak vaut mediawiki
  • Votre secret client généré automatiquement est 12345

Configurer l'extension

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://keycloak.local:8080/realms/acme',
        'clientID' => 'mediawiki',
        'clientsecret' => '12345'
    ]
];

Dépannage

  • Si vous rencontrez des problèmes, comme "The provider {$param} could not be fetched. Make sure your provider has a well known configuration available.", votre URI[3] est erroné. Vous pouvez vérifier l'exactitude en appelant https://keycloak.local:8080/realms/acme/.well-known/openid-configuration dans votre navigateur. Si vous obtenez un JSON fourni, le chemin est correct.
    • Une autre façon de vérifier providerURL est de le comparer à Redirect URI sur Keycloak>Identity Providers>keycloak-oidc, c'est-à-dire : https://keycloak.local:8080/realms/acme/broker/keycloak-oidc/endpoint. Pour providerURL, vous avez besoin de la portion jusqu'à un niveau inférieur à realms.
  • Assurez-vous que le URI de redirection fourni par ce greffon OIDC[4] est déclaré valide pour votre serveur keycloak sous acme -> Clients -> mediawiki -> Paramètres -> valid redirect uris. Pour des tests, vous pouvez ajouter un joker "*".

Okta

Configuration de l'émetteur

Configuration de Okta OIDC app

Type de droits attribués : (tous)
URIs de redirection de connexion : c'est l'URL complète vers Special:PluggableAuthLogin, par exemple https://www.example.com/wiki/index.php/Special:PluggableAuthLogin
Flux de connexion : "Redirect to app to initiate login (OIDC compliant)"
URI initiale de connexion : c'est l'URL complète vers Special:UserLogin, par exemple https://www.example.com/wiki/index.php/Special:UserLogin

Configurer l'extension

Vous devez spécifier l'openid, le profil et le but du courriel pour communiquer avec Okta. Si vous omettez le but n'est pas référencé, Okta sera heureux d'authentifier vos utilisateurs mais ne vous restituera aucun résultat utile.

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://your-okta-org.okta.com',
        'clientID' => '(paste the client ID Okta assigned your new app here)',
        'clientsecret' => '(paste the client secret Okta assigned your new app here)'
     ]
 ];

Utilisateurs créés automatiquement

Si vous souhaitez profiter des avantages de la création automatique des utilisateurs de MediaWiki (par exemple $wgGroupPermissions['*']['autocreateaccount'] = true;), sachez que les demandes avec utilisateur préféré d'Okta ont le format d'une adresse courriel.

Si vous ne voulez pas que vos utilisateurs aient un caractère @ dans leur nom d'utilisateur (c'est interdit par défaut dans MediaWiki), vous devrez spécifier une demande alternative à utiliser via la clé preferred_username dans votre $wgPluggableAuth_Config.

Permettre @ dans les noms d'utilisateur peut casser la compatibilité inter-wiki de votre wiki (si vous l'utilisez). Pour permettre l'utilisation du caractère @, il suffit de définir $wgInvalidUsernameCharacters = ' '; et $wgUserrightsInterwikiDelimiter = '#'; dans LocalSettings.php.

Notes

Note Note : À la date à laquelle cet exemple a été écrit, il y a un bogue dans la bibliothèque PHP OpenID Connect qui fait que les fournisseurs OIDC plus stricts comme Okta rejettent certaines demandes. Cette question devrait être résolu à l'avenir lorsque la bibliothèque sera mise à jour pour intégrer la modification. La solution est d'ajouter une ligne de code à $MEDIAWIKI_ROOT/extensions/OpenIDConnect/vendor/jumbojett/openid-connect-php/src/OpenIDConnectClient.php ainsi : juste en-dessous : unset($token_params['client_secret']); ajouter simplement : unset($token_params['client_id']); # voir https://github.com/jumbojett/OpenID-Connect-PHP/pull/208/commits/dd44c1ca7e45d35dcd8f32ea503b545149bc6562 (c'est corrigé dans la version 0.9.8)

Pour authentifier vos utilisateurs avec Okta, vous devez d'abord créer une nouvelle application OIDC dans votre organisation Okta et l'attribuer aux utilisateurs ou groupes concernés, etc.

Gitlab

Configurer l'émetteur

  • Connectez-vous à la zone d'administration de Gitlab
  • Allez dans Applications -> Nouvelle application
    • Name: MediaWiki
    • Redirect URI: <wiki server>/wiki/Special:PluggableAuthLogin
    • Trusted: yes
    • Confidential: yes
    • Scopes: openid, profile, email
  • Soumettre
  • Copiez Application ID et Secret dans LocalSettings.php

Configurer l'extension

Dans LocalSettings.php

// Extension PluggableAuth
wfLoadExtension( 'PluggableAuth' );
$wgPluggableAuth_EnableLocalLogin = true; // initialiser à false pour désactiver les connexions locales si nécessaire

// Extension OpenIDConnect
wfLoadExtension( 'OpenIDConnect' );
$wgPluggableAuth_Config['Login with your Gitlab Account'] = [
   'plugin' => 'OpenIDConnect',
   'data' => [
       'providerURL' => '...',  // Ajouter ici votre serveur gitlab (page d'accueil)
       'clientID' => '...',     // Insérez ici l'identifiant de l'application Gitlab
       'clientsecret' => '...', // Insérez ici le secret de Gitlab
       // Surnom éventuel
       // Autre nom éventuel
       'preferred_username' => 'nickname'
   ]
];

Vous pouvez trouver plus d'informations dans les documents de Gitlab sur OpenID Connect Provider.

Amazon Cognito

Amazon Cognito est un service d'identité utilisateur de AWS[5].

Configurer l'émetteur

Hypothèses :

  • Votre identifiant de groupe d'utilisateurs Amazon Cognito est us-west-2_XdLg34nAA
  • Votre région AWS est us-west-2
  • Votre identifiant client vaut mediawiki
  • Votre secret client généré automatiquement est 12345

Configurer l'extension

$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://cognito-idp.us-west-2.amazonaws.com/us-west-2_XdLg34nAA',
        'clientID' => 'mediawiki',
        'clientsecret' => '12345'
    ]
];

Pour des instructions détaillées sur la configuration d'Amazon Cognito pour ce cas d'utilisation, voir https://medium.com/@robert.broeckelmann/openid-connect-authorization-code-flow-with-aws-cognito-246997abd11a

NextCloud

Voir la page Nextcloud.

Configurer l'émetteur

Hypothèses :

  • Exécution de Nextcloud version 24, ou Nextcloud All-In-One v3.0.0
  • L'application OIDC Identity Provider v0.2.6 est installée dans Nextcloud. https://github.com/H2CK/oidc
  • Votre nextcloud est exécuté à partir du domaine my.nextcloud.com
  • URL publique: https://my.nextcloud.com/.well-known/openid-configuration est redirigé vers <your internal nextcloud server>/index.php/apps/oidc/openid-configuration par, par exemple, nginx ou un autre proxy inverse.
  • A partir du compte administrateur Nextcloud, dans Settings > Security > "Open ID Connect clients" ajoutez un client avec les détails suivants
    • Nom : wiki
    • URI de redirection : SomeWrongURI
    • Algorithme de signature : RS256
    • Entrer : confidential lorsque vous cliquez sur Ajouter, cela fournira la chaîne Client Identifier et la chaîne Secret. Entrez ces valeurs dans Localsettings.php pour myGeneratedID et myGeneratedSecret comme ci-dessous.

Configurer l'extension

wfLoadExtension( 'PluggableAuth' );
$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgPluggableAuth_EnableAutoLogin = true; // maintenant, l'utilisateur n'a plus le bouton  'login'/'logout'.

wfLoadExtension( 'OpenIDConnect' );
$wgPluggableAuth_Config[] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'https://my.nextcloud.com',
        'clientID' => 'myGeneratedID',
        'clientsecret' => 'myGeneratedSecret'
   ]
];

Allez maintenant sur la page Wikipedia, cela vous redirigera sur votre serveur Nextcloud. Le serveur Nextcloud indiquera que la page de destination est incorrecte et qu'il vous faut communiquer avec l'administrateur pour ce client. Copiez l'URL de cette page, ainsi que la partie argument de redirect_uri. Utilisez un site en ligne pour décoder l'URL http.

Par exemple :

URL: https://my.nextcloud.com/apps/oidc/authorize?response_type=code&redirect_uri=https%3A%2F%2Fmy.wiki.com%2Findex.php%2FSpeciaal%3APluggableAuthLogin&client_id=xvLZjUpAvxn

URI de redirection décodée : https://my.wiki.com/index.php/Speciaal:PluggableAuthLogin

Utilisez la chaîne trouvée dans les paramètres Nextcloud OpenID pour le wiki client, et mettez à jour Redirection URI en remplaçant la chaîne SomeWrongURI précédemment entrée, par la chaîne trouvée.

Notes de version

Version 8.0.2
  • Use case insensitive email comparison for email migration
  • Improved random username generation
Version 8.0.1
Version 8.0.0
  • Allow multiple identity providers to map to a single user (T361877)
Version 7.2.0
Version 7.1.0
  • Support custom issuer validator (T360249)
Version 7.0.2
  • Utilisez le jeton ID d'identification pour obtenir les demandes lors de l'authentification (T348931)
Version 7.0.1
  • Permettre à l'attribut de configuration preferred_username d'être null ou vide (T339311)
Version 7.0.0
  • Rendre compatible avec PluggableAuth 7.0.0
  • Ajouter une déconnexion unique optionnelle ($wgOpenIDConnect_SingleLogout)
  • Remplacer ForceLogout (qui était cassé) par ForceReauth ($wgOpenIDConnect_ForceReauth)
  • Ajouter une fonction pour obtenir un jeton d'accès avec un jeton de rafraîchissement
  • Utilisez le nouveau cadre de population de groupe PluggableAuth; prend en charge la récupération des attributs comprenant des groupes
  • Améliorations du code
  • Correction de bogues :
    • T307353: Mauvaise condition de requête dans la migration du nom d'utilisateur
Version 6.2
  • Mise à jour de la version de la bibliothèque jumbojett/openid-connect-php à 0.9.10
  • Remplacer User::idFromName obsolète
Version 6.1
  • Vérifier que l'accroche pour populer les groupes n'est exécutée que pour les instances du greffon OpenID Connect
Version 6.0
  • Mise à jour pour être compatible avec PluggableAuth version 6.0
Version 5.4
  • Mise à jour de jumbojett/openid-connect-php à la version 0.9.1
  • Bogue corrigé en essayant l'autentification avec Okta quand des paramètres supplémentaires sont envoyés dans la requête et faisant échouer la demande
Version 5.3
  • Bogue corrigé lors de la migration des noms d'utilisateur commençant par une minuscule (T249630)
Version 5.2
  • Ajout d'options de configuration optionnelles pour désactiver la vérification des noms d'hôte et des certificats, pour une utilisation dans des environnements de développement avec des certificats auto-émis
Version 5.1
  • Ajout de la génération de l'URL complète de redirection afin que la bibliothèque PHP OpenID Connect n'ait pas besoin de la deviner n'ayant parfois pas assez d'informations pour faire correctement
Version 5.0
  • Déplacement des colonnes subject et issuer de la tables user vers openid_connect (exige une mise à jour de la base de données)
  • Ajout du support pour Postgres
Version 4.1
  • Ajout de l'espace de noms pour la classe de la bibliothèque
Version 4.0
  • Ajout de message d'erreur optionnel à authenticate()
  • Numéro de version incrémenté pour se synchroniser avec les extensions PluggableAuth et SimpleSAMLphp
Version 2.3
  • Correction de l'implémentation de la liste blanche
  • Modifier les drapeaux de migration pour permettre la migration par l'adresse courriel en plus de la migration par nom d'utilisateur
Version 2.2
  • Corrections liées à la mise à jour de PluggableAuth MediaWIki 1.27
  • Conventions de codage des tableaux
Version 2.1
  • Mise à jour de MediaWiki 1.27 pour la gestion de session
  • Ajout des valeurs par défaut pour les variables de configuration à extension.json
Version 2.0
  • Mise à jour de l'enregistrement des extensions
  • Modification des variables de configuration pour utiliser le préfixe wg
  • Ajout de composer.json pour que la bibliothèque OpenID Connect puisse utiliser composer
Version 1.2
  • Ajout de la possibilité de spécifier les paramètres auth et ajout du support pour les préfixes des table
Version 1.1
  • Support ajouté pour Google
Version 1.0
  • Version initiale


Problèmes connus

  • Les wikis qui utilisent des URLs de la forme https://example.org/w/index.php?title=Page_title (c'est-à-dire qui ont le titre de la page est fourni comme paramètre de la requête) ne seront pas redirigés correctement pour compléter le flux de l'authentification. Au lieu de cela, les URL doivent être de la forme https://example.org/w/index.php/Page_title, ce qui peut être réalisé en utilisant URLs courtes ou en définissant $wgArticlePath de manière appropriée.
  • Cette extension peut ne pas fonctionner correctement avec $wgMainCacheType = CACHE_ACCEL;. Dans ce cas, vous devez également définir $wgSessionCacheType = CACHE_DB; (voir tâche T147161).
  • Cette extension ne fonctionne pas sur les ports non standard à moins que vous ne mettiez manuellement à jour le client Openid connect sous-jacent, voir: jumbojett/OpenID-Connect-PHP issue 58 sur GitHub. Ce problème s'applique également lors de la connexion à d'autres serveurs web que IIS.
  • Lors de l'exécution du script de maintenance createAndPromote.php, les extensions PluggableAuth et OpenID Connect doivent être désactivées en commentant leur appel de wfLoadExtension().
  • This extension does not support custom well-known endpoints. This means Azure Active Directory B2C's OpenID Connect authentication flow is currently not supported.

Notes

  1. openid.net: OpenID Provider Configuration Request
  2. 2.0 2.1 Notez que le lien pour l'URI de redirection autorisée doit être localisé, par exemple si vous définissez la langue de l'instance de votre wiki à 'de' ($wgLanguageCode = 'de';) vous devez spécifier https://[URLofWiki]/wiki/Spezial:PluggableAuthLogin.
  3. Identificateur de ressource uniforme (URI)
  4. OpenID Connect (OIDC)
  5. Amazon Web Services (AWS)

Voir aussi