PowerFlex 4.x LDAP -määritys suurille ympäristöille

Summary: Rajaamalla sekä käyttäjien että ryhmien LDAP-hakusuodattimia PowerFlex Management Platform SSO -taustajärjestelmässä voimme lieventää synkronointiongelmia, joiden on havaittu aiheuttavan useita käyttöliittymä- ja ympäristöongelmia. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

  1. Valmistelu
  2. LDAP-palveluntarjoajan poistaminen ja puhdistaminen
  3. LDAP-palveluntarjoajan uudelleenmääritys
  4. Kapean LDAP-käyttäjän ja -ryhmän sovellus

 

 

Tausta: 

 

PowerFlex Management Platform (PFMP) -hakemistopalvelut tuovat oletusarvoisesti kaikki määritetyn haun piiriin kuuluvat LDAP-objektit, mukaan lukien muut kuin käyttäjätilit ja muut objektit, joita RBAC ei edellytä.

Suurissa ympäristöissä tämä voi johtaa merkittävään resurssien käyttöön PFMP-hallintavirtuaalikoneissa (MVM), niitä tukevassa Postgres-tietokannassa ja koko ympäristössä.

Tämän vuoksi LDAP-synkronointia ei ehkä suoriteta loppuun hyväksyttävässä ajassa, mikä aiheuttaa työjonoja, muistivuotoja ja samanaikaisuusongelmia.

 

1. Valmistelu

 

Vaatimukset:

 

 

Active Directoryn yleisen luettelon käyttäminen

Huomautus:  Edellytämme portin 3268 käyttöä tavallisessa LDAP:ssä tai 3269:n käyttöä LDAPS:ssä AD-ympäristöissä. Tämä sallii LDAP-ryhmän jäsenten käytön aliverkkotunnuksista tai muista luotetuista verkkotunnuksista PFMP:ssä.

AD-ryhmä, esimerkiksi:

 

na.powerflex.lab.dell.com yläpuolella olevan aliverkkotunnuksen on oltava näkyvissä PFMP:n LDAP-käyttäjäliiton avainviitan avulla käyttämällä yleisiä luetteloportteja, joilla ne voidaan tavoittaa. 

Tästä syystä PFMP-hakemistopalvelussa käytetään objectGUID-tunnusta, joka sitoo tilit niiden maailmanlaajuiseen yksilölliseen UUID-tunnukseen.

 

Jos molemmat aliverkkotunnukset on lueteltu Trustit-välilehdessä, näyttää siltä, että aliverkkotunnukset luottavat toisiinsa oletusarvoisesti.

Microsoft Active Directory (AD) -ympäristössä päätoimialue ja sen alitoimialueet luottavat luonnostaan toisiinsa hierarkkisessa rakenteessa. Tätä kutsutaan transitiiviseksi luottamukseksi.

Nämä luottamussuhteet ovat oletusarvoisesti kaksisuuntaisia ja transitiivisia, mikä tarkoittaa, että päätoimialue luottaa aliverkkotunnuksiinsa ja päinvastoin. Tämä transitiivinen luonne laajentaa luottamuksen kaikkiin pää- ja alitason hierarkian toimialueisiin.

 

Käytettävissä olevien LDAP- tai AD GC -palvelimien etsiminen DNS-merkinnöistä

 

Yleensä asiakas antaa käytettäväksi LDAP-osoitteen.  Nämä asetukset voidaan kopioida PFMP Directory Provider -määrityksistä ennen niiden poistamista osana tämän oppaan seuraavia vaiheita.

Vaihtoehtoisesti käytettävissä olevat palvelimet voidaan hakea tietyn toimialueen DNS:stä:

 

# listing LDAP server
$ host -t srv _ldap._tcp.powerflex.lab.dell.com
Server:  nameserver.dell.com
Address:  10.8.8.8

Non-authoritative answer:
_ldap._tcp.powerflex.lab.dell.com       service = 0 100 636 hcihopad1.powerflex.lab.dell.com. _ldap._tcp.powerflex.lab.dell.com       service = 0 100 389 hcihopad1.powerflex.lab.dell.com. _ldap._tcp.powerflex.lab.dell.com       service = 0 100 389 hcick3ad2.powerflex.lab.dell.com. _ldap._tcp.powerflex.lab.dell.com       service = 0 100 636 hcick3ad1.powerflex.lab.dell.com. _ldap._tcp.powerflex.lab.dell.com       service = 0 100 389 hcihopad3.powerflex.lab.dell.com.
# listing AD GC servers (Active Directory Global Catalog) 
host -t srv _gc._tcp.powerflex.lab.dell.com
Server:  nameserver.dell.com
Address:  10.8.8.8

