Configurer l’authentification Kerberos du connecteur AD/LDAP
Explique comment configurer l’authentification Kerberos du connecteur AD/LDAP pour la fédération.
Vous pouvez établir une fédération avec Active Directory au moyen du connecteur AD/LDAP si vous utilisez Classic Login. Le connecteur AD/LDAP permet à vos utilisateurs de s’authentifier lorsqu’ils utilisent un ordinateur joint au domaine au sein du réseau d’entreprise.
Lorsque l’authentification Kerberos est activée, l’adresse IP visible du serveur sur lequel s’exécute le connecteur AD est implicitement ajoutée à la plage d’adresses IP du réseau. Cela signifie que si les requêtes d’un utilisateur proviennent de la même adresse IP visible que celle du connecteur AD, l’authentification Kerberos sera alors tentée.
Configurez les plages d’adresses IP. Utilisez la notation CIDR. Il doit s’agir de plages visibles par Auth0. Lorsque Auth0 s’exécute dans le cloud, il ne peut pas voir l’adresse IP interne de votre utilisateur. Dans ce cas, configurez la ou les adresses IP publiques/WAN de votre entreprise.
Nous recommandons de redémarrer le service Windows qui héberge le connecteur AD chaque fois que ce paramètre est modifié. Les changements prendront ainsi effet immédiatement.
Selon l’emplacement des utilisateurs, le flux d’authentification diffère lorsque des plages d’adresses IP sont définies. En prenant Fabrikam comme exemple, puisque l’entreprise utilise la version SaaS d’Auth0, elle a configuré son adresse IP publique (24.12.34.56/32) dans la connexion. Les utilisateurs qui se connectent depuis l’intérieur du bâtiment proviendront tous de 24.12.34.56 (comme configuré dans la connexion). Lorsqu’ils s’authentifient, ils peuvent suivre le flux AD/LDAP natif et bénéficier d’une expérience transparente.Pour que cela fonctionne, le réseau doit permettre aux utilisateurs de se connecter au connecteur AD/LDAP sur le port configuré dans le fichier config.json. Dans les déploiements du connecteur en haute disponibilité, l’adresse à laquelle les utilisateurs se connecteront est celle du répartiteur de charge réseau placé devant toutes les instances du connecteur.
Pour en savoir plus, consultez Déployer des connecteurs AD/LDAP dans des environnements à haute disponibilité.D’autre part, lorsque les utilisateurs ne sont pas sur le réseau d’entreprise (par exemple, chez un client ou en télétravail sans VPN), ils ne pourront pas accéder directement au connecteur AD/LDAP. Ils devront saisir leur nom d’utilisateur/mot de passe, et Auth0 validera ces identifiants auprès du connecteur AD/LDAP (qui utilisera ensuite Active Directory pour les valider).
La détection de plages d’adresses IP dans une connexion AD/LDAP et l’utilisation de ces plages avec Lock pour permettre l’authentification Windows intégrée est une fonctionnalité qui fonctionne avec Lock 10, mais qui ne peut être utilisée avec Lock 11 que dans les scénarios Universal Login. Cette fonctionnalité est désactivée dans Lock 11 lorsque Lock 11 est utilisé dans des scénarios d’Embedded Login.
Lorsqu’une application utilise Lock 10 ou 11 dans la page de connexion hébergée par Auth0 (généralement utilisée pour les protocoles /WS-Federation et les intégrations d’authentification unique (SSO)), un bouton permet aux utilisateurs de s’authentifier à l’aide de “l’authentification Windows”.Dans certains cas, il peut être nécessaire d’ouvrir automatiquement la session de l’utilisateur si Kerberos est disponible (en fonction de l’adresse IP de l’utilisateur final). Les modifications suivantes peuvent être ajoutées à la page de connexion Auth0 pour ouvrir automatiquement la session de l’utilisateur si Kerberos est disponible :
<script src="https://cdn.auth0.com/js/lock/11.x.x/lock.min.js"></script><script src="https://cdn.auth0.com/js/auth0/9.x/auth0.min.js"></script><script src="https://cdn.auth0.com/js/polyfills/1.0/object-assign.min.js"></script><script> var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@')))); var lock = new Auth0Lock(config.clientID, config.auth0Domain, { //...configuration supplémentaire }); function handleError(err) { // ajouter une gestion des erreurs appropriée console.log(err); }; var params = Object.assign({ scope: config.internalOptions.scope, _csrf: config.internalOptions._csrf, state: config.internalOptions.state, }, { /* configuration supplémentaire requise pour l'utilisation de domaines personnalisés overrides: { __tenant: config.auth0Tenant, __token_issuer: '{yourCustomDomain}' }, */ domain: config.auth0Domain, clientID: config.clientID, redirectUri: config.callbackURL, responseType: 'code' }); var webAuth = new auth0.WebAuth(params); /* * Vérifier si Kerberos est possible ; si c'est le cas, tenter d'authentifier l'utilisateur. * * la réponse de getSSOData ne contiendra une connexion et une stratégie que si * l'adresse IP se trouve dans la plage Kerberos définie dans les paramètres de la connexion */ webAuth.client.getSSOData(true, function(err, data) { if (err) handleError(err); if (data.connection && data.strategy === 'ad') { webAuth.authorize({connection: data.connection}, function(err) { if (err) handleError(err); }); } else { lock.show(); } });</script>
Vous pouvez empêcher l’utilisation de Kerberos, même si l’utilisateur se connecte depuis une adresse IP comprise dans la plage configurée dans les paramètres de la connexion, en passant rememberLastLogin: false à lock.show().
function useKerberos() { // retourner true pour utiliser Kerberos, false pour contourner }; lock.show({rememberLastLogin: useKerberos()});
Ouvrez un onglet Firefox et tapez about:config dans la barre d’adresse.
Ignorez tout message d’avertissement, puis tapez negotiate dans la zone de recherche.
Repérez l’élément network.negotiate-auth.trusted-uris et double-cliquez dessus pour modifier sa valeur.
Tapez le nom de domaine du serveur sur lequel le connecteur est installé. Si vous avez plusieurs instances du connecteur derrière un répartiteur de charge, ajoutez le nom DNS du répartiteur.
La valeur accepte une liste de préfixes d’URL ou de domaines séparés par des virgules, sous la forme mydomain.com, https://myotherdomain.com.
Cliquez sur OK. Vous n’avez pas besoin de redémarrer le serveur pour que les modifications prennent effet.
L’authentification Kerberos fonctionne sur HTTP (et non sur HTTPS). Microsoft Office 365 et d’autres produits modernes pourraient ne pas fonctionner avec HTTP.Pour remédier à cette limitation :
Configurez un proxy inverse et exposez le connecteur AD/LDAP sur un domaine HTTPS. Vous pouvez utiliser le paramètre SERVER_URL (URL frontale) pour publier l’emplacement public où le connecteur AD/LDAP écoutera les requêtes entrantes.
Faites correspondre SERVER_URL dans le proxy inverse à toutes les instances internes des connecteurs déployés.