Fournisseurs d'authentification externes

Plusieurs fournisseurs d'authentification externes peuvent être définis à l'aide des sections [provider.x] :

[provider.1]
type = oidc
                            # Provider type, currently only oidc is available
name = OIDC Example
                            # Display name
issuer = example
                            # issuer of the tokens. Can be "google", "microsoft"
                            # or an arbitrary string for custom identity
                            # providers
icon = url('data:image/svg+xml;base64,...')
                            # Optional display icon. Can be either a remote or
                            # a data URL. If omitted, a default icon is used
                            # based on type and provider.
metadata_url = https://example.com/auth/realms/<realm>
                            # URL to get OIDC metadata from. Can be obtained
                            # from the provider.
                            # It usually contains a realm or tenant id.
client_id = <client-id>
                            # OIDC client secret. Can be obtained from the
                            # provider. Some providers call this "app id".
client_secret = <client-secret->
                            # OIDC client secret. Can be obtained from the
                            # provider. Some providers call this "secret value".
hidden = false
                            # it is possible to hide an authentication provider
                            # on the SKOOR Auth start page. This can be useful
                            # if e.g. normal users authenticate against a public
                            # provider and support employees against an internal
                            # one.

Microsoft Azure AD OpenID Connect

Entrée du fournisseur SKOOR Auth

[provider.1]
type = oidc
name = Azure AD Example
issuer = microsoft
metadata_url = https://login.microsoftonline.com/<tenant-id>/v2.0
client_id = <app-id>
client_secret = <secret-value>

L'icône est définie automatiquement en fonction du nom de l'émetteur.

Paramètres requis dans Azure AD

ID de groupe Azure correspondant au groupe distant SKOOR :

Afin de permettre aux utilisateurs de se connecter et d'obtenir le rôle correct attribué, ces identifiants doivent être configurés.
Dans l'exemple ci-dessous, tous les utilisateurs du groupe Azure AD avec l'ID c2b2***** auront le rôle d'administrateur après la connexion :

Inscription de l'application

Dans votre Azure Active Directory, vous enregistrez une nouvelle application, choisissez les types de comptes pris en charge en fonction de votre configuration AD (mono-locataire ou multi-tenant).
En tant qu'URI de redirection, configurez les éléments suivants, en fonction des services activés par votre server . Cela peut également être modifié ultérieurement.

Engine Skoor / Tableau de bord Skoor

https:// /skoor-auth/oidc/code

Dashboard Viewer Skoor

https://FQDN/skoor-dashboard- viewer -auth/oidc/code

ID locataire et ID client

Une fois l'enregistrement de l'application enregistré, ouvrez l'onglet d'aperçu de l'application créée et notez les deux identifiants qui seront ensuite nécessaires à la configuration. Ceux-ci sont appelés :

  • ID d'application (client)

  • ID d'annuaire (locataire)

Certificats et secrets

Ensuite, accédez à Certificats et secrets et ajoutez un secret client. Donnez un nom à ce secret et choisissez une date d'expiration. Une fois enregistré, vous pouvez voir l'identifiant secret et la valeur secrète. La valeur secrète est ensuite requise pour configurer le service Skoor Auth.

Jeton

Accédez à la configuration du jeton et sélectionnez « Ajouter une revendication de groupes ». Dans la configuration de la revendication, sélectionnez « Groupes de sécurité » et sélectionnez la propriété de jeton Tapez « ID » sur « sAMAccountName ».

Autorisation API

Cette étape est facultative. Pour activer plus de détails sur la configuration utilisateur dans Skoor, par exemple la photo de profil, l'application a besoin de l'autorisation de lire le profil utilisateur complet.
Pour cela, vous pouvez effectuer les étapes suivantes dans l'onglet « Autorisations API » :

  • Ajouter une autorisation

  • Sélectionnez Microsoft Graph

  • Autorisations déléguées

  • Recherchez User.Read ou faites défiler la section « user » et sélectionnez « User.Read », puis cliquez sur « ajouter une autorisation ».

  • De retour dans l'aperçu, confirmez l'autorisation en sélectionnant « Accorder le consentement de l'administrateur ».

Porte-clés

Entrée du fournisseur SKOOR Auth