Non-authoritative answer:
_gc._tcp.powerflex.lab.dell.com service = 0 100 3268 hcihopad3.powerflex.lab.dell.com.
_gc._tcp.powerflex.lab.dell.com service = 0 100 3268 hcick3ad3.powerflex.lab.dell.com.
_gc._tcp.powerflex.lab.dell.com service = 0 100 3268 hcick3ad2.powerflex.lab.dell.com.

 

 

Miten löydän organisaatioyksikön tai ryhmän yksilöivän nimen.

Ensin tarvitaan niiden organisaatioyksikköjen ja ryhmien yksilöivät nimet (DN), joista haluamme lukea käyttäjiä PFMP:hen.  Nämä polut eivät noudata tarkasti DNS-nimeämistä ja sisältävät organisaatioyksiköitä x.500 LDAP -polun sisällä, jonka voimme purkaa manuaalisesti.

Voimme löytää nämä DN: t käyttämällä erilaisia apuohjelmia käyttöjärjestelmästä riippuen, yksi helppo tapa on käyttää curlia:

PFMP LDAP -asetusten testaaminen curl-apuohjelmalla Linuxissa.

 

MVM: iin asennetun curlin uudempia versioita voidaan käyttää tarvittavien täydellisten yksilöivien nimien löytämiseen, esimerkiksi tämä etsii LabAdmins Group CN: n koko DN: ää:

#Get the DN of your groups for use in the LDAP User filter while also validating your LDAP Group Filter syntax
# Set this to the group filter you intend to use in keycloak
GROUPFILTER='(CN=LabAdmins)'
# Use the LDAP svc bind creds to confirm the user can in fact call LDAP and see the group(s)
BINDUSER="user@powerflex.lab.dell.com"
# LDAP server URL.  For TLS use ldaps:// and port 3269
LDAPSERVER='ldap://ldap.powerflex.lab.dell.com:3268'
# Use the same search base as you intend for the group path, generally just the DC components
SEARCHBASE=DC=powerflex,DC=lab,DC=dell,DC=com
# Call curl which will request the password of the bind user and return results curl -s sub --user "$BINDUSER" "$LDAPSERVER/$SEARCHBASE?distinguishedName?sub?$GROUPFILTER" 

Enter host password for user 'jacqup@powerflex.lab.dell.com':

 

DN:CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
      distinguishedName:CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com

DN: CN=LabAdmins,CN=Users,DC=na,DC=powerflex,DC=lab,DC=dell,DC=com  distinguishedName: CN=LabAdmins,CN=Users,DC=na,DC=powerflex,DC=lab,DC=dell,DC=com

 

 

Manual examples:

 

curl -s sub --user "FLEXLAB\jacqup"
"ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?distinguishedName,objectGUID?sub?(|(CN=FLEXLAB-APP-PROD-SDS-Admin)(CN=LabAdmins)(CN=LabUsers)(CN=EMEALabAdmins))"

Enter host password for user 'FLEXLAB\jacqup':

DN: CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
       distinguishedName: CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com

DN: CN=LabAdmins,CN=Users,DC=na,DC=powerflex,DC=lab,DC=dell,DC=com
       distinguishedName: CN=LabAdmins,CN=Users,DC=na,DC=powerflex,DC=lab,DC=dell,DC=com

DN: CN=LabUsers,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
       distinguishedName: CN=LabUsers,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com

Etsi kaikki LDAP-ryhmän jäsenet käyttämällä suodatinominaisuuksia, jotka voit sitten sijoittaa Keycloak-taustajärjestelmään:

#check for all members of the group with CN=LabAdmins

curl -s sub
--user "jacqup@powerflex.lab.dell.com"
"ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?member?sub?(&(objectClass=group)(cn=LabAdmins))"

DN:CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=matrixadmin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=matrixadmin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=svc_adfsck3,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=svc_mcp_rw,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com         member: CN=adcertsvc,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com         member: CN=bobthebuilder,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com         member: CN=Ashish Rahangdale,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=Packer Admin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=FDLabAdmins,OU=Foundations,DC=powerflex,DC=lab,DC=dell,DC=com
        member: CN=Tejas Wadekar,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com

 

 

PFMP LDAP -asetusten testaaminen ldapsearch- tai curl-apuohjelmalla Linuxissa.

 

