Synchronizace LDAP v Rangeru a Apache Ambari ve službě Azure HDInsight

Clustery HDInsight Enterprise Security Package (ESP) používají k autorizaci Ranger. Apache Ambari a Ranger synchronizují uživatele i skupiny nezávisle a fungují trochu jinak. Tento článek je určený k vyřešení synchronizace PROTOKOLU LDAP v Rangeru a Ambari.

Obecné pokyny

  • Vždy nasazujte clustery s jednou nebo více skupinami.
  • Pokud chcete v clusteru používat více skupin, zkontrolujte, jestli má smysl aktualizovat členství ve skupinách v Microsoft Entra ID.
  • Pokud chcete změnit skupiny clusteru, můžete změnit filtry synchronizace pomocí Ambari.
  • Všechny změny členství ve skupinách v ID Microsoft Entra se projeví v clusteru v následných synchronizacích. Změny je potřeba nejprve synchronizovat se službou Microsoft Entra Domain Services a pak do clusterů.
  • Clustery HDInsight používají pro projekt členství ve skupinách na uzlech clusteru Samba/Winbind.
  • Členové skupiny se synchronizují přechodně (všechny podskupiny a jejich členy) do Ambari i Rangeru.

Uživatelé se synchronizují samostatně.

  • Ambari a Ranger nesdílí uživatelskou databázi, protože slouží dvěma různým účelům.
    • Pokud uživatel potřebuje použít uživatelské rozhraní Ambari, musí se uživatel synchronizovat s Ambari.
    • Pokud uživatel není synchronizovaný s Ambari, uživatelské rozhraní Ambari ho odmítne, ale ostatní části systému budou fungovat (ty jsou strážené Rangerem nebo Resource Managerem, a ne Ambari).
    • Pokud chcete do zásad Rangeru zahrnout uživatele nebo skupiny, musí se objekty zabezpečení explicitně synchronizovat v Rangeru.

Synchronizace a konfigurace uživatelů Ambari

Z hlavních uzlů je úloha /opt/startup_scripts/start_ambari_ldap_sync.pycron spuštěna každou hodinu a naplánuje synchronizaci uživatele. Úloha cron volá rozhraní REST API Ambari k provedení synchronizace. Skript odešle seznam uživatelů a skupin, které se mají synchronizovat (protože uživatelé nemusí patřit do zadaných skupin, oba jsou zadány jednotlivě). Ambari synchronizuje sAMAccountName jako uživatelské jméno a všechny členy skupiny přechodné.

Protokoly by měly být v /var/log/ambari-server/ambari-server.log. Další informace najdete v tématu Konfigurace úrovně protokolování Ambari.

V clusterech Data Lake se háček po vytvoření uživatele používá k vytvoření domovských složek pro synchronizované uživatele a jsou nastavené jako vlastníci domovských složek. Pokud uživatel není správně synchronizovaný s Ambari, může se setkat se selháním při spouštění úloh, protože domovská složka nemusí být správně nastavená.

Synchronizace a konfigurace uživatele Ranger

Ranger má integrovaný synchronizační modul, který se spouští každou hodinu pro synchronizaci uživatelů. Nesdílí uživatelskou databázi s Ambari. HDInsight nakonfiguruje filtr vyhledávání tak, aby synchronizoval uživatele správce, uživatele watchdogu a členy skupiny zadané během vytváření clusteru. Členové skupiny se budou synchronizovat přechodně:

  1. Zakažte přírůstkovou synchronizaci.
  2. Povolte mapu synchronizace skupiny uživatelů.
  3. Zadejte vyhledávací filtr, který bude obsahovat tranzitivní členy skupiny.
  4. Synchronizujte atribut sAMAccountName pro uživatele a atribut názvu pro skupiny.

Seskupování nebo přírůstková synchronizace

Ranger podporuje možnost synchronizace skupiny, ale funguje jako průsečík s filtrem uživatelů, ne jako sjednocení mezi členstvími ve skupinách a filtrem uživatelů. Typický případ použití pro filtr synchronizace skupin v Rangeru je – filtr skupiny: (dn=clusteradmingroup), filtr uživatele: (city=seattle).

Přírůstková synchronizace funguje jenom pro uživatele, kteří jsou už synchronizovaní (poprvé). Přírůstkové synchronizace nesynchronizuje žádné nové uživatele přidané do skupin po počáteční synchronizaci.

Aktualizovat filtr synchronizace Rangeru

Filtr LDAP najdete v uživatelském rozhraní Ambari v části Konfigurace synchronizace uživatele Ranger. Existující filtr bude ve formuláři (|(userPrincipalName=bob@contoso.com)(userPrincipalName=hdiwatchdog-core01@CONTOSO.ONMICROSOFT.COM)(memberOf:1.2.840.113556.1.4.1941:=CN=hadoopgroup,OU=AADDC Users,DC=contoso,DC=onmicrosoft,DC=com)). Ujistěte se, že na konec přidáte predikát a otestujete filtr pomocí net ads vyhledávacího příkazu nebo ldp.exe nebo něčeho podobného.

Protokoly synchronizace uživatelů Ranger

Synchronizaci uživatele Ranger může dojít z některého z hlavních uzlů. Protokoly jsou v /var/log/ranger/usersync/usersync.log. Pokud chcete zvýšit úroveň podrobností protokolů, postupujte následovně:

  1. Přihlaste se k Ambari.
  2. Přejděte do části Konfigurace Rangeru.
  3. Přejděte do části Advanced usersync-log4j .
  4. Změňte úroveň log4j.rootLoggerDEBUG . (Po změně by měl vypadat takto log4j.rootLogger = DEBUG,logFile,FilterLog).
  5. Uložte konfiguraci a restartujte Ranger.

Známé problémy se synchronizací uživatelů Rangeru

  • Pokud název skupiny obsahuje znaky unicode, synchronizace Rangeru tento objekt se nezdaří. Pokud uživatel patří do skupiny, která má mezinárodní znaky, Ranger synchronizuje částečné členství ve skupině.
  • Uživatelské jméno (sAMAccountName) a název skupiny (název) musí mít délku 20 znaků nebo méně. Pokud je název skupiny delší, bude uživatel při výpočtu oprávnění považován za to, že nepatří do skupiny.

Další kroky