Adds support for OIDC login that uses pkce flow.
Login via third party authentication services.
Easily add a "Login with GitHub" button your Matomo instance. You can also setup any other service to do the authentication for you.
What is the callback url?
http(s)://<YOUR_MATOMO_URL>/index.php?module=PkceOIDC&action=callback&provider=oidc
Which providers can I use?
I tested the plugin with Auth0, GitHub and Keycloak, which work fine. If your provider does not seem to work, leave an issue on GitHub.
How can I unlink all users?
The easiest way is to fully uninstall the plugin and reinstall afterwards.
Otherwise you can delete data from matomo_loginoidc_provider in your sql database.
If you change the OAuth provider and there could be user id collisions, you should make sure to unlink all users beforehand.
Can I embed the Login button on another website?
You have to uncheck the Disable direct login url option in the settings.
Afterwards you can link to http(s)://<YOUR_MATOMO_URL>/index.php?module=PkceOIDC&action=signin&provider=oidc and Matomo will redirect the client accordingly.
Can I setup more than one provider?
Currently that is not possible. But you can use services like Auth0, which support multiple providers.
I get a Can't create table error when installing the plugin
Most likely you are using a very old Piwik installation, which still uses MyISAM tables. Learn here on how to update the database engine: https://matomo.org/faq/troubleshooting/faq_25610/
What are the settings for ...?
GitHub:
https://github.com/login/oauth/authorizehttps://github.com/login/oauth/access_tokenhttps://api.github.com/userid<EMPTY>Auth0:
https://<USERNAME>.eu.auth0.com/authorizehttps://<USERNAME>.eu.auth0.com/oauth/tokenhttps://<USERNAME>.eu.auth0.com/userinfosubopenid emailKeycloak:
http(s)://<YOUR_KEYCLOAK_URL>/auth/realms/<REALM>/protocol/openid-connect/authhttp(s)://<YOUR_KEYCLOAK_URL>/auth/realms/<REALM>/protocol/openid-connect/tokenhttp(s)://<YOUR_KEYCLOAK_URL>/auth/realms/<REALM>/protocol/openid-connect/userinfohttp(s)://<YOUR_KEYCLOAK_URL>/auth/realms/<REALM>/protocol/openid-connect/logout?redirect_uri=<MATOMO_URL>subopenid emailGitlab (self-hosted Community Edition 12.6.2):
http(s)://<YOUR_GITLAB_URL>/oauth/authorizehttp(s)://<YOUR_GITLAB_URL>/oauth/tokenhttp(s)://<YOUR_GITLAB_URL>/oauth/userinfosubopenid emailUnikname Connect:
Connect with your private @uniknamehttps://connect.unikname.com/oidc/authorizehttps://connect.unikname.com/oidc/accessTokenhttps://connect.unikname.com/oidc/profilesubopenid emailMicrosoft Azure AD
https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorizehttps://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/tokenhttps://graph.microsoft.com/oidc/userinfosubopenid emailAuthentik
https://<YOUR_AUTHENTIK_URL>/application/o/authorize/https://<YOUR_AUTHENTIK_URL>/application/o/token/https://<YOUR_AUTHENTIK_URL>/application/o/userinfo/https://<YOUR_AUTHENTIK_URL>/application/o/<YOUR_AUTHENTIK_APPLICATION_SLUG>/end-session/subopenid emailIn the Authentik Provider:
.* (only that worked for me, don't forget the DOT before!)
Remaining inputs for provider and application as normal.