Jos linux-isäntä on käytettävissä verkossa, ldapsearch-työkalun käyttäminen voi olla hyödyllistä PFMP/Keycloakissa käytettyjen LDAP-asetusten testaamiseksi ja vahvistamiseksi.

Vaihtoehtoisesti curl-apuohjelmaa voidaan käyttää myös LDAP-kyselyihin jostakin hallintavirtuaalikoneesta/MVM:stä.

 

Pikaesittely (yleisesti käytetyt vaihtoehdot):

 

 

ldapsearch - LDAP search tool
ldapsearch opens a connection to an LDAP server, binds, and performs a search using specified parameters.

usage: ldapsearch [options] [filter
[attributes...]]

where:

filter       RFC 4515 compliant LDAP search filter
attributes   whitespace-separated list of attribute descriptions

Search options:
  -b basedn base dn for search
 -LLL      print responses in LDIF format without comments and version Common options:  -D binddn bind DN  -H URI    LDAP Uniform Resource Identifier(s)  -N        do not use reverse DNS to canonicalize SASL host name  -w passwd bind password (for simple authentication)  -W        prompt for bind password  -x        Simple authentication

 

 

 

Tarkistetaan/asennetaan työkalu:

$ which ldapsearch
/usr/bin/ldapsearch

#RHEL/CentOS install
sudo yum install openldap-clients

# SLES install
sudo zypper install openldap2-client

 

 

DN-perusnumeron (-b) määrittäminen LDAP-juurimerkinnästä:

 

$ curl "ldap://ldap.powerflex.lab.dell.com:3268/?rootDomainNamingContext"
DN:
        rootDomainNamingContext: DC=powerflex,DC=lab,DC=dell,DC=com

# ldapsearch (with simple auth)
$ ldapsearch -LLL -H ldap://ldap.powerflex.lab.dell.com -x -D "FLEXLAB\ck3-user" -W -b "" -s base "dn=" rootDomainNamingContext

dn: rootDomainNamingContext: DC=powerflex,DC=lab,DC=dell,DC=com

 

 

Päämerkintä sisältää tietoja hakemistopalvelimesta. AD:ssä rootDomainNamingContext-määrite antaa ylimmän perus-DN:n, jota voidaan käyttää hakuun.

 -W -b "

 

LDAP URI:n, sitovan DN:n (käyttäjä/salasana, jolla on lukuoikeus) ja käyttäjähaun asetusten testaaminen:

 

$ ldapsearch -LLL -H ldap://powerflex.lab.dell.com:3268 -x -D "CN=ck3-user,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com" -W \ -b "dc=powerflex,dc=lab,dc=dell,dc=com" "(sAMAccountName=damonl)"
Enter LDAP Password: ********

dn: CN=Luc Damon,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
objectClass: person
cn: Luc Damon memberOf: CN=EMEALabAdmins,OU=LabAdmins,DC=powerflex,DC=lab,DC=dell,DC=com memberOf: CN=LabUsers,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com memberOf: CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com objectGUID:: 6Z359eP5vky4P0Ye8iFp8g== sAMAccountName: damonl

# equivalent curl command:

$ curl -u 'CN=ck3-user,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com' \ 
"ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com??sub?(sAMAccountName=damonl)"
# OR (with attributes selection)
$ curl -u 'FLEXLAB\ck3-user' \
"ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?cn,objectClass,memberOf,objectGUID,sAMAccountName?sub?(sAMAccountName=damonl)"

Tässä esimerkissä tehdään LDAP-kysely olemassa olevalle käyttäjätilille käyttäen sAMAccountName-attribuuttia (tulos on katkaistu näyttämään vain tarvittavat määritteet).

 

PFMP-käyttöliittymää vastaavat asetukset:

Osoite (-H):  ldap://active.directory.domain.address.com:3268

Sido DN (-D): "CN=ck3-user,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com" # ("FLEXLAB\ck3-user" tai "ck3-user@powerflex.lab.dell.com" ovat vastaavia)

(-x tarvitaan yksinkertaiseen todennukseen SASL-oletustilan välttämiseksi)

Sido DN-salasana (-W): kysy salasanaa (tai käytä –w '***' antaaksesi sen komennossa)

 

The output of the command validates the following PFMP User Search Settings:

Username LDAP Attribute: sAMAccountName

Tunnusmäärite: objectGUID

Objektiluokka: henkilö

Hakupolku (-b): "DC=PowerFlex,DC=laboratorio,DC=Dell,DC=COM"

 

 

