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 requis ultérieurement pour la configuration. Il s'agit de l'ID de l'application (client) et de l'ID du locataire :
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 |
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é groups 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.