È possibile utilizzare l'area di lavoro Autenticazione per configurare i servizi di directory di SaltStack Config mediante il protocollo LDAP. Questo protocollo viene utilizzato per la connessione a servizi come Active Directory o Microsoft Azure.

Nota: Se necessario, è possibile utilizzare più sistemi alla volta per eseguire l'autenticazione degli utenti in SaltStack Config. Ad esempio, è possibile utilizzare sia un provider di identità basato su SAML sia un provider di identità basato su LDAP archiviando contemporaneamente alcune credenziali utente in modo nativo nel server RaaS. Tuttavia, SaltStack Config non consente di configurare più di due provider SAML o due provider LDAP contemporaneamente.

SaltStack Config utilizza il seguente processo di back-end per eseguire l'autenticazione dei sistemi basati su LDAP:

  • Anteprima: quando si visualizza l'anteprima delle impostazioni di connessione, SaltStack Config recupera un elenco campione di utenti e gruppi dal server LDAP in modo che sia possibile verificare di aver immesso i parametri di configurazione corretti.
  • Accesso: quando un utente immette le credenziali nel modulo di accesso di SaltStack Config, il server back-end verifica la presenza di una corrispondenza nel database in quel momento. Avvia quindi un processo di ricerca in più passaggi e, una volta trovata una corrispondenza, esegue l'autenticazione dell'utente. Dato questo processo di ricerca, i singoli utenti abilitati in gruppi abilitati non vengono visualizzati nell'area di lavoro Ruoli finché non accedono per la prima volta.
  • Attività in background: SaltStack Config esegue periodicamente un processo in background per cercare ciascun gruppo e utente collegato nella connessione al servizio directory per assicurarsi che sia ancora esistente. Se il gruppo o l'utente è stato rimosso, il server back-end disattiva il proprio collegamento nel database.
  • Utenti e gruppi archiviati: tutti i gruppi che vengono rimossi dalla connessione al servizio directory vengono archiviati. Anche se questi gruppi sono inattivi e gli utenti non possono accedere, sono comunque visibili nell'area di lavoro Ruoli e possono essere selezionati. Ciò vale anche per tutti gli utenti rimossi precedentemente visibili nell'area di lavoro Ruoli.
  • Gruppi nidificati: quando si utilizzano gruppi nidificati, se si abilita un gruppo principale, per impostazione predefinita vengono abilitati anche tutti i gruppi secondari.

Configurazione di una connessione LDAP

Per configurare LDAP, creare innanzitutto una connessione, quindi abilitare utenti e gruppi LDAP specifici per l'autenticazione in SaltStack Config. Dopo aver abilitato gruppi o utenti, è possibile definire le loro impostazioni di controllo degli accessi basato sui ruoli.

È possibile scegliere di precompilare i campi con impostazioni predefinite personalizzate per il servizio directory, ad esempio Active Directory oppure OpenLDAP.

Nota: I passaggi seguenti devono essere completati da un amministratore di LDAP o Active Directory esperto che conosca il layout generale del sistema LDAP. Contattare l'amministratore per ricevere assistenza.

