LDAP sync in Ranger and Apache Ambari in Azure HDInsight

A HDInsight Enterprise Security Package (ESP) fürtök a Rangert használják az engedélyezéshez. Az Apache Ambari és a Ranger egymástól függetlenül szinkronizálja a felhasználókat és a csoportokat, és egy kicsit másképp dolgozik. Ez a cikk a Ranger és az Ambari LDAP-szinkronizálásának kezelésére szolgál.

Általános irányelvek

  • Mindig helyezzen üzembe fürtöket egy vagy több csoporttal.
  • Ha több csoportot szeretne használni a fürtben, ellenőrizze, hogy van-e értelme frissíteni a csoporttagságokat a Microsoft Entra-azonosítóban.
  • Ha módosítani szeretné a fürtcsoportokat, az Ambari használatával módosíthatja a szinkronizálási szűrőket.
  • A Microsoft Entra ID-ben a csoporttagság minden módosítása megjelenik a fürtben a későbbi szinkronizálásokban. A módosításokat először a Microsoft Entra Domain Services szolgáltatással, majd a fürtökkel kell szinkronizálni.
  • A HDInsight-fürtök a Samba/Winbind használatával kivetítik a csoporttagságokat a fürtcsomópontokon.
  • A csoporttagok tranzitív módon vannak szinkronizálva (az összes alcsoport és azok tagjai) az Ambarival és a Rangerrel.

A felhasználók külön vannak szinkronizálva

  • Az Ambari és a Ranger nem osztja meg a felhasználói adatbázist, mert két különböző célt szolgálnak.
    • Ha egy felhasználónak az Ambari felhasználói felületet kell használnia, szinkronizálni kell a felhasználót az Ambarival.
    • Ha a felhasználó nincs szinkronizálva az Ambarival, az Ambari felhasználói felülete/API elutasítja azt, de a rendszer más részei működni fognak (ezeket a Ranger vagy a Resource Manager védi, nem pedig az Ambari).
    • Ha felhasználókat vagy csoportokat szeretne belefoglalni a Ranger-szabályzatokba, a rendszerbiztonsági tagokat explicit módon kell szinkronizálni a Rangerben.

Ambari-felhasználók szinkronizálása és konfigurálása

A fő csomópontokon a cron-feladat /opt/startup_scripts/start_ambari_ldap_sync.pyóránként fut a felhasználói szinkronizálás ütemezéséhez. A cron-feladat meghívja az Ambari rest API-kat a szinkronizálás végrehajtásához. A szkript elküldi a szinkronizálandó felhasználók és csoportok listáját (mivel előfordulhat, hogy a felhasználók nem tartoznak a megadott csoportokhoz, mindkettő külön van megadva). Az Ambari az sAMAccountName nevet szinkronizálja felhasználónévként és a csoport összes tagjával tranzitív módon.

A naplóknak benne kell lenniük./var/log/ambari-server/ambari-server.log További információ: Az Ambari naplózási szintjének konfigurálása.

A Data Lake-fürtökben a felhasználólétrehozás utáni horog a szinkronizált felhasználók otthoni mappáinak létrehozására szolgál, és a kezdőmappák tulajdonosaiként vannak beállítva. Ha a felhasználó nincs megfelelően szinkronizálva az Ambarival, akkor előfordulhat, hogy a felhasználó hibákba ütközik a feladatok futtatásakor, mivel előfordulhat, hogy a kezdőmappa nincs megfelelően beállítva.

Ranger-felhasználó szinkronizálása és konfigurálása

A Ranger beépített szinkronizálási motorral rendelkezik, amely óránként fut a felhasználók szinkronizálásához. Nem osztja meg a felhasználói adatbázist az Ambarival. A HDInsight úgy konfigurálja a keresési szűrőt, hogy szinkronizálja a rendszergazda felhasználót, a watchdog felhasználót és a fürt létrehozása során megadott csoporttagokat. A csoporttagok tranzitív módon lesznek szinkronizálva:

  1. Növekményes szinkronizálás letiltása.
  2. Engedélyezze a felhasználói csoport szinkronizálási térképét.
  3. Adja meg az átvitt csoporttagokat tartalmazó keresési szűrőt.
  4. Szinkronizálja a felhasználók sAMAccountName attribútumát és a csoportok névattribútumát.

Csoportosítási vagy növekményes szinkronizálás

A Ranger támogatja a csoportszinkronizálási lehetőséget, de a felhasználói szűrő metszeteként működik, nem pedig a csoporttagságok és a felhasználói szűrő közötti egyesítésként. A Ranger csoportszinkronizálási szűrőjének tipikus használati esete a következő: csoportszűrő: (dn=clusteradmingroup), felhasználószűrő: (city=seattle).

A növekményes szinkronizálás csak a már szinkronizált felhasználók esetében működik (az első alkalommal). A Növekményes nem szinkronizálja a csoportokhoz hozzáadott új felhasználókat a kezdeti szinkronizálás után.

Ranger szinkronizálási szűrő frissítése

Az LDAP-szűrő az Ambari felhasználói felületén, a Ranger felhasználószinkronizálási konfigurációs szakaszában található. A meglévő szűrő az űrlapon (|(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))lesz. Győződjön meg arról, hogy a végén predikátumot ad hozzá, és a keresési paranccsal, az ldp.exe vagy valami hasonló használatával net ads teszteli a szűrőt.

Ranger-felhasználó szinkronizálási naplói

A Ranger felhasználói szinkronizálása bármelyik átjárócsomópontból történhet. A naplók benne vannak./var/log/ranger/usersync/usersync.log A naplók részletességének növeléséhez hajtsa végre a következő lépéseket:

  1. Jelentkezzen be az Ambariba.
  2. Nyissa meg a Ranger konfigurációs szakaszát.
  3. Lépjen a Speciális usersync-log4j szakaszra.
  4. Módosítsa a log4j.rootLoggerDEBUG szintet. (A módosítás után úgy kell kinéznie, mint log4j.rootLogger = DEBUG,logFile,FilterLog).
  5. Mentse a konfigurációt, és indítsa újra a Rangert.

A Ranger felhasználói szinkronizálásával kapcsolatos ismert problémák

  • Ha a csoportnév unicode karakterekkel rendelkezik, a Ranger-szinkronizálás nem tudja szinkronizálni az objektumot. Ha egy felhasználó nemzetközi karakterekkel rendelkező csoporthoz tartozik, a Ranger szinkronizálja a részleges csoporttagságokat
  • A felhasználónévnek (sAMAccountName) és a csoportnévnek (névnek) legalább 20 karakter hosszúságúnak kell lennie. Ha a csoportnév hosszabb, akkor a rendszer úgy kezeli a felhasználót, mintha nem tartoznának a csoporthoz az engedélyek kiszámításakor.

Következő lépések