Testausryhmän hakuasetukset:

 

$ ldapsearch -LLL -H ldap://powerflex.lab.dell.com:3268 -x -D "FLEXLAB\ck3-user" -W \ -b "dc=powerflex,dc=lab,dc=dell,dc=com" "(&(objectClass=group)(|(cn=FLEXLAB-APP-PROD-SDS-Admin)(cn=EMEALabAdmins)))" cn 

dn: CN=EMEALabAdmins,OU=LabAdmins,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName: Administrator

member: CN=ck3-builder,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName: jacqup member: CN=Luc Damon,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com sAMAccountName: damonl member: CN=Patrick Jacques,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com sAMAccountName: bobthebuilder
$ curl -u 'FLEXLAB\ck3-user' "ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?member?sub?(&(objectClass=group)(cn=EMEALabAdmins))"

 

 

In this example, we are querying LDAP for an existing group (objectClass) using its cn attribute and requesting member value(s).

 

It permits to validate following PFMP settings:

Group Member Attribute: member

Group ID Attribute: cn

Group Object Class: group

Group Search Path: "dc=powerflex,dc=lab,dc=dell,dc=com"

 

Testausryhmän LDAP-suodatin:

 $ ldapsearch -LLL -H ldap://powerflex.lab.dell.com:3268 -x -D "FLEXLAB\ck3-user" -W \ -b "dc=powerflex,dc=lab,dc=dell,dc=com" "(&(objectClass=group)(|(cn=FLEXLAB-APP-PROD-SDS-Admin)(cn=EMEALabAdmins)))" cn dn:
CN=EMEALabAdmins,OU=LabAdmins,DC=powerflex,DC=lab,DC=dell,DC=com 
cn:EMEALabAdmins

dn:CN=FLEXLAB-APP-PROD-SDS-Admin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
cn:FLEXLAB-APP-PROD-SDS-Admin

$ curl -u 'FLEXLAB\ck3-user' "ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?cn?sub?(&(objectClass=group)(|(cn=FLEXLAB-APP-PROD-SDS-Admin)(cn=EMEALabAdmins)))"

 

Käyttäjän LDAP-suodattimen testaaminen:

$ ldapsearch -LLL -H ldap://powerflex.lab.dell.com:3268 -x -D "FLEXLAB\ck3-user" -W -b "dc=powerflex,dc=lab,dc=dell,dc=com" \
"(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=CN=FLEXLAB-APP-PROD-SDS-Admin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)\(memberOf=CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)))" sAMAccountName

dn: CN=Administrator,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName:Administrator

dn: CN=Patrick Jacques,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName:jacqup

dn: CN=Luc Damon,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName: damonl

dn: CN=bobthebuilder,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com
sAMAccountName: bobthebuilder

 

 

curl -u 'FLEXLAB\ck3-user' "ldap://ldap.powerflex.lab.dell.com:3268/DC=powerflex,DC=lab,DC=dell,DC=com?sAMAccountName?sub?(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=CN=FLEXLAB-APP-PROD-SDS-Admin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)(memberOf=CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)))"

 

Windows

Käynnistä Active Directoryn käyttäjät ja tietokoneet. Napsauta Näytä ja valitse Lisäominaisuudet.

DN on nimi, joka yksilöi hakemistossa olevan merkinnän. DN: n ensimmäistä komponenttia kutsutaan suhteelliseksi erottuvaksi nimeksi (RDN).

DN koostuu attribuutti=arvopareista, jotka on erotettu pilkulla, esimerkiksi:

CN=PowerFlex Admin,OU=sio-group1,DC=powerflex,DC=lab,DC=dell,DC=com

Ajattele niitä LDAP:n FQDN:inä, jotka ovat täydellinen x500-osoitteen URL-osoite.

AD-käyttäjiä ja tietokoneita voidaan käyttää DN:ien ja muiden määritteiden määrittämiseen:

 

 

Siirry organisaatioyksikköön, napsauta sitä organisaatioyksikköä hiiren kakkospainikkeella, josta haluat lukea käyttäjiä, ja valitse sitten Ominaisuudet.

Valitse OU-ominaisuuksissa Määriteeditori-välilehti.

Korosta se klikkaamalla distinctedName ja klikkaa sitten Näytä.

Napsauta korostettua arvoa hiiren kakkospainikkeella ja valitse Kopioi. 

Valitse Peruuta ja sulje sitten OK sulkeaksesi Määriteeditori- ja OU-ominaisuudet-ikkunat.

 

 

 

 

