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 d'authentification 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

L'ID du groupe Azure doit correspondre au groupe distant SKOOR :

Afin de permettre aux utilisateurs de se connecter et de se voir attribuer le rôle correct, 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 :

Enregistrement d'applications

Dans votre Azure Active Directory, vous enregistrez une nouvelle application, choisissez les types de comptes pris en charge en fonction de votre configuration AD (locataire unique ou multiple).
En tant qu'URI de redirection, configurez ce qui suit, en fonction des services que votre serveur a activés. Ces paramètres peuvent également être modifiés ultérieurement.

SKOOR Engine / SKOOR Dashboard

https://<FQDN>/skoor-auth/oidc/code

SKOOR Dashboard Viewer

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

ID du locataire et ID du client

Une fois l'enregistrement de l'application sauvegardé, ouvrez l'onglet d'aperçu de l'application créée et notez les deux identifiants qui seront nécessaires ultérieurement pour la configuration. Il s'agit des identifiants suivants

  • ID de l'application (client)

  • ID du répertoire (locataire)

Certificats et secrets

Ensuite, allez dans Certificats & secrets et ajoutez un secret client. Définissez un nom pour ce secret et choisissez une date d'expiration. Une fois sauvegardé, vous pouvez voir l'identifiant et la valeur du secret. La valeur du secret est requise ultérieurement pour configurer le service SKOOR Auth.

Jeton

Allez dans la configuration du token et sélectionnez "add groups claim". Dans la configuration de la demande, sélectionnez "Security groups" et sélectionnez la propriété du jeton Type "ID" à "sAMAccountName".

Permission API

Cette étape est facultative. Pour permettre plus de détails sur la configuration de l'utilisateur dans Skoor, par exemple la photo de profil, l'application a besoin de la permission de lire le profil complet de l'utilisateur.
Vous pouvez donc effectuer les étapes suivantes dans l'onglet "Permissions API" :

  • Ajouter une autorisation

  • Sélectionnez Microsoft Graph

  • Permissions déléguées

  • Recherchez User.Read ou faites défiler la section 'user' et sélectionnez 'User.Read' puis cliquez sur 'add permission'.

  • De retour dans la vue d'ensemble, confirmez la permission en sélectionnant "Accorder le consentement de l'administrateur".

Keycloak

Entrée du fournisseur d'authentification 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 à l'aide d'une URL de données.

Paramètres requis dans Keycloak

Ce qui suit est une configuration minimale pour faire fonctionner un OIDC avec Keycloak. Cette configuration peut être utilisée si vous n'avez pas encore de fournisseur d'authentification compatible avec l'OIDC et que vous souhaitez authentifier vos utilisateurs par rapport à un répertoire actif interne.

Paramètres du royaume

Si vous n'avez pas encore de royaume configuré, 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 en tant que <realm> dans l'entrée de votre fournisseur.

Il peut être judicieux d'activer l'option Se souvenir de moi dans l'onglet Connexion.


Clients

Vous devez ajouter une configuration client pour SKOOR.

L'identifiant du client doit être inséré comme <client_id> dans la configuration du fournisseur.

Leprotocole du client doit être openid-connect.

Letype d'accès doit être confidentiel

Leflux standard doit être activé.

Les URL de redirection doivent être réglées sur les valeurs suivantes :

SKOOR Engine / SKOOR Dashboards

https://<FQDN>/skoor-auth/oidc/code

SKOOR Dashboard Viewer

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

Le secret du client nécessaire pour la configuration du fournisseur <client_secret> peut être obtenu à partir de l'onglet Credentials.

Champs d'application du client

Afin d'obtenir des informations sur les groupes pour un utilisateur, un mappeur supplémentaire appelé groupes doit être ajouté à l'étendue du profil.

Fédération d'utilisateurs

Afin de pouvoir s'authentifier auprès d'un répertoire actif, 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 le SSO Kerberos est nécessaire, il peut être activé dans le menu Authentification.