Come scrivere filtri di ricerca LDAP
Avviso piattaforma: solo server e Data Center – Questo articolo si applica solo ai prodotti Atlassian sulle piattaforme server e data center.
Scopo
Questo documento descrive come costruire un filtro più sofisticato per gli attributi User Object Filter e Group Object Filter nella configurazione LDAP per le applicazioni Atlassian.
Che cos’è un filtro
I filtri possono essere utilizzati per limitare il numero di utenti o gruppi che possono accedere a un’applicazione. In sostanza, il filtro limita la parte dell’albero LDAP da cui l’applicazione si sincronizza.
Un filtro può e deve essere scritto sia per l’appartenenza all’utente che al gruppo. Questo assicura che non si sta inondando l’applicazione con gli utenti e gruppi che non hanno bisogno di accesso.
Soluzione
Quando si costruisce un filtro è meglio scegliere un attributo comune del set di utenti che si desidera consentire l’accesso all’applicazione. Questo è più spesso l’attributo che denota l’appartenenza al gruppo o una objectClass come “Person”
L’attributo utilizzato per indicare l’appartenenza a un gruppo non è comune a tutte le versioni di LDAP. Esempi di questo attributo possono essere “groupMembership ” o”Membro”
Come posso abbinare più di un attributo?
Ad esempio, se i miei utenti si distinguono per avere due attributi objectClass (uno uguale a ‘person’ e un altro a ‘user’), questo è il modo in cui lo abbinerei:
(&(objectClass=person)(objectClass=user))
Notare il simbolo ampersand symbol '&'
all’inizio. Tradotto questo significa: cerca objectClass = person E object = user.
In alternativa,
(|(objectClass=person)(objectClass=user))
Tradotto questo significa: cerca objectClass=person O object=user.
Il pipe symbol '|'
indica ‘OR’. Poiché questo non è un carattere XML speciale, non dovrebbe aver bisogno di escape.
Caratteri jolly
(&(objectClass=user)(cn=*Marketing*))
Questo significa: cerca tutte le voci che hanno objectClass = user E cn che contengono la parola ‘Marketing’.
I caratteri jolly non sono supportati se usati nei filtri usando ! (o NO) operatori logici. Vedi sotto
I servizi LDAP stessi non supportano i caratteri jolly permemberOf
attribute
e altri Nomi distinti quando si imposta LDAPFilter.
Come faccio a abbinare 3 attributi?
Basta aggiungere una clausola extra:
(&(objectClass=user)(objectClass=top)(objectClass=person))
È possibile aggiungere clausole aggiuntive anche per più di tre attributi.
Componenti corrispondenti di nomi distinti
Poiché Microsoft Active Directory non implementa la corrispondenza estensibile, i seguenti esempi non funzioneranno con esso.
Potresti voler abbinare parte di un DN, ad esempio quando devi cercare i tuoi gruppi in due sottoalberi del tuo server.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
troverà gruppi con un componente OU del loro DN che è ‘Chicago’ o ‘Miami’.
Usando ‘ not ‘
Per escludere entità che corrispondono a un’espressione, usa ‘!’.
So
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
troverà tutti i gruppi di Chicago tranne quelli con un componente Wrigleyville OU.
Nota le parentesi extra: (!(<espressione >))
Si noti che se si utilizza ‘not’ (es. ‘!’per escludere oggetti, deve essere rappresentato come l’entità’!’nel tuo file XML se stai usando Confluence 3.4 o al di sotto.
Per Confluenza 3.4 e sotto, una volta creato il filtro di ricerca utilizzando questo documento, è necessario sfuggire al simbolo e commerciale e al simbolo del punto esclamativo prima di aggiungerlo al file XML. Quindi, ad esempio;
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
Fare riferimento a questa documentazione esterna su altri caratteri XML che necessitano di escape.diventa
Filtri di esempio
Questi filtri sono scritti per Active Directory. Per usarli per qualcosa come OpenLDAP gli attributi dovranno essere modificati.
Questo sarà solo sincronizzare gli utenti nel ‘CaptainPlanet’ gruppo – questo dovrebbe essere applicato all’Oggetto Utente Filtro:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
E questa volontà di ricerca per gli utenti che sono membri di questo gruppo, direttamente o per il tramite di nidificazione:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Importante per Active Directory per avere memberOf:1.2.840.113556.1.4.1941 se si desidera trovare i gruppi nidificati (non sostituire la stringa numerica) all’interno CaptainPlanet gruppo.
in Questo modo, la ricerca per gli utenti che sono membri di una qualsiasi o tutti i 4 gruppi (fuoco, vento,acqua,cuore)
(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
Questo documento descrive come andare circa la costruzione di un più sofisticato filtro per l’Oggetto Utente di Filtrare e raggruppare Oggetti Filtro attributi di configurazione di LDAP per Atlassian applicazioni.
Jira, Confluenza, Bambù, Bitbucket
Server
Leave a Reply