[provider.2]
type = oidc
name = SKOOR Keycloak
issuer = skoor
icon = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDI1LjAwMDAwMSAyNSIKICAgaGVpZ2h0PSIyNSIKICAgd2lkdGg9IjI1IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBzb2RpcG9kaTpkb2NuYW1lPSJza29vci1jaXJjbGUuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjUgKDIwNjBlYzFmOWYsIDIwMjAtMDQtMDgpIj48c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxNiIKICAgICBpZD0ibmFtZWR2aWV3MTMiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjIyLjIyNjk2NyIKICAgICBpbmtzY2FwZTpjeD0iOC4yODU2MDM4IgogICAgIGlua3NjYXBlOmN5PSIxMy42MjkyMjYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMiIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIgLz48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNiIgLz48cGF0aAogICAgIGlkPSJwYXRoMjQiCiAgICAgc3R5bGU9ImZpbGw6I2UyMDA3YTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wMjg2ODc3NSIKICAgICBkPSJtIDYuMDkzODUyMiwxMi4xNzc1MjUgYyAwLDMuODgzNDYgMi44Njc5MTM1LDYuNzIwOTY2IDYuMzYyMzY2OCw2LjcyMDk2NiAzLjQ5NTAyOSwwIDYuMzYyOTQ1LC0yLjgzNzUwNiA2LjM2Mjk0NSwtNi43MjA5NjYgMCwtMy4xMDYyOTU2IC0yLjg2NzkxNiwtNS45NDM4MDA1IC02LjM2Mjk0NSwtNS45NDM4MDA1IC0zLjQ5NDQ1MzMsMCAtNi4zNjIzNjY4LDIuODM3NTA0OSAtNi4zNjIzNjY4LDUuOTQzODAwNSB6IE0gMjQuOTEyNDQxLDEyLjE0Nzk4IGMgMCw3LjI4ODY5NiAtNS4yMjcxOTUsMTIuNDI2NjcyIC0xMi40NTYyMjIsMTIuNDI2NjcyIEMgNS4yMjc0ODE1LDI0LjU3NDY0OSAwLDE5LjQzNjY3MiAwLDEyLjE0Nzk3NyAwLDUuMzM3NTE5MyA1Ljk3NDIyNDMsMC41NTc4NTM0NSAxMi40NTYyMTksMC41NTc4NTM0NSBjIDYuNDgyMjg0LDAgMTIuNDU2MjIyLDQuNzc5NjY1ODUgMTIuNDU2MjIyLDExLjU5MDEyMzU1IgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PC9zdmc+')
metadata_url = https://<keycloak-server-address>/auth/realms/<realm>
client_id = <client-id>
client_secret = <client-secret>

Puisque nous avons un émetteur personnalisé, nous devons fournir une icône à afficher à côté du nom. Nous pouvons fournir l'icône en utilisant une URL de données.

Paramètres requis dans Keycloak

Ce qui suit est une configuration minimale pour faire fonctionner un OIDC avec Keycloak. Cela peut être utilisé si vous ne disposez pas déjà d'un fournisseur d'authentification compatible OIDC et que vous souhaitez authentifier vos utilisateurs auprès d'un annuaire actif interne.

Paramètres du royaume

Si vous n'avez pas encore configuré de domaine, vous devez en ajouter un. Un bon nom de domaine pourrait être le nom de votre entreprise. Ce nom est la valeur que vous devez insérer comme dans l'entrée de votre fournisseur.

Ce pourrait être une bonne idée d'activer l'option Se souvenir de moi dans l'onglet Connexion .


Clientèle

Vous devez ajouter une configuration client pour SKOOR.

L'ID client doit être inséré comme dans la configuration de votre fournisseur.

Le protocole client doit être openid-connect .

Le type d'accès doit être confidentiel

Le flux standard doit être activé.

Les URL de redirection doivent être définies sur les valeurs suivantes :

Engine Skoor / Tableaux de bord Skoor

https:// /skoor-auth/oidc/code

Dashboard Viewer Skoor

https://FQDN/skoor-dashboard- viewer -auth/oidc/code

Le secret client nécessaire pour le configuration du fournisseur que vous pouvez obtenir à partir de l’onglet Informations d’identification.

Portées client

Afin d'obtenir des informations de groupe pour un utilisateur, un mappeur supplémentaire appelé groupes doit être ajouté à la portée du profil .

Fédération des utilisateurs

Afin de pouvoir s'authentifier auprès d'un Active Directory, un fournisseur LDAP doit être ajouté.

Ces paramètres dépendent fortement de votre configuration AD

Une étape très importante consiste à ajouter un mappeur de type group-ldap-mapper.

Kerberos

Si Kerberos SSO est nécessaire, cela peut être activé dans le menu Authentification