Esimerkki kapea-alaisesta LDAP-käyttäjäsuodattimesta:

 

(&(objectCategory=Person)(sAMAccountName=*)(|( memberOf=CN=FLEXLAB-APP-PROD-SDS-Admin,CN=Käyttäjät,DC=powerflex,DC=lab,DC=dell,DC=com)(memberOf=CN=LabAdmins,CN=Käyttäjät,DC=powerflex,DC=lab,DC=dell,DC=com)))

 

 

Visuaalinen selitys:

 

Sido käyttäjän vaatimukset.

 

Tällä sidotulla käyttäjällä on oltava vähintään oikeus kysellä LDAP-palvelimessa määritettyjä käyttäjiä ja ryhmiä, jotta tallennusjärjestelmä voi todentaa nämä käyttäjät.

 

Kun käyttäjä lisätään ylätason domainin suojausvälilehteen Active Directoryn käyttäjät ja tietokoneet -kohdassa, sille annetaan oletusarvoisesti PFMP:n LDAP-todennukseen tarvittavat oletusarvoiset vain luku -vaatimukset. esim.

 

 

 

 

TIEDOKSESI: Emme tarvitse LDAP-sidontakäyttäjää hakemistossa luettaviin AD-ryhmiin, vaan tarvitsemme Suojaus-välilehden oikeudet "Lue".

 

image

PFMP LDAP -palveluntarjoajan yleiset vaatimukset

 

Osoite: ldaps://ad.ldap.domain:3269 (SSL) TAI ldap://ad.ldap.domain:3268 (TAVALLINEN)

Sido DN: ADNTDOMAIN\serviceaccount tai sido DN-yksilöivä nimi.

Sido DN-salasana: palvelutilin salasana

Timeout 30000

Username LDAP attribute: sAMAccountName

ID-määrite: objectGUID

Object Class: Person

Hakupolku: (Korkein taso, joka voi tehdä kyselyjä kaikista ryhmistä, esim. vain toimialueen komponentit/toimialueen ohjauskoneet: DC=powerflex,DC=lab,DC=dell,DC=com)

Group Member Attribute: member

Group ID Attribute: cn

Group Object Class: group

Ryhmähakupolku:(Sama kuin käyttäjän hakupolku tai tarvittaessa yksityiskohtaisempi.  Koska käytämme kapeaa suodatinta, soveltamisalamme voi olla laaja vaikuttamatta suorituskykyyn.)

 

#The seuraava merkintä antaa LDAP-ryhmäsuodattimeen vähintään yhden ryhmän (PFMP 4.6.x+), joten Keycloak ei etsi kaikkia ryhmiä koko hakemistosta:

Group LDAP Filter: (CN=GROUP1)

#Given 64 merkin rajoitus tässä kentässä koskee vain PFMP-käyttöliittymää, meidän on kierrettävä se keycloakin avulla, jos haluamme lisätä enemmän, esimerkiksi 3 eri ryhmää:
 

Group LDAP Filter: (|(CN=GROUP1)(CN=GROUP2)(CN=GROUP3))

Testaa yhteys ja jos se onnistuu, valitse Lähetä.

Esim.

 

 

2. LDAP-palveluntarjoajan poistaminen ja puhdistaminen

 

Poista LDAP-käyttäjät, -ryhmät ja sitten hakemistotoimittaja PFMP-käyttöliittymästä admin-käyttäjänä.  Älä yritä tehdä tätä LDAP-käyttäjänä, vaan ainoastaan järjestelmänvalvojana.

 

VAROITUS: Muista tallentaa Hakemiston tarjoajan ja etäkäyttäjien/ryhmien määritysten nykyinen määritys PFMP:stä (erityisesti, jos sinun on palautettava aiempi roolimääritys).

Jos ryhmän/roolin yhdistäminen ei näy PFMP:ssä (tunnettu ongelma), noudata seuraavia ohjeita:

