Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| en:2.0:single_sign_on [2026/09/11 09:09] – [2. Configuring Admidio as OpenID Connect IdP] kainhofer | en:2.0:single_sign_on [2026/09/11 09:29] (current) – [C. Configuring Admidio with the Relying Party] kainhofer | ||
|---|---|---|---|
| Line 289: | Line 289: | ||
| - The **Issuer URL** should typically be left empty, so the default URL of Admidio is used. | - The **Issuer URL** should typically be left empty, so the default URL of Admidio is used. | ||
| - Save | - Save | ||
| - | |||
| - | The Preferences page also lists all the relevant data to set up the client. If client supports it, you can copy the discovery URL from this page and paste it in the client configuration. Use the “Copy” icon right of the URL. | ||
| The SSO settings also provide an advanced section, where you can select or generate crypto keys for the signatures and encryption of the OIDC messages. A default key will be generated automatically. | The SSO settings also provide an advanced section, where you can select or generate crypto keys for the signatures and encryption of the OIDC messages. A default key will be generated automatically. | ||
| - | Admidio is now ready to provide single-sign-on functionality via OIDC. | + | The Preferences page also lists all the relevant URLs (endpoints) to set up the client as a Relying Party. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | The Preferences page also lists all the relevant URLs (endpoints) to set up the client as a Relying Party. | + | |
| <code json> | <code json> | ||
| { | { | ||
| Line 347: | Line 341: | ||
| - | Once Admidio is set up to act as an OpenID | + | Once Admidio is set up to act as OpenID |
| * **Discovery URL** (optional; for automatic setup of clients): https:// | * **Discovery URL** (optional; for automatic setup of clients): https:// | ||
| * If your RP supports auto-configuration, | * If your RP supports auto-configuration, | ||
| - | * **IdP Isuer** (unique identifier of the Admidio instance): https:// | + | * **IdP Issuer** (unique identifier of the Admidio instance): https:// |
| * **Authorization Endpoint** (where the RP sends the login request): https:// | * **Authorization Endpoint** (where the RP sends the login request): https:// | ||
| * **Token Endpoint** (where the RP sends requests to convert an auth code to a token, i.e. an app-specific password replacement): | * **Token Endpoint** (where the RP sends requests to convert an auth code to a token, i.e. an app-specific password replacement): | ||
| * **Userinfo Indpoint** (where the RP can request details about the user): | * **Userinfo Indpoint** (where the RP can request details about the user): | ||
| + | * The (unique) **Client ID** and **Client Secret** must be entered identically in Admidio' | ||
| * **Scopes** (which groups of profile data are requested by the client): Any of openid (required), profile, address, phone, email, custom, groups, roles | * **Scopes** (which groups of profile data are requested by the client): Any of openid (required), profile, address, phone, email, custom, groups, roles | ||
| * **User attribute mapping**: Which data fields (OpenID claims) returned by Admidio correspond to the login name, the full name, the email and possibly the user's group memberships in the RP system. | * **User attribute mapping**: Which data fields (OpenID claims) returned by Admidio correspond to the login name, the full name, the email and possibly the user's group memberships in the RP system. | ||
| Line 361: | Line 356: | ||
| Also, some clients offer a setting that SAML login is only possible for users that are already manually created in the RP, while others offer a setting to automatically create user accounts on successful SAML login. | Also, some clients offer a setting that SAML login is only possible for users that are already manually created in the RP, while others offer a setting to automatically create user accounts on successful SAML login. | ||
| - | The details always depend on the particular client. | + | The details always depend on the particular client. |
| Line 387: | Line 382: | ||
| * **Client ID** (unique identifier of the client): typically the URL of the OpenID client (RP)((Some RPs use basic auth by default, which does not allow special characters in the username. In this case, the URL MUST NOT be used, as this will prevent successful login! Other OpenID clients hardcode the client ID as their URL.)) | * **Client ID** (unique identifier of the client): typically the URL of the OpenID client (RP)((Some RPs use basic auth by default, which does not allow special characters in the username. In this case, the URL MUST NOT be used, as this will prevent successful login! Other OpenID clients hardcode the client ID as their URL.)) | ||
| * **Client Secret** (basically the client' | * **Client Secret** (basically the client' | ||
| - | * **Redirect URI** (where the user is redirected after successful login) | + | * **Redirect URI** (where the user is redirected after successful login). Many clients send an explicit URL where users are returned after a successful OIDC logout. To prevent security issues, only explicitly listed URLs are allowed. Multiple URLs can be given, one per line, and a **%%*%%** can be used as a placeholder (not allowed in the protocol or the domain name, only in the path after the domain). Some clients (like Wordpress) append variable options like the user's language. In that case, the placeholder should be used. |
| - | * **User ID field**: Whether the client gets the numeric Admidio user id, the globally unique UUID, or the user's login name as user ID | + | * **User ID field**: Whether the client gets the numeric Admidio user id, the globally unique UUID, or the user's login name as user ID to uniquely identify users. This is not the suggested login name in the client, but an internal identifier. |
| * **Permitted scopes**: OpenID defines certain groups of profile data, for which permission can be granted. The RP will include the scopes it is interested in in its login request, and the OpenID Provider (OP, Admidio in our case) will return the profile fields (" | * **Permitted scopes**: OpenID defines certain groups of profile data, for which permission can be granted. The RP will include the scopes it is interested in in its login request, and the OpenID Provider (OP, Admidio in our case) will return the profile fields (" | ||
| * Further **profile data/ | * Further **profile data/ | ||