Per configurare un servizio directory LDAP:

  1. (Facoltativo) Prima di configurare LDAP, può essere utile verificare la connessione e le query utilizzando uno strumento di terze parti. Per gli utenti di Active Directory, è possibile utilizzare LDP o ADSI Edit. Per gli utenti di Linux, lo strumento consigliato è ldapsearch.
    Nota: Per ulteriori informazioni sui test con questi strumenti, vedere Come verificare e risolvere i problemi di connessione di un servizio directory nel centro di assistenza.
  2. Fare clic su Amministrazione > Autenticazione nel menu laterale.
  3. Fare clic su Crea.
  4. Nel menu Tipo di configurazione, selezionare LDAP.
  5. (Facoltativo) In Impostazioni, fare clic su Precompila valori predefiniti e selezionare il servizio directory nel menu a discesa.

    Le voci predefinite vengono compilate in base alla selezione. Tuttavia, alcune voci, come DN ricerca utente, sono incomplete. Assicurarsi di verificare che le voci corrispondano allo schema del servizio directory e di sostituire il testo segnaposto con i valori corretti per il servizio.

  6. Immettere o verificare le informazioni per la connessione LDAP.

    Di base

    Campo Descrizione
    Nome Nome della connessione LDAP. Poiché si tratta solo di un nome visualizzato, immettere qualsiasi nome che consenta di differenziare questo back-end di autenticazione dagli altri.
    Host Indirizzo del server host LDAP, formattato come nome di dominio completo o indirizzo IP.
    Porta Porta in cui è configurato il server LDAP. L'impostazione predefinita è 389 per il protocollo LDAP non crittografato e 636 per LDAP su SSL.
    Sincronizzazione in background SaltStack Config convalida tutti gli utenti e i gruppi rispetto al back-end di autenticazione a un intervallo impostato definito (in minuti) qui.
    SSL
    Abilita SSL
    Scegliere di connettersi al server LDAP tramite SSL (Secure Sockets Layer) utilizzando il certificato specificato nelle impostazioni del server RaaS. Se non viene fornita alcuna configurazione, per convalidare la connessione SSL verrà utilizzato l'archivio dei certificati di sistema. Per ulteriori informazioni sulla configurazione del server RaaS, vedere Configurazione dei certificati SSL nella Guida all'installazione e alla configurazione di SaltStack Config.
    Importante: È consigliabile selezionare Abilita SSL. Quando questa opzione non è selezionata, SaltStack Config trasmette le informazioni in testo normale tramite una connessione non sicura.
    Convalida certificato
    Selezionare questa opzione per assicurarsi che i certificati SSL vengano convalidati al momento della connessione. Lasciarla deselezionata per ignorare la convalida, ad esempio quando si utilizzano certificati autofirmati (operazione non consigliata per la produzione).

    Autenticazione

    Campo Descrizione
    DN di base di autenticazione

    Nome distinto del protocollo LDAP di base. Si tratta della posizione da cui vengono eseguite le query relative a utenti e gruppi, ad esempio DC=sse,DC=example,DC=com.

    Nota: La pagina dei dettagli di LDAP include campi di input separati per Classe oggetto persona, Nome attributo account, Classe gruppo, Nome attributo gruppo e Pianificazione sincronizzazione, come descritto di seguito. Pertanto, non includere questi oggetti nel campo DN di base.
    DN di binding amministratore DN dell'amministratore configurato per il server LDAP. SaltStack Config usa questa opzione per eseguire l'autenticazione nella directory per le ricerche di utenti e gruppi. Immettere l'input in base alla seguente sintassi: cn=Administrator,cn=Users,dc=example,dc=com.
    Password DN di binding amministratore

    La password individuale dell'amministratore.

    Viene archiviata con la crittografia nel database. Non viene archiviata in formato di testo normale.

    Filtro DN di binding autenticazione

    Filtro applicato per selezionare un utente specifico. Il risultato di questa ricerca è un DN utente utilizzato da SaltStack Config per eseguire il binding alla directory e concedere all'utente l'accesso a SaltStack Config. Ciò è utile per limitare il numero di risultati restituiti da una determinata ricerca.

    Nota: Poiché la sintassi del filtro può diventare abbastanza complessa, è consigliabile testare la voce utilizzando LDP, ldapsearch o uno strumento simile per convalidare la voce e apportare eventuali modifiche prima di compilare questo campo.

    Il filtro di esempio seguente restituisce solo un account corrispondente al nome utente specificato appartenente ai gruppi DevOps o Level II.

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

    Se si utilizzano valori predefiniti precompilati, assicurarsi di sostituire il testo segnaposto con i valori corretti per il servizio directory.

    Nota: Quando si configura una struttura a foresta, lasciare vuoto questo campo.
    Nome attributo ID univoco remoto Nome del valore utilizzato per identificare le voci univoche. Questo è l'attributo ID univoco per tutte le voci. In AD è ObjectGUID.

    Gruppi

    Campo Descrizione
    DN ricerca gruppo Base di ricerca per i gruppi. Ad esempio, in AD potrebbe essere cn=Groups,dc=example,dc=com. Indica la posizione nella directory in cui cercare i gruppi. Utilizzare insieme all'ambito di ricerca del gruppo indicato di seguito.
    Ambito ricerca gruppo

    Indica la profondità di ricerca nella directory dalla base indicata nel DN di ricerca del gruppo e può avere uno dei quattro valori seguenti:

    baseObject
    Il valore 0, spesso definito base. Utilizzare questo valore per cercare solo questo oggetto e nessun altro.
    singleLevel
    Il valore 1, spesso definito one. Utilizzare questo valore per considerare solo gli elementi secondari immediati della voce di base per le corrispondenze.
    wholeSubtree
    Il valore 2 (o SUBTREE in ldap3), spesso definito sub. Utilizzare questo valore per cercare la base e tutti i subordinati a qualsiasi profondità.
    subordinateSubtree
    Il valore 3, spesso definito subordinates. È analogo a wholeSubtree, ma la voce della ricerca di base viene ignorata.
    Filtro DN ricerca gruppi Filtro di ricerca per estrarre i gruppi dalla directory. È in genere (objectClass=group), ma in alcune configurazioni di Active Directory potrebbe essere (objectCategory=group). Utilizzarlo oltre alla classe del gruppo per una maggiore granularità.
    Classe gruppo Nome della classe di oggetti utilizzato per definire i gruppi, ad esempio groupOfNames.
    Attributo nome gruppo Il nome dell'attributo che si desidera utilizzare per il nome del gruppo. Immettere un attributo a valore singolo, non multivalore.
    Attributo appartenenza gruppo Il nome dell'attributo nella voce dell'utente che contiene il nome del gruppo, ad esempio memberOf.

    Utenti

    Campo Descrizione
    DN ricerca utente La base di ricerca per gli utenti, ad esempio cn=Users,dc=example,dc=com in AD o cn=people,cn=accounts,dc=example,dc=com negli altri servizi directory. Indica la posizione nella directory in cui cercare gli utenti. Utilizzare insieme ad Ambito ricerca utenti indicato di seguito.
    Ambito ricerca utenti Indica la profondità di ricerca nella directory dalla base indicata nel DN di ricerca dell'utente e può avere uno dei quattro valori seguenti. Vedere i quattro valori descritti in Ambito ricerca gruppo.
    Filtro DN ricerca utenti Filtro di ricerca per estrarre gli utenti dalla directory. È in genere (objectClass=person), ma in alcune configurazioni di Active Directory potrebbe essere (objectCategory=user).
    Classe persona Nome della classe del servizio directory contenente gli utenti a cui si desidera consentire l'accesso. La maggior parte dei sistemi (incluso Active Directory) utilizza person, ma alcuni potrebbero preferire user o inetOrgPerson.
    Attributo ID utente Nome univoco dell'attributo dell'account utente. Per AD, è sAMAccountName. Per gli altri servizi, spesso è uid o memberUid.
    Attributo appartenenza utente Il nome dell'attributo nella voce del gruppo che contiene il nome utente. Alcuni esempi sono member e uniquemember.
  7. Per visualizzare in anteprima le impostazioni senza salvare, fare clic su Anteprima aggiornamento.

    La finestra di anteprima mostra gli utenti e i gruppi selezionati per la connessione. È possibile selezionare la scheda Gruppi o Utenti per visualizzare l'anteprima degli utenti e dei gruppi associati al servizio in base alle necessità.

  8. Fare clic su Salva.

    La configurazione di LDAP viene salvata. Per verificare che la configurazione sia corretta, è possibile provare ad accedere a SaltStack Config da un account utente di test. Se non è possibile accedere correttamente, vedere Risoluzione dei problemi per alcuni suggerimenti.

    Nota: Per le configurazioni di LDAP, SaltStack Config archivia le impostazioni di connessione, inclusi i gruppi e gli utenti identificati. Recupera solo gruppi e utenti nell'ambito definito e non sincronizza l'intera directory.

    Nel corso del tempo potrebbe essere necessario aggiornare o sincronizzare nuovamente la directory LDAP. Ad esempio, è consigliabile aggiornare la directory se sono stati aggiunti nuovi utenti e si desidera abilitarli in SaltStack Config.

