Passer au contenu principal
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.

Configurer Active Directory

  1. Accédez à Auth0 Dashboard > Authentication > Enterprise > Active Directory/LDAP, puis sélectionnez la connexion à configurer.
  2. Activez le bouton bascule Use Windows Integrated Auth (Kerberos).

Plage détectée automatiquement pour Kerberos

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.
  1. 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.
  2. 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.

Flux d’authentification

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.
Configurer l’authentification du connecteur AD/LDAP avec le diagramme du flux Kerberos
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).
Configurer l’authentification du connecteur AD/LDAP avec le diagramme du flux d’identifiants Kerberos

Connexion automatique avec Lock

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>

Ignorer Kerberos à l’exécution

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()});

Activer la journalisation des requêtes Kerberos

  1. Pour activer la journalisation détaillée des requêtes Kerberos, ajoutez la variable d’environnement système DEBUG=kerberos-server.
  2. Redémarrez le connecteur.
  3. Ouvrez une session de nouveau et consultez les journaux pour obtenir plus d’informations.

Prise en charge de Kerberos par Firefox

Par défaut, Firefox rejette toutes les requêtes « negotiate » requises pour authentifier les utilisateurs avec Kerberos. Si vous souhaitez utiliser Firefox avec Kerberos, vous devez ajouter à la liste d’autorisation le serveur sur lequel le connecteur est installé.
  1. Ouvrez un onglet Firefox et tapez about:config dans la barre d’adresse.
  2. Ignorez tout message d’avertissement, puis tapez negotiate dans la zone de recherche.
  3. Repérez l’élément network.negotiate-auth.trusted-uris et double-cliquez dessus pour modifier sa valeur.
  4. 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.
  5. Cliquez sur OK. Vous n’avez pas besoin de redémarrer le serveur pour que les modifications prennent effet.

Prise en charge d’HTTPS pour Kerberos

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 :
  1. 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.
  2. Faites correspondre SERVER_URL dans le proxy inverse à toutes les instances internes des connecteurs déployés.