| Both sides previous revision Previous revision Next revision | Previous revision |
| en:2.0:single_sign_on:oidc_mediawiki [2026/09/08 17:36] – [Configuring the Service Provider (MediaWiki)] kainhofer | en:2.0:single_sign_on:oidc_mediawiki [2026/09/08 17:58] (current) – [Caveats and Things to Consider] kainhofer |
|---|
| This is a typical configuration of the MediaWiki OpenID client in Admidio: | This is a typical configuration of the MediaWiki OpenID client in Admidio: |
| {{ :en:2.0:sso:sso_oidc_mediawiki_02_client.png?direct&600 |}} | {{ :en:2.0:sso:sso_oidc_mediawiki_02_client.png?direct&600 |}} |
| | {{ :en:2.0:sso:sso_oidc_mediawiki_02_client2.png?direct&600 |}} |
| |
| The clientID and the client secret in the Admidio client page and MediaWiki's ''LocalSettings.php'' have to match exactly. Similarly, the scopes should coincide, otherwise not all desired profile fields will be transmitted. To make use of the group mapping in MediaWiki, make sure to include the 'groups' scope in Admidio and Mediawiki, and map the 'Roles - roles' Profile Field to an OIDC claim. | The clientID and the client secret in the Admidio client page and MediaWiki's ''LocalSettings.php'' have to match exactly. Similarly, the scopes should coincide, otherwise not all desired profile fields will be transmitted. To make use of the group mapping in MediaWiki, make sure to include the 'groups' scope in Admidio and Mediawiki, and map the 'Roles - roles' Profile Field to an OIDC claim. |
| ==== Caveats and Things to Consider ==== | ==== Caveats and Things to Consider ==== |
| |
| * MediaWiki allows **admin login** through OpenID by assigning the **group 'sysop'** in the group mapping. The 'groups' scope must be included in both Admidio's as well as MediaWiki's config, and Admidio's role must be included as an OIDC claim. | * MediaWiki allows **admin login** through OpenID by assigning the **group 'sysop'** in the group mapping. The 'groups' scope must be included in both Admidio's as well as MediaWiki's config, and Admidio's role must be included as an OIDC claim.<code php>[..., |
| | 'groupsyncs' => [ |
| | [ |
| | 'type' => 'syncall', |
| | // List of locally managed groups by default contain 'sysop', |
| | // so administrators would never sync from Admidio -> clear it! |
| | 'locallyManaged' => [], |
| | 'groupAttributeName' => 'groups', |
| | ]] |
| | </code>{{ :en:2.0:sso:sso_oidc_mediawiki_02_client3_sysop.png?400 |}} |
| * By default, MediaWiki will use basic http authentication for its calls to the authorization and token endpoints, which means that no special characters (in particular colons) are allowed. Unfortunately, the client ID will be used as username, which typically contains a colon in 'https://...'. The OpenID specification states that the colon is the separator between username and passphrase (client secret), so Admidio will incorrectly assume 'https' to be the username and everything else is the client secret... The two possible solutions are to (1) either not use the full URL, but any other unique identifier without a colon as clientID, or (2) switch MediaWiki to the 'client_secret_post' authMethod in the MediaWiki's ''LocalSettings.php'' configuration file (see the example above, which already contains this fix). | * By default, MediaWiki will use basic http authentication for its calls to the authorization and token endpoints, which means that no special characters (in particular colons) are allowed. Unfortunately, the client ID will be used as username, which typically contains a colon in 'https://...'. The OpenID specification states that the colon is the separator between username and passphrase (client secret), so Admidio will incorrectly assume 'https' to be the username and everything else is the client secret... The two possible solutions are to (1) either not use the full URL, but any other unique identifier without a colon as clientID, or (2) switch MediaWiki to the 'client_secret_post' authMethod in the MediaWiki's ''LocalSettings.php'' configuration file (see the example above, which already contains this fix). |
| |