Abfrageparameter
Sie können Abfrageparameter in Anforderungen an die REST-API für Identitätsdomains aufnehmen. Diese Parameter sind nützlich, um Ressourcen mit bestimmten Attributen oder Attributwerten zu suchen und die Ausgabe zu sortieren und zu paginieren.
Informationen zu Abfrageparametern
Mit einer Abfrage können Sie die Ausgabe wie folgt filtern:
Die Filterfunktionen für Abfragen hängen vom REST-Service ab. REST-Services ohne SCIM unterstützen möglicherweise nicht die erweiterten Filter und Parameter, die Sie verwenden möchten.
-
Listen Sie nur Ressourcen auf, die bestimmte Attribute enthalten oder die bestimmte Werte für Attribute aufweisen.
-
Begrenzen Sie die im Antwortbody zurückgegebenen Attribute.
-
Die Ausgabe nach einem angegebenen Attribut in aufsteigender oder absteigender Reihenfolge sortieren.
-
Begrenzen Sie die Anzahl der zurückgegebenen Ressourcen.
-
Geben Sie an, wo die Anforderung in der Liste der Ressourcen in der Collection gestartet werden soll.
Abfrageparameter werden in der Regel mit Suchmethoden verwendet:
-
GET: Zum Filtern von Suchergebnissen. Siehe Abfrageparameter mit GET.
-
POST: Zum Filtern von Suchergebnissen mit den Parametern im Anforderungstext (aus Sicherheitsgründen). Siehe Abfrageparameter mit POST-/.search-Anforderungstext.
Abfrageparameter mit GET
GET
-Anforderung an einem Ressourcenendpunkt wie /Users
oder /Groups
ausführen, fügen Sie die Abfrage in die URL ein. Hängen Sie ein Fragezeichen (?)
an die URL an, gefolgt von der Abfrage. Zeichen in einer URL, die sich außerhalb des ASCII-Zeichensatzes befinden, wie Leerzeichen und Anführungszeichen, müssen URL-codiert sein. Beispiele werden mit URL-codierten Zeichen bereitgestellt. Das + ersetzt Leerzeichen und %22 ersetzt Anführungszeichen (").
https://<domainURL>/admin/v1/Users?attributes=email&filter=userName+co+%22jensen%22
So suchen Sie alle Gruppen und AppRoles, die mit einem bestimmten Benutzer verknüpft sind:
https://<domainURL>/admin/v1/Users/1e895413c68d42c7bc006d0033794c1e?attributes=groups,urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:appRoles
Abfrageparameter mit POST/.search-Anforderungstext
Sie können Suchen mit einer POST-Anforderung an einem Ressourcenendpunkt erstellen, der auf /.search
endet. In diesem Fall fügen Sie die Abfrage in den Anforderungstext ein. Verwenden Sie diese Methode (aus Sicherheitsgründen) bei der Suche nach vertraulichen Informationen, wie Benutzernamen, bei denen die vertraulichen Informationen zusammen mit anderen Daten übermittelt werden.
/Users/.search
ausgeführt wird. Gibt die ersten 10 Benutzereinträge zurück, wobei displayName
mit smith
beginnt und meta.resourceType
gleich User.
ist
{
"schemas":["urn:ietf:params:scim:api:messages:2.0:SearchRequest"],
"attributes": ["displayName","userName"],
"filter": "(displayName sw \"smith\")", "startIndex": 1, "count": 10
}
Der Parameter attributes
kann mit allen Methoden mit Ausnahme von DELETE
verwendet werden. Die anderen Abfrageparameter sind nur für Suchmethoden relevant und werden von anderen Methoden ignoriert.
HTTP-Abfrageparameter | Beschreibung |
---|---|
attributes=attribute1,attribute2
|
Gibt eine mehrwertige Liste mit Zeichenfolgen an, die die Namen der Ressourcenattribute angibt, die in der Antwort zurückgegeben werden sollen. Dieser Abfrageparameter akzeptiert auch die Erweiterungsschema-ID als gültigen Attributnamen. Wenn Sie die Erweiterungsschema-ID in die Attribute aufnehmen, werden alle darin enthaltenen Standardattribute zurückgegeben. |
attributeSets
|
Die Suche gibt eine Gruppe von Attributen in der Antwort zurück, anstatt jedes Attribut einzeln anzugeben. Dieser Abfrageparameter akzeptiert kommagetrennte Werte aus den folgenden Parametern:
attributes als auch attributeSets angegeben sind, werden die Werte aus beiden in der Antwort zurückgegeben. |
count=N
|
Gibt die maximale Anzahl von Suchergebnissen pro Seite an. Geben Sie eine nicht negative Zahl an, um eine Antwort abzurufen. Eine negative Zahl wird standardmäßig auf 50 gesetzt und gibt die ersten 50 Ressourcen zurück. |
startIndex=N
|
Gibt den Index der Startseite an. Dies ist der 1-basierte Index des ersten Abfrageergebnisses. Ein Wert kleiner als 1 wird als 1 interpretiert. |
filter=Expression
|
Die Suche gibt alle Ressourcen im angegebenen Endpunkt zurück, für die der Ausdruck wahr ist. Weitere Informationen finden Sie in Filterabfrageparameter verwenden. |
sortBy=attribute
|
Gibt den Attributnamen an, nach dem die Antwort sortiert werden soll. |
sortOrder=ascending | sortOrder=descending |
Gibt die Reihenfolge an, in der der der Parameter sortBy angewendet wird. Wenn Sie einen Wert für sortBy angeben und keine sortOrder angeben, lautet der Standardwert für sortOrder ascending. |
Filterabfrageparameter verwenden
Sie können die Abfrage filter
in Suchen verwenden, die Sie mit der Methode GET
ausführen. Das Format einer Filterabfrage lautet:
filter=Expression
Ein Filter muss mindestens einen gültigen Ausdruck enthalten. Jeder Ausdruck enthält einen Attributnamen, gefolgt von einem Attributoperator und einem optionalen Wert. Durchsuchbare Attribute variieren von Ressource zu Ressource. Diese werden in den Themen für diese GET
-Anforderungen behandelt.
Die folgende URL enthält eine Filterabfrage für Benutzer mit dem Attribut userName
, das jensen:
enthält
Zeichen in einer URL, die sich außerhalb des ASCII-Zeichensatzes befinden, wie Leerzeichen und Anführungszeichen, müssen URL-codiert sein. Beispiele werden mit URL-codierten Zeichen bereitgestellt. Das + ersetzt Leerzeichen und %22 ersetzt Anführungszeichen (").
https://<domainURL>/admin/v1/Users?filter=userName+co+%22jensen%22
Attributoperator | Beschreibung | Verhalten |
---|---|---|
eq
|
Entspricht | Die Attribut- und Operatorwerte müssen für eine Übereinstimmung identisch sein. |
ne
|
Nicht gleich | Die Attribut- und Operatorwerte sind nicht identisch. |
co
|
Enthält | Der gesamte Operatorwert muss eine Teilzeichenfolge des Attributwerts für eine Übereinstimmung sein. |
sw
|
beginnt mit | Der gesamte Operatorwert muss eine Teilzeichenfolge des Attributwerts sein, beginnend am Anfang des Attributwerts. Dieses Kriterium wird erfüllt, wenn die beiden Zeichenfolgen identisch sind. |
ew
|
Endet mit | Der gesamte Operatorwert muss eine Teilzeichenfolge des Attributwerts sein und am Ende des Attributwerts übereinstimmen. Dieses Kriterium wird erfüllt, wenn die beiden Zeichenfolgen identisch sind. |
pr
|
Vorhanden (hat Wert) | Wenn das Attribut einen nicht leeren Wert aufweist oder einen nicht leeren Knoten für komplexe Attribute enthält, gibt es eine Übereinstimmung. |
gt
|
größer als | Wenn der Attributwert größer als der Operatorwert ist, gibt es eine Übereinstimmung. Der tatsächliche Vergleich hängt vom Attributtyp ab. Bei Zeichenfolgenattributtypen handelt es sich um einen lexikographischen Vergleich. Bei DateTime -Typen handelt es sich um einen chronologischen Vergleich. |
ge
|
größer oder gleich | Wenn der Attributwert größer/gleich dem Operatorwert ist, gibt es eine Übereinstimmung. Der tatsächliche Vergleich hängt vom Attributtyp ab. Bei Zeichenfolgenattributtypen handelt es sich um einen lexikographischen Vergleich. Bei DateTime -Typen handelt es sich um einen chronologischen Vergleich. |
lt
|
Kleiner als | Wenn der Attributwert kleiner als der Operatorwert ist, gibt es eine Übereinstimmung. Der tatsächliche Vergleich hängt vom Attributtyp ab. Bei Zeichenfolgenattributtypen handelt es sich um einen lexikographischen Vergleich. Bei DateTime -Typen handelt es sich um einen chronologischen Vergleich. |
le
|
Kleiner als oder gleich | Wenn der Attributwert kleiner/gleich dem Operatorwert ist, gibt es eine Übereinstimmung. Der tatsächliche Vergleich hängt vom Attributtyp ab. Bei Zeichenfolgenattributtypen handelt es sich um einen lexikographischen Vergleich. Bei DateTime -Typen handelt es sich um einen chronologischen Vergleich. |
Sie können mehrere Ausdrücke mit den logischen Operatoren and
und or
kombinieren und einen Ausdruck negieren, indem Sie ihm den Attributoperator not.
voranstellen. Verwenden Sie Klammern ()
für die Prioritätsgruppierung und eckige Klammern []
für die Filtergruppierung komplexer Attribute.
Beispiele für Abfrageparameterfilter
Verwenden Sie die folgenden Abfrageparameterbeispiele als Ausgangspunkt für Abfragen in einer Identitätsdomain.
Zeichen in einer URL, die sich außerhalb des ASCII-Zeichensatzes befinden, wie Leerzeichen und Anführungszeichen, müssen URL-codiert sein. Beispiele werden mit URL-codierten Zeichen bereitgestellt. Das + ersetzt Leerzeichen und %22 ersetzt Anführungszeichen (").
Beispiele für Benutzer
Um nach Benutzern zu suchen, deren Attribut userName
example
entspricht, verwenden Sie diesen Filter:
https://<domainURL>/admin/v1/Users?filter=userName+eq+%22example%22
In diesem Filterbeispiel wird nach einem Benutzer mit einer userName
gesucht, die jensen:
enthält
https://<domainURL>/admin/v1/Users?filter=userName+co+%22jensen%22
In diesem Filterbeispiel wird nach einem Benutzer mit einer userName
gesucht, die entweder example
enthält oder mit my:
beginnt.
https://<domainURL>/admin/v1/Users?filter=userName+co+%22example%22+or+userName+sw+%22my%22
In diesem Filterbeispiel wird nach einem Benutzer mit dem Unterattribut familyName
von name
gesucht, das jensen:
enthält
https://<domainURL>/admin/v1/Users?filter=name.familyName+co+%22jensen%22
Dieses komplexe URL-Abfragebeispiel gibt alle Benutzer mit einem userName
-Wert von example
zurück, listet die Attribute emails.value
und name.familyName
im JSON-Antwortbody auf und gibt maximal acht Benutzer pro Ausgabeseite zurück.
https://<domainURL>/admin/v1/Users?filter=userName+eq+%22example%22&attributes=emails.value,name.familyName&count=8
In diesem Filterbeispiel werden Benutzer mit dem Filterparameter in GET gesucht.
https://<domainURL>/admin/v1/Users/?filter=phoneNumbers.value co "415"
Dieses Filterbeispiel gibt Benutzer zurück, die das durchsuchbare benutzerdefinierte Attribut Nickname
haben. Weitere Informationen zu durchsuchbaren benutzerdefinierten Attributen finden Sie unter Benutzerschemas anpassen und Schemas anpassen.
GET https://<domainURL>/admin/v1/Users?filter=(urn:ietf:params:scim:schemas:idcs:extension:custom:User:Nickname pr)
Dieses Filterbeispiel gibt Benutzer zurück, deren durchsuchbares benutzerdefiniertes Attribut mit einer Textzeichenfolge übereinstimmt. Weitere Informationen zu durchsuchbaren benutzerdefinierten Attributen finden Sie unter Benutzerschemas anpassen und Schemas anpassen.
GET https://<domainURL>/admin/v1/Users?filter=(urn:ietf:params:scim:schemas:idcs:extension:custom:User:Nickname eq "aabbccc")
Beispiele für Telefonnummern
Funktioniert nur mit POST-Vorgängen.
POST https://<domainURL>/admin/v1/Users/.search
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:SearchRequest"],
"filter": "phoneNumbers.value sw \"+1\""
}
In diesem Filterbeispiel wird nach Benutzern gesucht, deren private Telefonnummer die Zeichenfolge "503" enthält.
POST https://<domainURL>/admin/v1/Users/.search
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:SearchRequest"],
"filter": "phoneNumbers[type eq \"home\"].value co \"503\""
}
oder
POST https://<domainURL>/admin/v1/Users/.search
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:SearchRequest"],
"filter": "phoneNumbers[type eq \"home\" and value co \"503\"]"
}
Der SCIM-Filterparameter unterstützt keine RegEx-Muster. Sie müssen alle möglichen Variationen aufgenommen haben. Verwenden Sie das folgende Beispiel, um zu beginnen.
POST https://<domainURL>/admin/v1/Users/.search
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:SearchRequest"],
"phoneNumbers.value eq \"+1 9xxxx xxxxx\" or phoneNumbers.value eq \"+19xxxx xxxxx\" or phoneNUmbers.value eq \"+19xxxxxxxxx\""
}
Anwendungsrollenbeispiele
In diesem Filterbeispiel werden alle Benutzer mit einer bestimmten AppRole gesucht:
https://<domainURL>/admin/v1/Users?filter=urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:approles.value+eq+<idOfAppRole>
Dieses Filterbeispiel gibt Elemente der AppRole mit der approleid
zurück.
GET https://<domainURL>/admin/v1/AppRoles/{{approleid}}?attributes=members
Dieses Filterbeispiel gibt AppRoles für eine bestimmte Anwendung mit dem appid
zurück.
GET https://<domainURL>/admin/v1/AppRoles?filter=app.value eq "{{appid}}"