# from any mvm
cmo_pri=$(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master,postgres-operator.crunchydata.com/instance-set' -o name)
# Group role
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "SELECT keycloak_group.name AS group_name,keycloak_role.name AS role_name FROM group_role_mapping JOIN keycloak_group ON (group_role_mapping.group_id = keycloak_group.id) JOIN keycloak_role ON (group_role_mapping.role_id = keycloak_role.id);"
# Group attributes
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "SELECT keycloak_group.name AS group_name,group_attribute.name AS attribute_name, value FROM group_attribute JOIN keycloak_group ON (group_attribute.group_id = keycloak_group.id);"
Example:
mvm01:~
# kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak
keycloak=# SELECT keycloak_group.name AS group_name,keycloak_role.name AS role_name FROM group_role_mapping JOIN keycloak_group ON (group_role_mapping.group_id = keycloak_group.id) JOIN keycloak_role ON (group_role_mapping.role_id = keycloak_role.id);
 
 group_name  |   role_name
---------------+----------------
EMEALabAdmins | SuperUser
LabAdmins     | LifecycleAdmin
LabUsers      | Monitor (3 rows) keycloak=# SELECT keycloak_group.name AS group_name,group_attribute.name AS attribute_name, value FROM group_attribute JOIN keycloak_group ON (group_attribute.group_id = keycloak_group.id);  group_name  | attribute_name |  value ---------------+----------------+---------
EMEALabAdmins | remote_type    | Ldap EMEALabAdmins | SuperUser      | GLB:GLB EMEALabAdmins | is_remote      | true LabAdmins     | remote_type    | Ldap LabAdmins     | LifecycleAdmin | GLB:GLB LabAdmins     | is_remote      | true LabUsers      | remote_type    | Ldap LabUsers      | Monitor        | GLB:GLB LabUsers      | is_remote      | true (9 rows)
keycloak=# \q

 

 

Jos Keycloak-tietokantaan jää vanhentuneita LDAP-ryhmiä, ne voidaan poistaa manuaalisesti seuraavalla tavalla:

 

Keycloak-tietokannan varmuuskopiointi ja keycloak_group tietokantataulukon puhdistuskomennot.

 

Huomautus: Manuaalinen puhdistus Keycloak ei joskus ole tarpeen. 

Poista palveluntarjoaja PFMP-käyttöliittymästä (aina ensin PFMP:stä) ja varmista sitten, että se on poistettu Keycloakista /auth/-URL-osoitteella.

 

 

Kuinka tarkistaa LDAP-ryhmien määrä Keycloakissa mistä tahansa MVM: stä:

 

# Aseta muuttuja ensin suorittamalla tämä.

cmo_pri=$(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master,postgres-operator.crunchydata.com/instance-set' -o name)

#check count of groups in keycloak
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "SELECT COUNT (*) FROM keycloak_group;"
# We usually want 0 groups after removing the LDAP provider.
#Backup the current keycloak DB before any edits.
kubectl exec -it -n powerflex $cmo_pri -- bash -c 'pg_dump -U postgres -d keycloak' >/home/delladmin/keycloak.sql
#delete all entries inside of keycloak_group (and related roles and attributes) while preserving its structure
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "DELETE FROM group_attribute;"
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "DELETE FROM group_role_mapping;"
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "DELETE FROM keycloak_group;"
#check that the group count has reduced:
kubectl exec -it -n powerflex $cmo_pri -- psql -U postgres -d keycloak -c "SELECT COUNT (*) FROM keycloak_group;"

 

Tämä tapahtuu vasta sen jälkeen, kun se on ensin poistettu PFMP-käyttöliittymässä, ja vain, jos palveluntarjoajan tiedot pysyvät taustalla.  Jos käytössäsi on PFxM 4.6.0.1, voit poistaa tuodut käyttäjät Keycloak-käyttöliittymässä myös seuraavalla tavalla:

  1. Kirjaudu sisään keycloak-käyttäjänä /auth/
  2. Keycloak-salasana on yksilöllinen jokaiselle asennukselle, ja se löytyy mistä tahansa MVM: stä käyttämällä:

 

kubectl get secret -n powerflex keycloak-admin-credentials -o jsonpath="{.data.password}" | base64 --decode; echo

 

3. Käyttäjien yhdistäminen -> LDAP -> Asetukset ja valitse oikean yläkulman avattavasta Toiminnot-valikosta Poista tuodut.

 

 

 

 

 

 

Kun ryhmät ja hakemistontarjoajat on puhdistettu ja poistettu, käynnistä kolme MVM-solmua uudelleen. 

 

 -Muistiinpano: Tämä on pakollista vain, kun ympäristö on suuri ja LDAP-kyselyt pinoutuvat toistuvasti, kuten tässä tapauksessa nähdään alla olevista lokeista.

 - Jos ympäristö ei ole ylikuormitettu synkronointiongelmista ja käyttöliittymä on vakaa, MVM-uudelleenkäynnistykset voidaan yleensä ohittaa. Se on kuitenkin yleisesti ottaen hyvä toimenpide.

 

Käynnistä KB-https://www.dell.com/support/kbdoc/en-us/000225550 uudelleen  

MVM Graceful Reboot (on suoritettava solmu kerrallaan) Älä siirry seuraavaan solmuun, ennen kuin olet varmistanut, että tietokanta ilmoittaa synkronointivalmiustilasta.

 

#As parhaan käytännön mukaisesti, tunnista solmu, joka on Postgresin nykyinen johtaja, ja käynnistä tämä uudelleen viimeisenä.

#Run seuraava komento missä tahansa MVM: ssä luetellaksesi tietokannan tilan ja siihen liittyvät tietokannan nimet.

kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list'

#Run tällä komennolla voit tunnistaa, mikä MVM-solmu isännöi postgres-tietokantapodia.

 

for x in `kubectl get pods -n powerflex | grep "postgres-ha-cmo" |awk '{print $1}'` ; do echo $x; kubectl get pods -n powerflex $x -o json | grep '"nodeName"' | cut -d ':' -f2 ; echo " "; done

 

#On MVM, joka on Postgres Leader pod -esiintymä.   Suorita 'watch kubectl get nodes' seurataksesi uudelleenkäynnistysten tilaa. Tämän MVM: n on oltava viimeinen solmu, joka käynnistetään uudelleen.

#Esimerkki uudelleenkäynnistysjärjestyksestä, jossa pfmp-mgmt-1 on Postgres-johtaja. Säädä alla olevien komentojen järjestystä sen mukaan, mikä MVM on Postgres-johtaja.

 

Avaa kolmanteen MVM: ään kytketty pääte ja suorita kaksi ensimmäistä komentoa.

 

kubectl label
node pfmp-mgmt-3 cmo.maintenance.mode=true
kubectl drain pfmp-mgmt-3 --ignore-daemonsets --delete-emptydir-data && sudo reboot

#When solmu käynnistyy uudelleenkäynnistyksestä. Suorita seuraava komento.

kubectl uncordon pfmp-mgmt-3 ; kubectl label node pfmp-mgmt-3 cmo.maintenance.mode-

#Run seuraavaa komentoa, kunnes MVM3:een liittyvä tietokanta ilmoittaa synkronointivalmiustilasta. Siinä vaiheessa voit siirtyä seuraavaan MVM: ään.

 

kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list'

 

Avaa toiseen MVM: ään kytketty pääte ja suorita kaksi ensimmäistä komentoa.

 

kubectl label node pfmp-mgmt-2 cmo.maintenance.mode=true
kubectl drain pfmp-mgmt-2 --ignore-daemonsets --delete-emptydir-data && sudo reboot

#When solmu käynnistyy uudelleenkäynnistyksestä.  Suorita seuraava komento.

kubectl uncordon pfmp-mgmt-2 ; kubectl label node pfmp-mgmt-2 cmo.maintenance.mode-

#Run seuraavaa komentoa, kunnes MVM2:een liittyvä tietokanta ilmoittaa synkronointivalmiustilasta. Siinä vaiheessa voit siirtyä seuraavaan MVM: ään.

kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list' 

#Run seuraavaa komentoa, jos haluat käyttää tätä MVM:ää solmun tilan valvojana MVM:nä.

'watch kubectl get nodes'

 

Siirry päätelaitteeseen, joka on yhdistetty ensimmäiseen MVM: ään, joka suorittaa 'watch kubectl get nodes'.  Palaa päätteeseen painamalla ctrl+c ja suorita kaksi ensimmäistä komentoa.

kubectl label
node pfmp-mgmt-1 cmo.maintenance.mode=true
kubectl drain pfmp-mgmt-1 --ignore-daemonsets --delete-emptydir-data && sudo reboot

#When solmu käynnistyy uudelleenkäynnistyksestä.  Suorita seuraava komento.

kubectl uncordon pfmp-mgmt-1 ; kubectl label node pfmp-mgmt-1 cmo.maintenance.mode-

#Run seuraavaa komentoa, kunnes MVM1:een liittyvä tietokanta ilmoittaa synkronointivalmiustilasta.  Tämä MVM oli johtaja, mutta uusi johtaja ottaisi vallan, kun MVM1 tyhjennettiin.  

kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list'

MVM: N SULAVAN UUDELLEENKÄYNNISTYKSEN LOPPU

Kun olet käynnistänyt uudelleen ja käyttöliittymä on palautettu PFMP:hen, kirjaudu sisään järjestelmänvalvojana ja lisää Asetukset -> hakemiston tarjoaja seuraavasti:

3. LDAP-palveluntarjoajan uudelleenmääritys

 

Kuten valmisteluosassa mainittiin, jos jossakin PFMP:ssä käytettävässä ryhmässä on AD-alitoimialueita tai AD-toimialueiden luottamustilejä, on käytettävä yleisen luettelon (GC) LDAP-portteja 3268 (tavallinen) ja 3269 (SSL).

 

Esim.

 

ldaps://ad.ldap.corporate.domain.com:3269
Users DN: DC=powerflex,DC=lab,DC=dell,DC=com
Bind DN:DOMAIN\svc_ldapbindaccount 
Username LDAP attribute: sAMAccountName
UUID LDAP attribute: objectGUID
User Object Classes: Person
This field has a 64 character limit in PFMP UI only.   You can put one group in to prevent 'full' directory sync, then use the keycloak UI to refine and add on to the group filter.
Group LDAP Filter: (|(CN=FLEXLAB-APP-PROD-SDS-Admin)(CN=LabAdmins))
Timeout 22222

4. Kapean LDAP-käyttäjän ja -ryhmän sovellus

 

 

 

Kirjaudu sisään keycloak-käyttäjänä /auth/


Käyttäjäsuodatin:

 

 

 

# User LDAP Filter puuttuu PFMP-käyttöliittymästä, joten meidän on muutettava se seuraavasti.

#This suodatin on käytettävä Keycloak PowerFlex -alueella (PowerFlex --> Käyttäjien yhdistäminen --> Käyttäjän LDAP-suodatin)

 

 

 

Käyttäjän LDAP-suodatin:

 

 

(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=CN=FLEXLAB-APP-PROD-SDS-Admin,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)(memberOf=CN=LabAdmins,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)(memberOf=CN=LabUsers,CN=Users,DC=powerflex,DC=lab,DC=dell,DC=com)))

 

 

 