Abilitazione di gruppi e utenti

Dopo aver configurato la connessione LDAP, è necessario configurare i gruppi dei servizi di directory e assicurarsi che gli utenti possano accedere a SaltStack Config. Per configurare i gruppi dei servizi directory:

  1. Nell'area di lavoro Autenticazione, selezionare la configurazione LDAP richiesta.
  2. Selezionare la scheda Gruppi per visualizzare un elenco dei gruppi recuperati dalla configurazione LDAP.
    Nota: Se si recupera un gran numero di gruppi, il caricamento della pagina potrebbe richiedere fino a un minuto.
  3. Selezionare i gruppi che si desidera abilitare in SaltStack Config.
  4. Selezionare la scheda Utenti per visualizzare un elenco degli utenti recuperati dalla configurazione LDAP.
    Nota: Se si recupera un gran numero di utenti, il caricamento della pagina potrebbe richiedere fino a un minuto.
  5. Selezionare gli utenti che si desidera abilitare in SaltStack Config.
    Nota: Tutti gli utenti inclusi nei gruppi abilitati sono già selezionati e non possono essere deselezionati.
    directory-service-users-enabled-group
  6. Fare clic su Salva.

    A questo punto, è possibile definire le impostazioni del controllo degli accessi basati sui ruoli per i gruppi selezionati. Tuttavia, l'area di lavoro Ruoli consente di gestire le impostazioni per i singoli utenti inclusi nei gruppi selezionati solo dopo il primo accesso dell'utente. Per eliminare gruppi o utenti, deselezionare il gruppo o l'utente e fare clic su Salva.

    Per ulteriori informazioni su RBAC in SaltStack Config, vedere Come definire i ruoli utente.

