Fournisseurs d'authentification externes

Il est possible de définir plusieurs fournisseurs d'authentification externes à 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.
default_group = <group-name>
                            # if a default group is specified, all users
                            # authenticating against this provider will be
                            # automatically added to this group. This can be
                            # useful if the provider does not provide group information
                            # or if all users should be added to a specific group.

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

ID de groupe Azure correspondant au groupe distant SKOOR :

Afin de permettre aux utilisateurs de se connecter et de se voir attribuer le rôle approprié, ces identifiants doivent être configurés.
Dans l’exemple ci-dessous, tous les utilisateurs du groupe Azure AD portant l’identifiant c2b2***** se verront attribuer le rôle d’administrateur après leur connexion :

Enregistrement de l’application

Dans votre Azure Active Directory, enregistrez une nouvelle application et choisissez les types de comptes pris en charge en fonction de la configuration de votre AD (monolocatataire ou multilocatataire).
Configurez l’URI de redirection comme suit, en fonction des services que votre server 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 de locataire et ID client

Une fois l'enregistrement de l'application validé, ouvrez l'onglet « 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 d'application (client)

  • ID du répertoire (locataire)

Certificats et secrets

Rendez-vous ensuite dans la section « Certificats et secrets » et ajoutez un secret client. Attribuez un nom à ce secret et choisissez une date d’expiration. Une fois l’enregistrement effectué, vous pouvez voir l’identifiant du secret et sa valeur. La valeur du secret sera nécessaire ultérieurement pour configurer le service SKOOR Auth.

Jeton

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

Autorisations API

Cette étape est facultative. Pour activer davantage de détails sur la configuration de l’utilisateur dans Skoor, par exemple la photo de profil, l’application a besoin d’une autorisation pour lire l’intégralité du profil utilisateur.
Pour cela, vous pouvez suivre 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 « utilisateur » 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 »

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>

Comme nous disposons d’un émetteur personnalisé, nous devons fournir une icône à afficher à côté du nom. Nous pouvons fournir cette icône à l’aide d’une URL de données.

Paramètres requis dans Keycloak

Voici la configuration minimale requise pour faire fonctionner l’OIDC avec Keycloak. Elle peut être utilisée si vous ne disposez pas encore d’un fournisseur d’authentification compatible OIDC et que vous souhaitez authentifier vos utilisateurs via un Active Directory interne.

Paramètres du realm

Si vous n’avez pas encore configuré de realm, vous devez en ajouter un. Un nom de realm approprié pourrait être le nom de votre entreprise. Ce nom correspond à la valeur que vous devez insérer sous la balise <realm> dans votre entrée de fournisseur.

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


Clients

Vous devez ajouter une configuration de client pour SKOOR.

L'ID client doit être saisi sous la forme <client_id> 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 :

SKOOR Engine / SKOOR Dashboards

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

SKOOR Dashboard Viewer

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

Vous pouvez obtenir le secret client nécessaire à la configuration du fournisseur <client_secret> dans l'onglet « Credentials » (Identifiants).

Portées client

Afin d’obtenir les informations de groupe d’un utilisateur, un mappeur supplémentaire appelé « groups » doit être ajouté à la portée du profil.

Fédération des utilisateurs

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

Ces paramètres dépendent fortement de la configuration de votre Active Directory.

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

Kerberos

Si l'authentification unique (SSO) Kerberos est nécessaire, elle peut être activée dans le menu « Authentification ».