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.py
cron 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ě:
- Zakažte přírůstkovou synchronizaci.
- Povolte mapu synchronizace skupiny uživatelů.
- Zadejte vyhledávací filtr, který bude obsahovat tranzitivní členy skupiny.
- 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ě:
- Přihlaste se k Ambari.
- Přejděte do části Konfigurace Rangeru.
- Přejděte do části Advanced usersync-log4j .
- Změňte úroveň
log4j.rootLogger
DEBUG
. (Po změně by měl vypadat taktolog4j.rootLogger = DEBUG,logFile,FilterLog
). - 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.