Tallenna muutos.

 

 

 

Tämän kavennetun suodattimen selitys:

 

 

 

objectCategory on sama kuin Person.

ja

sAMAccountName on olemassa

ja

memberOf on yhtä suuri kuin CN=PowerFlex Admin,OU=sio-group1,DC=powerflex,DC=lab,DC=dell,DC=com

Tai

memberOf on yhtä suuri kuin CN=FLEX-STOR-MON,OU=15G,OU=FLEXLAB,DC=powerflex,DC=lab,DC=dell,DC=com

Alkaen <https://ldap-builder.powerflex.lab.dell.com/>

Käyttäjien yhdistäminen -> LDAP -> Asetukset ja valitse oikean yläkulman avattavasta Toiminnot-valikosta Poista tuodut.

 

4.6.x+ Käyttöliittymä Menetelmä ryhmäyhdistämisen poistamiseksi.

 

LDAP Group Mapping -asetuksessa 'Membership User LDAP Attribute' meidän on myös varmistettava, että oikea arvo, jonka toimitamme muodossa "cn" eikä voi muuttua PFMP:ssä Keycloak-käyttöliittymässä arvoksi on muutettu DN.

 

 

 

LDAP-ryhmässä voimme luetella joko/tai-operaattorin |   ja kunkin ryhmän CN-koodit, esim.

(|(CN=FLEXLAB-APP-PROD-SDS-Admin)(CN=CN=PRV_US_SA_SRV_SVS))

 

Products

PowerFlex rack, VxFlex Ready Nodes, PowerFlex custom node, PowerFlex appliance R650, PowerFlex appliance R6525, PowerFlex appliance R660, PowerFlex appliance R6625, Powerflex appliance R750, PowerFlex appliance R760, PowerFlex appliance R7625 , PowerFlex custom node, PowerFlex custom node R650, PowerFlex custom node R6525, PowerFlex custom node R660, PowerFlex custom node R6625, PowerFlex custom node R750, PowerFlex custom node R760, PowerFlex custom node R7625, PowerFlex custom node R860, PowerFlex rack connectivity, PowerFlex rack HW, PowerFlex rack RCM Software, PowerFlex Software, VxFlex Ready Node, VxFlex Ready Node R640, VxFlex Ready Node R740xd, PowerFlex appliance R640, PowerFlex appliance R740XD, PowerFlex appliance R7525, PowerFlex appliance R840, VxFlex Ready Node R840 ...
Article Properties
Article Number: 000243118
Article Type: How To
Last Modified: 20 Mar 2025
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.