From 3c23c6ac2ba28d0926dc7e972e1b44e302fd365e Mon Sep 17 00:00:00 2001 From: Florian Liebe <8327427+fliebe92@users.noreply.github.com> Date: Wed, 29 Jan 2025 09:46:16 +0100 Subject: [PATCH] Fixes #671 - OpenID Connect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tobias Schäfer Co-authored-by: Ralf Schmid --- ...zammad_connect_oidc_thirdparty_general.png | Bin 0 -> 121868 bytes locale/admin-docs.pot | 195 +++++++++++++++--- settings/security/third-party.rst | 4 +- .../security/third-party/openid-connect.rst | 85 ++++++++ 4 files changed, 257 insertions(+), 27 deletions(-) create mode 100644 images/settings/security/third-party/openid-connect/zammad_connect_oidc_thirdparty_general.png create mode 100644 settings/security/third-party/openid-connect.rst diff --git a/images/settings/security/third-party/openid-connect/zammad_connect_oidc_thirdparty_general.png b/images/settings/security/third-party/openid-connect/zammad_connect_oidc_thirdparty_general.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4ffb5eea420c2f783f8e0c1d3f665d4bf0ba31 GIT binary patch literal 121868 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 literal 0 HcmV?d00001 diff --git a/locale/admin-docs.pot b/locale/admin-docs.pot index 366949f9..2d05349b 100644 --- a/locale/admin-docs.pot +++ b/locale/admin-docs.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Zammad Admin Documentation pre-release\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-21 10:58+0100\n" +"POT-Creation-Date: 2025-01-29 09:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -9192,7 +9192,7 @@ msgstr "" #: ../manage/slas/index.rst:51 #: ../manage/slas/index.rst:92 -#: ../settings/security/third-party.rst:81 +#: ../settings/security/third-party.rst:82 #: ../settings/system/frontend.rst:54 #: ../system/maintenance.rst:70 #: ../system/maintenance.rst:94 @@ -15616,35 +15616,35 @@ msgstr "" msgid "You can deactivate logging in via :ref:`security_password_login` if any of the mentioned authentication providers are enabled in your instance." msgstr "" -#: ../settings/security/third-party.rst:27 +#: ../settings/security/third-party.rst:28 msgid "We're currently missing documentation for the following login providers:" msgstr "" -#: ../settings/security/third-party.rst:29 +#: ../settings/security/third-party.rst:30 msgid "LinkedIn" msgstr "" -#: ../settings/security/third-party.rst:30 +#: ../settings/security/third-party.rst:31 msgid "Weibo" msgstr "" -#: ../settings/security/third-party.rst:35 +#: ../settings/security/third-party.rst:36 msgid "Automatic Account Link on Initial Logon" msgstr "" -#: ../settings/security/third-party.rst:37 +#: ../settings/security/third-party.rst:38 msgid "In general there's two possible options for Zammad on how to deal with already known users as they try to authenticate against a third-party application. By default, Zammad will not automatically link \"unknown\" authentication providers to existing accounts." msgstr "" -#: ../settings/security/third-party.rst:42 +#: ../settings/security/third-party.rst:43 msgid "This means that the user has to manually link authentication providers to their accounts (for more about this :user-docs:`consult the user documentation `)." msgstr "" -#: ../settings/security/third-party.rst:46 +#: ../settings/security/third-party.rst:47 msgid "Sometimes this doesn't come in handy as this also means you'll receive error messages about \"email address being in use already\" for (yet) unknown third-party authentication methods." msgstr "" -#: ../settings/security/third-party.rst:50 +#: ../settings/security/third-party.rst:51 msgid "If you want to allow your users to always be able to log in, no matter what, you may want to enable ``Automatic account link on initial logon``." msgstr "" @@ -15653,19 +15653,19 @@ msgid "Screenshot highlighting the \"Automatic account link on initial logon\"\n "setting" msgstr "" -#: ../settings/security/third-party.rst:60 +#: ../settings/security/third-party.rst:61 msgid "Automatic Account Linking Notification" msgstr "" -#: ../settings/security/third-party.rst:64 +#: ../settings/security/third-party.rst:65 msgid "To improve security and your users awareness, you can enable Zammad to notify your users when a new third-party application has been linked to their account." msgstr "" -#: ../settings/security/third-party.rst:68 +#: ../settings/security/third-party.rst:69 msgid "This notification is sent out once per third-party application. Zammad does also mention the method used, e.g.: ``Microsoft``." msgstr "" -#: ../settings/security/third-party.rst:71 +#: ../settings/security/third-party.rst:72 msgid "By default this setting is not active (set to ``no``)." msgstr "" @@ -15674,19 +15674,19 @@ msgid "Screenshot showing sample notification mail after initial\n" "third-party linking" msgstr "" -#: ../settings/security/third-party.rst:85 +#: ../settings/security/third-party.rst:86 msgid "This notification is only sent if the account in question already exists. If the login via the third-party also creates the missing account, the notification will be skipped." msgstr "" -#: ../settings/security/third-party.rst:89 +#: ../settings/security/third-party.rst:90 msgid "This means it only affects:" msgstr "" -#: ../settings/security/third-party.rst:91 +#: ../settings/security/third-party.rst:92 msgid "manual account linking within the third-party page of the users profile" msgstr "" -#: ../settings/security/third-party.rst:92 +#: ../settings/security/third-party.rst:93 msgid "logging into an existing local account by utilizing the *automatic account link on initial logon* functionality" msgstr "" @@ -15695,15 +15695,15 @@ msgid "Screenshot showing the \"automatic account linking notification\"\n" "setting" msgstr "" -#: ../settings/security/third-party.rst:100 +#: ../settings/security/third-party.rst:101 msgid "No User Creation on Logon" msgstr "" -#: ../settings/security/third-party.rst:102 +#: ../settings/security/third-party.rst:103 msgid "By default, Zammad will create a new user account if the user logs in via a third-party application and the account doesn't exist yet." msgstr "" -#: ../settings/security/third-party.rst:105 +#: ../settings/security/third-party.rst:106 msgid "If you want to prevent Zammad from creating new accounts on logon, you can disable this feature by setting ``No user creation on logon`` to ``yes``." msgstr "" @@ -16089,6 +16089,155 @@ msgid "Screencast showing how to add app credentials and activating the\n" "authentication method" msgstr "" +#: ../settings/security/third-party/openid-connect.rst:2 +msgid "OpenID Connect" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:4 +msgid "Connect your OpenID provider (OP) as a single sign-on (SSO) method." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:6 +msgid "OpenID is an easy and safe way for people to reuse an existing account and user profile from an OpenID provider." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:9 +msgid "The current implementation of OpenID Connect in Zammad is requiring OpenID Connect Discovery to simplify the configuration." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:12 +msgid "The relying party (RP) is Zammad and the OpenID provider is a software service that you either host or subscribe to (e.g. `Keycloak `_)." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:16 +msgid "This guide assumes you are already using OpenID Connect within your organization (i.e. that your OP is fully set up)." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:19 +msgid "The connection between Zammad and your OP has to be secure. Both systems must be reachable via HTTPS. Self-signed certificates are not supported." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:23 +msgid "Please note: Our instructions are based on connecting Zammad with Keycloak." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:27 +msgid "Step 1: Configure Your OP" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:30 +msgid "Add a new Client" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:32 +msgid "Create a new client in your OP with the following settings:" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:36 +msgid "General settings" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:35 +msgid "Client type: OpenID Connect" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:36 +msgid "Client ID: ``zammad`` (or any other name you prefer)" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:40 +msgid "Capability config" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:39 +msgid "Client authentication: Off" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:40 +msgid "Authentication flow: Standard flow" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:45 +msgid "Login settings" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:43 +msgid "Valid redirect URIs: ``https://your.zammad.domain/auth/openid_connect/callback``" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:44 +msgid "Valid post logout redirect URIs: ``https://your.zammad.domain/*``" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:45 +msgid "Web origins: ``+``" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:47 +msgid "In the **Logout settings** for the newly created client, set the **Backchannel logout URL** to ``https://your.zammad.domain/auth/openid_connect/backchannel_logout`` and switch on **Backchannel logout session required**." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:53 +msgid "Step 2: Configure Zammad" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:55 +msgid "Enable OpenID Connect and enter your OP's details in the Admin Panel under **Settings > Security > Third Party Applications > Authentication via OpenID Connect**:" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:None +msgid "Example configuration of OpenID Connect" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:68 +#: ../settings/security/third-party/saml.rst:102 +msgid "Display name" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:65 +msgid "Allows you to define a custom button name for OpenID Connect. This helps your users to understand better what the button on the login page does." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:68 +msgid "Defaults to ``OpenID Connect``." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:71 +msgid "Identifier" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:71 +msgid "The client ID you defined in your OP." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:74 +msgid "Issuer" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:74 +msgid "The issuer URL of your OP. Used for discovery." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:78 +msgid "UID field" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:77 +msgid "Here you can define an attribute that uniquely identifies the user. If unset, ``sub`` is used." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:82 +msgid "Scopes" +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:81 +msgid "The scopes that Zammad should request from the OP. Defaults to ``openid``, ``email`` and ``profile``." +msgstr "" + +#: ../settings/security/third-party/openid-connect.rst:84 +msgid "See :ref:`automatic account linking ` for details on how to link existing Zammad accounts to OP accounts." +msgstr "" + #: ../settings/security/third-party/saml.rst:2 msgid "SAML" msgstr "" @@ -16197,10 +16346,6 @@ msgstr "" msgid "Example configuration of SAML part 1" msgstr "" -#: ../settings/security/third-party/saml.rst:102 -msgid "Display name" -msgstr "" - #: ../settings/security/third-party/saml.rst:99 msgid "Allows you to define a custom button name for SAML. This helps your users to understand better what the button on the login page does." msgstr "" diff --git a/settings/security/third-party.rst b/settings/security/third-party.rst index 4068bf45..e50d2193 100644 --- a/settings/security/third-party.rst +++ b/settings/security/third-party.rst @@ -19,8 +19,9 @@ of the mentioned authentication providers are enabled in your instance. third-party/gitlab third-party/google third-party/microsoft - third-party/twitter + third-party/openid-connect third-party/saml + third-party/twitter .. note:: @@ -107,4 +108,3 @@ disable this feature by setting ``No user creation on logon`` to ``yes``. .. figure:: /images/settings/security/login_no_user_creation.png :alt: Screenshot showing the "no user creation on logon" setting - diff --git a/settings/security/third-party/openid-connect.rst b/settings/security/third-party/openid-connect.rst new file mode 100644 index 00000000..2c3f9f8e --- /dev/null +++ b/settings/security/third-party/openid-connect.rst @@ -0,0 +1,85 @@ +OpenID Connect +============== + +Connect your OpenID provider (OP) as a single sign-on (SSO) method. + +OpenID is an easy and safe way for people to reuse an existing account and user +profile from an OpenID provider. + +.. hint:: The current implementation of OpenID Connect in Zammad is requiring + OpenID Connect Discovery to simplify the configuration. + +The relying party (RP) is Zammad and the OpenID provider is a software service +that you either host or subscribe to +(e.g. `Keycloak `_). + +This guide assumes you are already using OpenID Connect within your organization +(i.e. that your OP is fully set up). + +.. warning:: The connection between Zammad and your OP has to be secure. Both + systems must be reachable via HTTPS. Self-signed certificates are not + supported. + +.. hint:: Please note: Our instructions are based on connecting Zammad with + Keycloak. + +Step 1: Configure Your OP +-------------------------- + +Add a new Client +^^^^^^^^^^^^^^^^ + +Create a new client in your OP with the following settings: + +General settings + * Client type: OpenID Connect + * Client ID: ``zammad`` (or any other name you prefer) + +Capability config + * Client authentication: Off + * Authentication flow: Standard flow + +Login settings + * Valid redirect URIs: ``https://your.zammad.domain/auth/openid_connect/callback`` + * Valid post logout redirect URIs: ``https://your.zammad.domain/*`` + * Web origins: ``+`` + +In the **Logout settings** for the newly created client, set the +**Backchannel logout URL** to +``https://your.zammad.domain/auth/openid_connect/backchannel_logout`` and +switch on **Backchannel logout session required**. + +Step 2: Configure Zammad +------------------------ + +Enable OpenID Connect and enter your OP's details in the Admin Panel under +**Settings > Security > Third Party Applications > Authentication via OpenID +Connect**: + +.. image:: /images/settings/security/third-party/openid-connect/zammad_connect_oidc_thirdparty_general.png + :alt: Example configuration of OpenID Connect + :scale: 60% + :align: center + +Display name + Allows you to define a custom button name for OpenID Connect. This helps your + users to understand better what the button on the login page does. + + Defaults to ``OpenID Connect``. + +Identifier + The client ID you defined in your OP. + +Issuer + The issuer URL of your OP. Used for discovery. + +UID field + Here you can define an attribute that uniquely identifies the user. If unset, + ``sub`` is used. + +Scopes + The scopes that Zammad should request from the OP. Defaults to ``openid``, + ``email`` and ``profile``. + +See :ref:`automatic account linking ` for details on +how to link existing Zammad accounts to OP accounts.