Risoluzione dei problemi relativi alla connessione LDAP

Se non è possibile visualizzare l'anteprima della connessione, attenersi alla seguente procedura di risoluzione dei problemi.
Problema Descrizione Soluzione
Impossibile visualizzare l'anteprima della connessione

Se non è possibile visualizzare l'anteprima di gruppi e utenti, in molti casi è dovuto a un problema di connessione tra il server LDAP e SaltStack Config o a una voce non valida nel modulo di configurazione LDAP.

  1. Assicurarsi che le connessioni TCP SaltStack Config alla porta selezionata sul server LDAP siano consentite.
  2. Controllare attentamente le voci del modulo e convalidare la sintassi utilizzando uno strumento di terze parti. Vedere Come verificare e risolvere i problemi di una connessione al servizio directory.
  3. Se nessuno dei due elementi precedenti consente di risolvere il problema, vedere la sezione Altri problemi di seguito.
  4. Se nessuno dei suddetti elementi è utile, contattare il supporto clienti.
Quando si tenta di visualizzare l'anteprima della connessione, la pagina si blocca durante il caricamento Se il caricamento della pagina si blocca per più di due minuti, riavviare il servizio RaaS, quindi eliminare e creare di nuovo la configurazione.
  1. Aprire il registro di RaaS.
    tail -f /var/log/raas/raas

    Il registro contiene un errore simile al seguente:

    [ERROR    :256][ForkPoolWorker-2:10253][ldap_preview_background_task(some_uuid)]
    Task ldap preview_background_task[some_uuid]raised unexpected: KeyError('ad-1_preview')
  2. Arrestare e riavviare il servizio RaaS.
    systemctl stop raas
    systemctl start raas
  3. Tornare all'interfaccia utente di SaltStack Config ed eliminare la connessione LDAP.
    Nota:

    È consigliabile copiare e incollare le voci di configurazione in un file di testo di backup prima di eliminarle.

  4. Creare nuovamente la configurazione LDAP.
Altri problemi vari

Se la connessione LDAP è già stata configurata e salvata ma gli utenti non sono in grado di accedere oppure se si verificano altri problemi, controllare i registri raas con il debug esteso abilitato per determinare la causa radice.

Per abilitare il debug esteso:

  1. In RaaS, aprire /etc/raas/raas.
  2. Apportare le seguenti modifiche:
    • In Loggingoptions, rimuovere il commento log_file_loglevel:debug
    • In AD/LDAPdriverconfiguration, rimuovere il commento log_level e impostare su log_level:EXTENDED
  3. Arrestare e riavviare il servizio RaaS.
    systemctl stop raas
    systemctl start raas
  4. Visualizzare il registro raas.
    tail -f /var/log/raas/raas

Alcuni errori comuni che potrebbero essere visualizzati nei registri sono i seguenti:

  • Impostazioni errate per la connessione (SSL). Modificare le impostazioni SSL.
    [raas.utils.validation.schemas.settings][DEBUG   :546 ][Webserver:9096]
    Error while connecting to AD/LDAP Server. SSL connection issues: socket
    ssl wrapping error: [Errno 104] Connection reset by peer
  • Password errata per Admin BIND DN. Verificare e immettere nuovamente la password.
    [raas.utils.rpc   ][DEBUG   :284 ][Webserver:9095]
    Processed RPC request(129360670417695). Response:
    {'riq': 129360670417695, 'ret': None, 'error': {'code': 3004, 'message':
    'Request validation failure.', 'detail': {'_schema':
    ['Credentials are not valid']}}, 'warnings': []}
  • Il filtro Auth DN predefinito precompilato crea un conflitto. Lasciare vuoto il campo oppure utilizzare {username} anziché {{username}}.
    Nota:

    Questo errore può verificarsi quando la connessione LDAP è già stata salvata, ma gli utenti non sono in grado di accedere.

    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :903 ][Webserver:9096]
    Running _get_auth_backend_user with this search_filter: (&(objectclass=person)(sAMAccountName={username}))
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :931 ][Webserver:9096]
    Could not find any user using '(&(objectclass=person)(sAMAccountName={username}))'
    as the search filter in the ldap backend under the ad-1 configuration.
    Trying remote_uid 'None'
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :963 ][Webserver:9096]
    Could not find any user using '(&(objectClass=person)(objectGUID=None))'
    as the search filter in the ldap backend under the ad-1 configuration.