Extension:OpenID Connect
Stav rozšíření: stabilní |
|
---|---|
Implementace | Identita uživatele |
Popis | Rozšiřuje rozšíření PluggableAuth o ověřování pomocí OpenID Connect. |
Autoři | Cindy Cicalese (cindy.cicalese diskuse ) |
Nejnovější verze | 8.3.0 (2025年02月23日) |
Zásady kompatibility | Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
Změny v databázi | Ano |
Tabulky | openid_connect |
Licence | Licence MIT |
Stáhnout | |
|
|
Přeložte rozšíření OpenID Connect, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšíření OpenID Connect rozšiřuje rozšíření PluggableAuth o ověřování pomocí OpenID Connect.
Zvláštní poděkování patří jumbojett za OpenID Connect PHP knihovnu použitou tímto rozšířením.
Instalace
Předpoklady
Rozšíření
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
OpenIDConnect
ve vaší složceextensions/
.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cdextensions/ gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect
- Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'OpenIDConnect' );
- Spusťte aktualizační skript , který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
- Nainstalujte závislosti.
- Vyžaduje nastavení v konfiguračním souboru.
- Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Závislosti
Rozšíření OpenIDConnect vyžaduje rozšíření CURL PHP a knihovnu OpenID Connect PHP. Pokud postupujete podle standardní instalace a stáhli jste si archiv z mediawiki.org, závislosti byly sbaleny a není vyžadována žádná další akce.
Pokud používáte postup pro vývoj/přispěvatelskou instalaci pomocí Gitu, přidejte řádek "extensions/OpenIDConnect/composer.json"
do souboru composer.local.json
v kořenovém adresáři vaší wiki, např.
{ "extra":{ "merge-plugin":{ "include":[ "extensions/OpenIDConnect/composer.json" ] } } }
Pak spusťte composer update
v kořenovém adresáři vaší wiki.
Tím se nainstalují všechny závislosti (např. PHP knihovna jumbojett OpenID Connect).
Konfigurace
Parametry
Většina konfiguračních nastavení pro poskytovatele identity OpenID Connect je sdílena v souboru, který se nachází na adrese /.well-known/openid-configuration
[1] v doméně poskytovatele.
Toto rozšíření dotazuje tato nastavení za účelem zpracování ověřování.
Kromě toho se níže uvedené konfigurační parametry používají ke konfiguraci rozšíření pro komunikaci s poskytovatelem identity dle potřeby.
Při konfiguraci poskytovatele identity se zobrazí výzva k zadání adresy URL pro přesměrování nebo adresy URL pro zpětné volání. Pro danou hodnotu použijte úplnou URL adresu stránky s hodnotou Special:PluggableAuthLogin.
$wgPluggableAuth_Config
Default value:: []
(viz Extension:PluggableAuth#Configuration)
Povinné pole polí určujících vydavatele OpenID Connect a jejich konfiguraci. Pole data
v poli obsahuje pole s následujícími klíči:
providerURL
Požadované
URL adresa vydavatele („např." https://accounts.google.com/ pro Google, https://api.slack.com/ pro Slack), která se používá k nalezení výše uvedeného "známého" souboru (např. https://accounts.google.com/.well-known/openid-configuration pro Google)
clientID
Požadované
clientsecret
Požadované
proxy
Volitelné URL
scope
Volitelné
řetězec nebo pole řetězců, které mají být předány vydavateli, výchozí hodnota je [ 'openid', 'profile', 'email' ]
preferred_username
Volitelné
preferovaný název atributu uživatelského jména od vydavatele, který se má použít, což znamená, že vydavatel poskytne atribut s tímto názvem, jehož hodnota bude preferovaným uživatelským jménem pro daného uživatele. Výchozí hodnota je řetězec 'preferred_username'. Pokud nechcete použít preferovaný atribut uživatelského jména, nastavte na prázdný řetězec.
verifyHost
Volitelné
booleovská hodnota pro povolení/zakázání ověřování hostitele; výchozí: true
verifyPeer
Volitelné
boolean pro povolení/zakázání ověřování peerů SSL; výchozí: true
authparam
Volitelné
asociativní pole autentizačních parametrů, které mají být předány vydavateli
providerConfig
Volitelné
asociativní pole používané ke změně koncových bodů a dalších atributů poskytovatele
issuerValidator
Volitelné
boolean function that takes one string parameter, the issuer, and returns whether the issuer is valid (version 7.1.0+)
preferredUsernameProcessor
Volitelné
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
Volitelné
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
Volitelné
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
Volitelné
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+)
wellKnownConfigParameters
Volitelné
array of additional string parameters to use to construct the well-known config URL (default []
); e.g. 'wellKnownConfigParameters' => ['appid' => 'clientIDvalue']
(version 8.2.0+)
codeChallengeMethod
Volitelné
string to provide to the identity provider to set the code challenge method; used to support PKCE when set to "S256"
(version 8.2.0+)
authMethods
Volitelné
array of strings to specify the auth methods to use when communicating with the identity provider (default ['client_secret_basic']
); e.g. 'authMethods' => ['client_secret_basic', 'client_secret_jwt', 'private_key_jwt']
; note that private_key_jwt
requires that privateKeyJwtGenerator
must also be set (version 8.2.0+)
privateKeyJwtGenerator
Volitelné
string parameter that takes one string parameter, the token endpoint, and returns a JWT; for use with authMethod private_key_jwt
(version 8.2.0+)
$wgOpenIDConnect_UseRealNameAsUserName
Default value:: false
Pokud je v databázi vytvářen nový uživatel a vydavatel neposkytl žádné preferované uživatelské jméno nebo byl preferred_username nastaven na hodnotu null nebo na prázdný řetězec, hodnota true
pro tento příznak znamená, že jako uživatelské jméno nového uživatele by mělo být použito skutečné jméno uživatele, pokud bylo vydavatelem poskytnuto. Pokud je nastaveno na true
a vydavatel neposkytl žádné preferované uživatelské jméno, bude jako uživatelské jméno pro prvního uživatele použit literál "User" a všichni další uživatelé budou používat literál „Uživatel" následovaný číslem. Např. "User", "User1", "User2" atd. Stejné pojmenování nastane, pokud je tento parametr nastaven na false
.
$wgOpenIDConnect_UseEmailNameAsUserName
Default value:: false
Pokud je v databázi vytvářen nový uživatel a vydavatel neposkytl žádné preferované uživatelské jméno, nebo byl preferred_username nastaven na hodnotu null či na prázdný řetězec a buď vydavatel neposkytl žádné skutečné jméno, nebo byl $wgOpenIDConnect_UseRealNameAsUserName
nedefinovaný nebo nastavený na false
, hodnota true
pro tento příznak znamená, že část jména z e-mailové adresy uživatele, pokud ji vydavatel poskytl, by měla být použita jako uživatelské jméno nového uživatele. Tento parametr nelze nastavit na hodnotu true
současně s nastavením $wgOpenIDConnect_UseRealNameAsUserName
na hodnotu true
. V tomto případě bude toto nastavení ignorováno.
$wgOpenIDConnect_MigrateUsersByUserName
Default value:: false
Pokud v databázi již existuje uživatel se stejným uživatelským jménem jako ověřený uživatel a má hodnoty null
pro subjekt a vydavatele, použijte tohoto uživatele a nastavte subjekt a vydavatele v databázi na hodnoty ověřeného uživatele. To je užitečné, pokud wiki dříve používala jiný mechanismus ověřování. Pokud ani tento parametr, ani $wgOpenIDConnect_MigrateUsersByEmail
nejsou nastaveny na true
, použijí se nastavení pro vytváření uživatelů, jak je popsáno výše.
$wgOpenIDConnect_MigrateUsersByEmail
Default value:: false
Pokud v databázi již existuje uživatel se stejnou e-mailovou adresou jako ověřený uživatel a má pro předmět a vydavatele hodnoty null
, použijte tohoto uživatele a nastavte v databázi předmět a vydavatele na hodnoty ověřeného uživatele. To je užitečné, pokud wiki dříve používala jiný mechanismus ověřování. Pokud ani tento parametr, ani $wgOpenIDConnect_MigrateUsersByUserName
nejsou nastaveny na true
, použijí se nastavení pro vytváření uživatelů, jak je popsáno výše.
$wgOpenIDConnect_ForceReauth
Default value:: false
Když se uživatel odhlásí z wiki, vynutit opětovné ověření u poskytovatele identity při dalším přihlášení, i když se od poskytovatele identity neodhlásil.
$wgOpenIDConnect_SingleLogout
Default value:: false
Když se uživatel odhlásí z wiki, odhlásí se také od poskytovatele identity. Toto není podporováno všemi poskytovateli identity (např. Google).
$wgOpenIDConnect_PreferredUsernameProcessor
Default value:: 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+)
$wgOpenIDConnect_RealNameProcessor
Default value:: 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+)
$wgOpenIDConnect_EmailProcessor
Default value:: 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+)
$wgOpenIDConnect_UseRandomUsernames
Default value:: 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+)
Připojení k jednomu vydavateli
Jednoduchý příklad konfigurace $wgPluggableAuth_Config
pro jednoho emitenta je následující:
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://id.mycompany_abc.com/connect/', 'clientID' => '.....', 'clientsecret' => '.....' ] ];
Připojení k více emitentům
Příklad konfigurace $wgPluggableAuth_Config
pro více emitentů je následující:
$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' => '.....' ] ];
Od verze 7.0.0 je synchronizace skupin možná pomocí funkce poskytované rozšířením PluggableAuth. Informace o konfiguraci synchronizace skupin naleznete v dokumentaci k PluggableAuth.
Odhlášení ze zadního kanálu
As of version 8.3.0, backchannel logout is supported. In order to use it, you must configure your identity provider for backchannel logout, pointing to the rest.php/pluggableauth/v1/logout
endpoint on your wiki.
Příklady
Konfigurace vydavatele
- Pomocí konzole pro vývojáře Google [1] vytvořte projekt.
- Klikněte na projekt, klikněte na hamburgerové menu (tři vodorovné čáry vlevo nahoře) a v menu klikněte na
APIs & Services -> Credentials
. - Klikněte na tlačítko
Create credentials -> OAuth client ID
a vyberteWeb application
. Vyplňte informace na obrazovce souhlasu a uložte. - Zadejte URI přesměrování v
Authorized redirect URIs
[2] - Klikněte na
Create Client ID
. - Všimněte si přiřazených hodnot
Client ID
aClient Secret
.
Konfigurace rozšíření
Vydavatel Google je nyní nakonfigurován.
Přidejte odpovídající konfiguraci do souboru LocalSettings.php a vyplňte pole clientID
a clientsecret
výše uvedenými hodnotami.
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://accounts.google.com', 'clientID' => '.....', 'clientsecret' => '.....', ] ];
Můžete také přiřadit jiné hodnoty, například proxy
a authparam
.
Azure Active Directory
Azure Active Directory je nově Microsoft Entra ID.
Microsoft Entra ID
Entra ID je nový název služby, dříve nazývané "Azure Active Directory".
Konfigurace vydavatele
- V administračním centru Entra přejděte na 'Identity', poté na 'Applications' a nakonec na 'App Registrations'.
- Zaregistrujte novou aplikaci
- Zadejte jméno
- Pravděpodobně uveďte 'Accounts in this org directory only'
- Zadejte URI přesměrování:[2]
https://[URLofWiki]/wiki/Special:PluggableAuthLogin
- V nové aplikaci přejděte na 'Certificates and secrets' a vytvořte nový tajný klíč klienta.
Konfigurace rozšíření
Pomocí hodnoty 'Application (client) ID', ID adresáře (nájemce) a tajného klíče z aplikace naplňte soubor "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;
When using the common endpoint for Microsoft login, the issuer URL provided by the well-known endpoint contains a placeholder for the tenant ID, causing verification of JWT claims to fail. In this case, you can use an issuer validator to fix this. For example, you could provide an issuer validator that always returns true
:
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://login.microsoftonline.com/common/v2.0/', 'clientID' => '[Application (Client) ID]', 'clientsecret' => '[Secret from Certs and Secrets]', 'issuerValidator' => fn( $iss ) => true, ] ];
Konfigurace rozšíření s mapováním skupin
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ from above example ], 'groupsyncs' => [ [ 'type' => 'mapped', 'map' => [ 'sysop' => ['groups' => '8d1cc10c-3e95-4637-941d-0c1237352e85'], 'interface-admin' => ['groups' => 'See where to find Object ID below'] ] ] ] ];
- In Azure, go to `Manage` -> `Token configuration`. Click `Add group claims`, select "Groups assigned to the application (recommended for large enterprise companies to avoid exceeding the limit on the number of groups a token can emit)".
- Find app in Enterprise applications, and go to `Manage` -> `Users and groups`. Add group.
- You can now click on the group and copy the `Object ID` and paste above.
- You need to relogin to take effect.
Keycloak
Konfigurace vydavatele
Předpoklady:
- Název vašeho realmu v Keycloaku je 'acme
- Vaše URL adresa a port pro Keycloak je https://keycloak.local:8080
- Vaše ID klienta Keycloak je nastaveno na mediawiki
- Váš automaticky vygenerovaný tajný kód klienta je 12345
Konfigurace rozšíření
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://keycloak.local:8080/realms/acme', 'clientID' => 'mediawiki', 'clientsecret' => '12345' ] ];
Řešení problémů
- Pokud narazíte na problém, například s kódem "The provider {$param} could not be fetched. Make sure your provider has a well known configuration available.", váš URI[3] je nesprávný. Správnost můžete otestovat voláním funkce https://keycloak.local:8080/realms/acme/.well-known/openid-configuration ve vašem prohlížeči. Pokud dostanete zpět dlouhý JSON, cesta je správná.
- Dalším způsobem, jak ověřit hodnotu 'providerURL', je porovnat ji s hodnotou 'Redirect URI' v bodě Keycloak>Identity Providers>keycloak-oidc, tj.: https://keycloak.local:8080/realms/acme/broker/keycloak-oidc/endpoint. Pro 'providerURL' potřebujete část až o úroveň níže, než jsou realmy.
- Ujistěte se, že je URI přesměrování poskytovaný tímto pluginem OIDC[4] nastaveno platné pro váš keycloak-server v acme -> Klienti -> mediawiki -> Nastavení -> platné URI přesměrování . Pro testovací účely můžete přidat zástupný znak "*".
Okta
Konfigurace vydavatele
Nastavení aplikace Okta OIDC
Povolené typy grantů: (všechny) URI pro přesměrování přihlášení: úplná URL adresa na Special:PluggableAuthLogin, např. https://www.example.com/wiki/index.php/Special:PluggableAuthLogin Postup přihlášení: "Redirect to app to initiate login (OIDC compliant)" Inicializační URI přihlášení: úplná URL adresa pro Special:UserLogin, např. https://www.example.com/wiki/index.php/Special:UserLogin
Konfigurace rozšíření
Pro komunikaci s Okta je nutné zadat rozsahy openid, profilu a e-mailu. Pokud vynecháte příslušné rozsahy, Okta ráda ověří vaše uživatele, ale nevrátí žádné užitečné deklarace identity.
$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)' ] ];
Automatické vytváření uživatelů
Pokud chcete využít automatického vytváření uživatelů v MediaWiki (např. $wgGroupPermissions['*']['autocreateaccount'] = true;
), mějte na paměti, že deklarace preferred_username v Oktě má formát e-mailové adresy.
Pokud nechcete, aby vaši uživatelé měli ve svých uživatelských jménech znak @ (MediaWiki to ve výchozím nastavení zakazuje), budete muset zadat alternativní deklaraci identity pomocí klíče 'preferred_username' ve vašem souboru $wgPluggableAuth_Config.
Povolení znaku @ v uživatelských jménech může narušit kompatibilitu vaší wiki s jinými platformami (pokud se na ni spoléháte).
Chcete-li povolit použití znaku @, stačí v proměnné LocalSettings.php nastavit $wgInvalidUsernameCharacters = ' ';
a $wgUserrightsInterwikiDelimiter = '#';
.
Poznámky
Toto by mělo být vyřešeno v budoucnu, až bude knihovna aktualizována tak, aby zahrnovala tuto změnu.
Řešením je přidat jeden řádek kódu do $MEDIAWIKI_ROOT/extensions/OpenIDConnect/vendor/jumbojett/openid-connect-php/src/OpenIDConnectClient.php takto:
hned dole: unset($token_params['client_secret']);
unset($token_params['client_id']); # Více vám řekneː https://github.com/jumbojett/OpenID-Connect-PHP/pull/208/commits/dd44c1ca7e45d35dcd8f32ea503b545149bc6562
(toto bylo opraveno ve verzi 0.9.8)Chcete-li ověřit uživatele v Okta, musíte nejprve ve své organizaci Okta vytvořit novou aplikaci OIDC a přiřadit ji příslušným uživatelům/skupinám atd.
Gitlab
Konfigurace vydavatele
- Přihlášení do administrátorské sekce Gitlabu
- Přejděte do Aplikace -> Nová aplikace
- Name: MediaWiki
- Redirect URI: <wiki server>/wiki/Special:PluggableAuthLogin
- Trusted: yes
- Confidential: yes
- Scopes: openid, profile, email
- Odeslat
- Zkopírovat Application ID a Secret do
LocalSettings.php
Konfigurace rozšíření
V "LocalSettings.php"
// Rozšíření PluggableAuth wfLoadExtension( 'PluggableAuth' ); $wgPluggableAuth_EnableLocalLogin = true; // nastaveno na hodnotu false pro deaktivaci lokálních přihlášení, pokud je to nutné // Rozšíření OpenIDConnect wfLoadExtension( 'OpenIDConnect' ); $wgPluggableAuth_Config['Login with your Gitlab Account'] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => '...', // '''Přidejte si sem svůj gitlab server (hlavní stránka)''' 'clientID' => '...', // '''Sem vložte ID aplikace Gitlab!''' 'clientsecret' => '...', // '''Sem vložte tajný kód Gitlabu!''' // Alternativní 'nickname' (přezdívka) // Alternativní 'název' 'preferred_username' => 'nickname' ] ];
Více informací o dokumentaci Gitlabu naleznete na webu OpenID Connect Provider.
Amazon Cognito
Amazon Cognito je služba pro identifikaci uživatelů od AWS[5] .
Konfigurace vydavatele
Předpoklady:
- Vaše ID uživatelského poolu Amazon Cognito je us-west-2_XdLg34nAA
- Váš region AWS je us-west-2
- Vaše ID klienta je nastaveno na mediawiki
- Váš automaticky vygenerovaný tajný kód klienta je 12345
Konfigurace rozšíření
$wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://cognito-idp.us-west-2.amazonaws.com/us-west-2_XdLg34nAA', 'clientID' => 'mediawiki', 'clientsecret' => '12345' ] ];
Podrobné pokyny k konfiguraci Amazon Cognito pro tento případ použití naleznete na adrese https://medium.com/@robert.broeckelmann/openid-connect-authorization-code-flow-with-aws-cognito-246997abd11a.
NextCloud
Stránka Nextcloud na Wikipedii
Konfigurace vydavatele
Předpoklady:
- Spuštění Nextcloudu verze 24 nebo Nextcloud All-In-One v3.0.0
- Nextcloud má nainstalovanou aplikaci "OIDC Identity Provider v0.2.6". https://github.com/H2CK/oidc
- Váš nextcloud běží z domény 'my.nextcloud.com
- Veřejná URL adresa https://my.nextcloud.com/.well-known/openid-configuration je přesměrována na <your internal nextcloud server>/index.php/apps/oidc/openid-configuration např. pomocí nginxu nebo jiného reverzního proxy serveru.
- Prostřednictvím administrátorského účtu nextcloud v části Nastavení > Zabezpečení > "Klienti Open ID Connect" přidáte klienta s následujícími údaji
- Název: wiki
- URI pro přesměrování: The full URL to
Special:PluggableAuthLogin
, e.g.https://www.example.com/wiki/index.php/Special:PluggableAuthLogin
(Note: if your wiki's default language isn't english,Special
will be different!) - Podepisovací algoritmus: RS256
- Zadejte: confidential Po kliknutí na tlačítko "přidat" se zobrazí řetězec Client Identifier a řetězec Secret. Zadejte tyto hodnoty do níže uvedených polí
LocalSettings.php
promyGeneratedID
amyGeneratedSecret
.
Konfigurace rozšíření
wfLoadExtension( 'PluggableAuth' ); $wgGroupPermissions['*']['autocreateaccount'] = true; $wgPluggableAuth_EnableAutoLogin = true; // Uživatel nyní nemá tlačítko 'přihlásit se'/'odhlásit se'. wfLoadExtension( 'OpenIDConnect' ); $wgPluggableAuth_Config[] = [ 'plugin' => 'OpenIDConnect', 'data' => [ 'providerURL' => 'https://my.nextcloud.com', 'clientID' => 'myGeneratedID', 'clientsecret' => 'myGeneratedSecret' ] ];
Poznámky k vydání
- Version 8.3.0
- Add support for backchannel logout (T327147)
- Version 8.2.1
- Fixed case insensitive email comparison for email migration
- Version 8.2.0
- Added support for specifying parameters to the well known config (T383498)
- Added support for code challenge/PKCE (T366023)
- Added ability to set the token endpoint auth (T378905)
- Version 8.1.0
- Fixed bug on database upgrade (T378904)
- Updated https://github.com/jumbojett/OpenID-Connect-PHP to version 1.0.2 (T378907)
- Bump minimum MediaWiki version to 1.39
- Version 8.0.2
- Use case insensitive email comparison for email migration
- Improved random username generation
- Version 8.0.1
- Reverted back to version 0.9.10 of https://github.com/jumbojett/OpenID-Connect-PHP for stability
- Version 8.0.0
- Allow multiple identity providers to map to a single user (T361877)
- Version 7.2.0
- Add processor functions (T357752) to allow username, real name, and email normalization
- Add random username generator
- Updated to version 1.0.0 of https://github.com/jumbojett/OpenID-Connect-PHP
- Code clean-up (added tests, removed deprecations)
- Version 7.1.0
- Support custom issuer validator (T360249)
- Verze 7.0.2
- Použití ID tokenu k získání deklarací identity během ověřování (T348931)
- Verze 7.0.1
- Povolit atribut konfigurace preferred_username na hodnotu null nebo prázdný (T339311)
- Verze 7.0.0
- Vyrobeno kompatibilní s PluggableAuth 7.0.0
- Přidat volitelné jednorázové odhlášení (
$wgOpenIDConnect_SingleLogout
) - Nahraďte ForceLogout (který byl nefunkční) funkcí ForceReauth (
$wgOpenIDConnect_ForceReauth
) - Přidat funkci pro získání přístupového tokenu s obnovovacím tokenem
- Použijte nový rámec pro populaci skupin PluggableAuth. Podporuje načítání atributů včetně skupin
- Vylepšení kódu
- Opravy chyb:
- T307353: Podmínka dotazu v migraci uživatelského jména je nesprávná.
- Verze 6.2
- Aktualizujte knihovnu jumbojett/openid-connect-php na verzi 0.9.10
- Nahradit zastaralý User::idFromName
- Verze 6.1
- Ujistěte se, že háček pro naplnění skupiny běží pouze pro instance pluginu OpenID Connect.
- Verze 6.0
- Aktualizováno pro kompatibilitu s PluggableAuth verzí 6.0
- Verze 5.4
- Aktualizováno jumbojett/openid-connect-php na verzi 0.9.1
- Opravena chyba při pokusu o ověření pomocí Okta, kdy se v požadavku odesílaly další parametry, což způsobovalo selhání požadavku.
- Verze 5.3
- Opravena chyba s migrací malých počátečních uživatelských jmen (T249630)
- Verze 5.2
- Přidány volitelné možnosti konfigurace pro zakázání ověřování názvů hostitelů a certifikátů pro použití ve vývojových prostředích s certifikáty vydanými samostatně.
- Verze 5.1
- Přidáno generování úplné adresy URL pro přesměrování, aby knihovna OpenID Connect v PHP nemusela hádat, což občas neměla dostatek informací k přesnému provedení.
- Verze 5.0
- Sloupce s předmětem a vydavatelem byly přesunuty z tabulky
user
do tabulkyopenid_connect
(vyžaduje aktualizaci databáze) - Přidána podpora pro Postgres
- Verze 4.1
- Přidán jmenný prostor pro třídu knihovny
- Verze 4.0
- Přidána volitelná chybová zpráva k authenticate()
- Zvýšené číslo verze pro synchronizaci s rozšířeními PluggableAuth a SimpleSAMLphp
- Verze 2.3
- Opravená implementace whitelistu
- Změní příznaky migrace tak, aby umožňovaly migraci podle e-mailové adresy kromě migrace podle uživatelského jména.
- Verze 2.2
- Opravy související s aktualizací PluggableAuth MediaWIki na verzi 1.27
- Konvence kódování polí
- Verze 2.1
- Aktualizace správy relací MediaWiki 1.27
- Přidány výchozí hodnoty konfiguračních proměnných do extension.json
- Verze 2.0
- Aktualizovaná registrace rozšíření
- Změněny konfigurační proměnné pro použití prefixu "wg"
- Přidáno composer.json pro získání knihovny OpenID Connect pomocí composeru
- Verze 1.2
- Přidána možnost zadat autorizační parametry a přidána podpora pro prefixy tabulek
- Verze 1.1
- Přidána podpora pro Google
- Verze 1.0
- Počáteční verze
Známé problémy
- Stránky wikin, které používají URL adresy ve tvaru
https://example.org/w/index.php?title=Page_title
(tj. mají název stránky zadaný jako parametr dotazu), nebudou správně přesměrovány k dokončení procesu ověřování. URL adresy musí mít místo toho tvarhttps://example.org/w/index.php/Page_title
, čehož lze dosáhnout použitím short URLs nebo odpovídajícím nastavením$wgArticlePath
. - Toto rozšíření nemusí s kódem
$wgMainCacheType = CACHE_ACCEL;
fungovat správně. V tomto případě je také nutné nastavit$wgSessionCacheType = CACHE_DB;
(viz T147161). - Toto rozšíření nefunguje na nestandardních portech, pokud ručně neaktualizujete podkladového klienta OpenID Connect, viz: jumbojett/OpenID-Connect-PHP issue 58 na GitHubu. Tento problém se vyskytuje i při připojení k jinému webovému serveru než IIS.
- Při spuštění údržbového skriptu
createAndPromote.php
je nutné zakázat obě rozšíření PluggableAuth a OpenID Connect zakomentováním jejich voláníwfLoadExtension()
. - Toto rozšíření nepodporuje vlastní známé koncové body. To znamená, že proces ověřování OpenID Connect v Azure Active Directory B2C momentálně není podporován.
Poznámky pod čarou
- ↑ openid.net: Žádost o konfiguraci poskytovatele OpenID
- ↑ 2.0 2.1 Upozorňujeme, že odkaz na autorizované URI přesměrování musí být lokalizovaný, např. pokud nastavíte jazyk instance vaší wiki na
'de'
($wgLanguageCode = 'de';
), musíte zadat "https://[URLofWiki]/wiki/Spezial:PluggableAuthLogin". V případě vícebajtových znaků v URL zajistěte procentuální kódování, např. pro jazyk 'cz' je třeba zadat "https://[URLofWiki]/wiki/Speci%C3%A1ln%C3%AD:PluggableAuthLogin" atd. - ↑ Uniform Resource Identifier (URI)
- ↑ OpenID Connect (OIDC)
- ↑ Amazon Web Services (AWS)
- PluggableAuth plugins/cs
- Stable extensions/cs
- User identity extensions/cs
- MIT licensed extensions/cs
- Extensions in Wikimedia version control/cs
- LoadExtensionSchemaUpdates extensions/cs
- All extensions/cs
- Extensions included in BlueSpice/cs
- Extensions included in Canasta/cs
- Extensions included in ProWiki/cs
- Extensions included in WikiForge/cs
- Extensions by MITRE/cs