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

ID de groupe Azure correspondant au groupe distant SKOOR :

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

Enregistrement 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 (monoclient ou multi-clients).
Comme URI de redirection, configurez les éléments suivants, en fonction des services activés par votre server. Cela peut également être modifié 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 de client

Une fois l'enregistrement de l'application sauvegardé, ouvrez l'onglet « Overview » (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

Ensuite, allez dans 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 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 sélectionnez la propriété du jeton. Tapez « ID » dans « 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 d'une autorisation pour 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 « 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 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

Voici la configuration minimale requise pour faire fonctionner un 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 par rapport à un Active Directory interne.

Paramètres du domaine

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 <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 client pour SKOOR.

L'ID client doit être inséré 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 Dashboard

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

SKOOR Dashboard Viewer

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

Le secret client nécessaire pour la configuration du fournisseur <client_secret> est disponible 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 d'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 l'authentification unique Kerberos est nécessaire, elle peut être activée dans le menu Authentification.