Configurazione dell'autenticazione Ambari con LDAP/Active Directory

Nel cluster Big Data Service, Ambari viene utilizzato per la gestione del cluster. Per impostazione predefinita, il cluster Big Data Service dispone di un solo account amministratore in grado di gestire il cluster. Tuttavia, è essenziale per supportare l'integrazione di Active Directory (AD) in modo che gli utenti in AD possano accedere AD Ambari ed eseguire le operazioni di gestione dei cluster.

Configurazione di Ambari per l'autenticazione degli utenti esterni

  1. Nel nodo un0 eseguire:
    sudo ambari-server setup-ldap
  2. Rispondere a ogni prompt con le informazioni riportate di seguito. I prompt contrassegnati con l'asterisco sono obbligatori,

    Prompt

    descrizione;
    Selezionare il tipo di LDAP da utilizzare * AD
    Host URL principale* <AD_FQDN>
    Porta URL principale* La porta per il server LDAP. Per impostazione predefinita, LDAP protetti vengono eseguiti sulla porta 636. LDAP non protetto viene eseguito sulla porta 389.
    Host URL secondario Premere Invio per vuoto
    Porta URL secondario Premere Invio per vuoto
    Usa SSL* True per decidere di utilizzare LDAPS su 636 porte.
    Fornire TrustStore personalizzato per Ambari [y/n] Per il cluster Big Data Service, è possibile impostare 'n' qui e ignorare la richiesta successiva di 'rimozione'
    Il file TrustStore è già configurato:ssl.trustStore.type = jksssl.trustStore.path = /etc/security/serverKeys/truststore.jksssl.trustStore.password = ${alias=ambari.ssl.trustStore.password}Rimuovere queste proprietà [y/n] (n)? Immettere n. Se è stato immesso l'URL LDAPS di AD in bds-cert.conf ed è stato eseguito sudo bds_cert_util --enable dal nodo mn0, il file jks deve già contenere il certificato LDAPS.
    tipo TrustStore Non necessario se non è stata rimossa la proprietà predefinita. Formato del truststore: jks
    Percorso di TrustStore Non necessario se non è stata rimossa la proprietà predefinita. /etc/security/serverKeys/truststore.jks
    Password per TrustStore Non necessario se non è stata rimossa la proprietà predefinita. Se necessario, eseguire sudo bash /home/opc/cloud/flask-microservice/cert_util/scripts/get_pass_mn0.sh per ottenere la password.
    Classe oggetto utente* persona
    Attributo nome utente* sAMAccountName
    Classe oggetto gruppo* gruppo
    Attributo nome gruppo * cn
    Attributo membro gruppo* membro
    Attributo nome distinto* distinguishedName
    Base di ricerca* <AD_SEARCH_BASE>
    Metodo di riferimento* ignorare
    Associa in modo anonimo* false
    DN autenticazione*: <AD_BIND_USER_DN>. Eseguire dsquery user -name BIND_USER_NAME in Windows PowerShell sul server AD.
    Password DN di autenticazione*: <AD_BIND_USER_PWD>
    Gestione delle collisioni di nomi utente*: conversione (consigliato)
    Forzare i nomi utente minuscoli: true (consigliato)
    I risultati di LDAP vengono impaginati quando richiesto: false (consigliato)
    Disabilita l'identificazione dell'endpoint durante l'handshake SSL: true (consigliato)

    Esempio:

    [opc@opowerun0-0 ~]$ sudo ambari-server setup-ldap
    Using python  /usr/bin/python
    Currently 'no auth method' is configured, do you wish to use LDAP instead [y/n] (y)? y
    Enter Ambari Admin login: admin
    Enter Ambari Admin password:
     
    Fetching LDAP configuration from DB. No configuration.
    Please select the type of LDAP you want to use [AD/IPA/Generic](Generic):AD
    Primary LDAP Host: <PRIMARY_LDAP_HOST>
    Primary LDAP Port: 636
    Secondary LDAP Host <Optional>:
    Secondary LDAP Port <Optional>:
    Use SSL [true/false] (false): true
    Disable endpoint identification during SSL handshake [true/false] (False): true
    Do you want to provide custom TrustStore for Ambari [y/n] (y)?n
    The TrustStore is already configured:
      ssl.trustStore.type = jks
      ssl.trustStore.path = /etc/security/serverKeys/truststore.jks
      ssl.trustStore.password = ${alias=ambari.ssl.trustStore.password}
    Do you want to remove these properties [y/n] (y)? n
    User object class (user):
    User ID attribute (sAMAccountName):
    Group object class (group):
    Group name attribute (cn):
    Group member attribute (member):
    Distinguished name attribute (distinguishedName):
    Search Base (dc=ambari,dc=apache,dc=org): cn=Users,dc=ad,dc=domain,dc=com
    Referral method [follow/ignore] (follow): ignore
    Bind anonymously [true/false] (false):
    Bind DN (cn=ldapbind,dc=ambari,dc=apache,dc=org): cn=Users,dc=ad,dc=domain,dc=com
    Enter Bind DN Password:
    Confirm Bind DN Password:
    Handling behavior for username collisions [convert/skip] for LDAP sync (skip): convert
    Force lower-case user names [true/false]:true
    Results from LDAP are paginated when requested [true/false]:false
    ====================
    Review Settings
    ====================
    Primary LDAP Host:  <PRIMARY_LDAP_HOST>
    Primary LDAP Port:  636
    Use SSL [true/false] (false):  true
    User object class (user):  user
    User ID attribute (sAMAccountName):  sAMAccountName
    Group object class (group):  group
    Group name attribute (cn):  cn
    Group member attribute (member):  member
    Distinguished name attribute (distinguishedName):  distinguishedName
    Search Base (dc=ambari,dc=apache,dc=org):  cn=Users,dc=ad,dc=domain,dc=com
    Bind anonymously [true/false] (false):  false
    Handling behavior for username collisions [convert/skip] for LDAP sync (skip):  convert
    Force lower-case user names [true/false]: true
    Results from LDAP are paginated when requested [true/false]: false
    ambari.ldap.connectivity.bind_dn: <AMBARI_LDAP_CONNECTIVITY_BIND_DN>
    ambari.ldap.connectivity.bind_password: *****
    ambari.ldap.advanced.disable_endpoint_identification: true
    Save settings [y/n] (y)? y
    Saving LDAP properties...
    Saving LDAP properties finished
    Ambari Server 'setup-ldap' completed successfully.
  3. Preparare una lista di gruppi per limitare gli utenti e i gruppi di Active Directory da sincronizzare in Ambari.
  4. (Facoltativo) Se si prevede di condividere l'accesso Ambari agli utenti nei gruppi AD, eseguire le operazioni riportate di seguito.
    echo "g1,g2,g3" > groups.csv
    sudo ambari-server sync-ldap --groups=$(pwd)/groups.csv
    
  5. (Facoltativo) Per specificare in modo esplicito l'elenco degli utenti AD, eseguire le operazioni riportate di seguito.
    echo "U1, u2, u3" > users.csv
  6. Riavviare il server Ambari.

    Esempio:

    [opc@opower2un0 ambari-server]$ sudo ambari-server restart
    Using python  /usr/bin/python
    Restarting ambari-server
    Waiting for server stop...
    Ambari Server stopped
    Ambari Server running with administrator privileges.
    Organizing resource files at /var/lib/ambari-server/resources...
    Ambari database consistency check started...
    Server PID at: /var/run/ambari-server/ambari-server.pid
    Server out at: /var/log/ambari-server/ambari-server.out
    Server log at: /var/log/ambari-server/ambari-server.log
    Waiting for server start...............
    Server started listening on 7183

Configurazione dell'accesso per gli utenti di Active Directory mediante l'interfaccia utente di Ambari

  1. Accedi ad Apache Ambari con l'utente amministratore e la password.
  2. Selezionare il pulsante del nome utente, quindi selezionare Gestisci ambari.
  3. Selezionare Utenti.
  4. Verificare gli utenti e i gruppi.
  5. Nel filtro immettere il nome utente: <username>, quindi selezionare Modifica.
  6. Aggiungere l'utente al gruppo appropriato.
  7. Disconnettere l'amministratore e collegarsi come utente a cui è stato concesso l'accesso.