Sie können benutzerdefinierte Felder für Nutzer in Ihrer Domain definieren, indem Sie der Domain benutzerdefinierte Nutzerschemata hinzufügen. In diesen Feldern können Sie Informationen wie die Projekte speichern, an denen Ihre Nutzer arbeiten, ihren physischen Standort, ihr Einstellungsdatum oder andere Informationen, die Ihren geschäftlichen Anforderungen entsprechen.
Zuerst müssen Sie ein oder mehrere Schemas erstellen, um die benutzerdefinierten Felder zu definieren, die für Ihre Domain sinnvoll sind. Sie können eine Reihe von Attributen angeben, z. B. den Namen des Felds, den Typ (String, Boolescher Wert, Ganzzahl usw.), ob es ein einzelner oder mehrerer Wert ist und ob seine Werte für alle Nutzer in Ihrer Domain oder nur für Administratoren und den zugehörigen Nutzer sichtbar sind.
Nachdem ein Schema definiert wurde, verhalten sich die benutzerdefinierten Felder genau wie Standardfelder.
Sie können sie beim Aktualisieren von Nutzern in Ihrer Domain festlegen, mit users.get
und users.list
abrufen und auch nach benutzerdefinierten Feldern suchen.
Benutzerdefinierte Felder in einem Nutzerprofil festlegen
Wenn Sie ein Schema aktualisieren oder erstellen möchten, erstellen Sie eine customSchemas
Property und fügen Sie sie der Nutzerressource hinzu. Innerhalb der Property customSchemas
werden die benutzerdefinierten Felder nach Schema im Standard-JSON-Format gruppiert:
"customSchemas": {
"schema1": {
"field1": "value1",
"field2": [
{ "value": "value2a" },
{ "value": "value2b" },
...
],
...
},
"schema2": {
"field3": "value3",
...
},
...
}
Benutzerdefinierte Felder mit nur einem Wert werden als einfache Schlüssel/Wert-Paare festgelegt, z. B. "field1": "value1"
. Benutzerdefinierte Felder mit mehreren Werten werden als Arrays von Objekten festgelegt, ähnlich wie die standardmäßigen Felder mit mehreren Werten in der API, z. B. addresses
und phones
. Diese Wertobjekte unterstützen die folgenden Schlüssel:
Schlüssel | |
---|---|
value |
Der zu speichernde Wert, erforderlich. |
type |
Typ des Werts, optional. Folgende Werte sind möglich:
|
customType |
Benutzerdefinierter Typ des Werts, optional. Muss verwendet werden, wenn type auf custom gesetzt ist. |
Wenn ein benutzerdefiniertes Feld in einem Schema zum Zeitpunkt der Aktualisierung nicht angegeben ist, bleibt es unverändert. Wenn bei der Aktualisierung kein Schema in customFields
angegeben ist, bleiben alle benutzerdefinierten Felder in diesem Schema unverändert. Wenn Sie ein benutzerdefiniertes Feld oder ein benutzerdefiniertes Schema aus einem Profil löschen möchten, müssen Sie es explizit auf null
setzen:
"schema1": {
"field1": null // deletes field1 from this profile.
}
JSON-Anfrage
Im folgenden Beispiel wird ein Nutzer aktualisiert und Werte für das benutzerdefinierte Schema employmentData
festgelegt:
PATCH https://admin.googleapis.com/admin/directory/v1/users/liz@example.com
{
"customSchemas": {
"employmentData": {
"employeeNumber": "123456789",
"jobFamily": "Engineering"
"location": "Atlanta",
"jobLevel": 8,
"projects": [
{ "value": "GeneGnome" },
{ "value": "Panopticon", "type": "work" },
{ "value": "MegaGene", "type": "custom", "customType": "secret" }
]
}
}
}
Benutzerdefinierte Felder in einem Nutzerprofil lesen
Sie können benutzerdefinierte Felder in einem Nutzerprofil abrufen, indem Sie den Parameter projection
in einer users.get
- oder users.list
-Anfrage auf custom
oder full
festlegen.
In benutzerdefinierten Feldern in einem Nutzerprofil suchen
Mit dem Parameter query
in einer users.list
-Anfrage können Sie in benutzerdefinierten Feldern suchen. Sie fordern das benutzerdefinierte Feld mit einer schemaName.fieldName
-Syntax an. Beispiel:
employmentData.projects:"GeneGnome"
gibt alle Mitarbeiter zurück, die am Projekt „GeneGnome“ arbeiten. Die Anfrage
employmentData.location="Atlanta" employmentData.jobLevel>=7
gibt alle Mitarbeiter in Atlanta zurück, die über die Jobebene 7 liegen. Weitere Informationen finden Sie unter Nutzer suchen.
Benutzerdefiniertes Nutzerschema erstellen
Ein benutzerdefiniertes Nutzerschema kann allen Domains Ihres Google Workspace-Kontos hinzugefügt werden. Wenn Sie ein benutzerdefiniertes Nutzerschema in Ihren Domains erstellen möchten, verwenden Sie die folgende POST
-Anfrage und fügen Sie die in Anfragen autorisieren beschriebene Autorisierung ein. Informationen zu den Eigenschaften des Anfrage-Suchstrings finden Sie in der API-Referenz.
POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Bei allen Erstellungsanfragen müssen Sie die Informationen einreichen, die zur Bearbeitung der Anfrage erforderlich sind. Wenn Sie Clientbibliotheken verwenden, werden die Datenobjekte aus der von Ihnen ausgewählten Sprache in Objekte im JSON-Datenformat konvertiert.
JSON-Anfrage
Das folgende Beispiel zeigt eine Anfrage zum Erstellen eines benutzerdefinierten Schemas. Eine vollständige Liste der Anfrage- und Antworteigenschaften finden Sie in der API-Referenz.
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "false"
}
]
}
Bei einer erfolgreichen Antwort wird der HTTP-Statuscode 201 zusammen mit den Eigenschaften für das neue benutzerdefinierte Schema zurückgegeben.
Limits für benutzerdefinierte Schemas
- In einem Konto sind maximal 100 benutzerdefinierte Schemas zulässig.
- In einem Konto sind maximal 100 benutzerdefinierte Felder zulässig.
- Die maximale Anzahl von Zeichen in einem
string
-Feld für ein einwertiges benutzerdefiniertes Feld beträgt 500. Bei mehrwertigen benutzerdefinierten Feldern hängt die zulässige Anzahl der Elemente von der Größe der zugewiesenen Werte ab. Sie können beispielsweise 150 Werte mit jeweils 100 Zeichen oder 50 Werte mit jeweils 500 Zeichen hinzufügen. - In benutzerdefinierten Schemas und Feldnamen sind alphanumerische Zeichen, Unterstriche (
_
) und Bindestriche (-
) zulässig. - Der Typ eines Felds darf nicht geändert werden.
- Ein einwertiges Feld kann mehrwertig gemacht werden, der umgekehrte Vorgang ist jedoch nicht zulässig.
- Benutzerdefinierte Schemas oder Felder können nicht umbenannt werden.
Benutzerdefiniertes Nutzerschema aktualisieren
Wenn Sie ein benutzerdefiniertes Schema aktualisieren möchten, verwenden Sie die folgende PUT
-Anfrage und fügen Sie die in Anfragen autorisieren beschriebene Autorisierung ein. schemaKey
kann der Schemaname oder das eindeutige Schema id
sein. Informationen zu den Anfrage- und Antworteigenschaften finden Sie in der API-Referenz.
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
JSON-Anfrage
Im folgenden Beispiel enthielt das Schema employmentData
beim Erstellen ein Feld JobFamily
. Durch die Anfrage wird employmentData
so aktualisiert, dass es nur noch das Feld EmployeeNumber
enthält:
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/schemas/employmentData
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"St7vIdePbbDsQUvvrssynd-6JLg/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"St7vIdePbbDsQUvvrssynd-6JLg/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber",
"multiValued": "false"
}
]
}
Bei allen Aktualisierungsanfragen müssen Sie die erforderlichen Informationen einreichen.
Bei einer erfolgreichen Antwort wird der HTTP-Statuscode 200 zusammen mit der aktualisierten Schemaressource zurückgegeben.
Benutzerdefiniertes Nutzerschema abrufen
Wenn Sie ein benutzerdefiniertes Schema abrufen möchten, verwenden Sie die folgende GET
-Anfrage und fügen Sie die in Anfragen autorisieren beschriebene Autorisierung ein. schemaKey
kann der Schemaname oder das eindeutige Schema id
sein. Informationen zu den Anfrage- und Antworteigenschaften finden Sie in der API-Referenz.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Bei einer erfolgreichen Antwort wird der HTTP-Statuscode 200 zusammen mit den Eigenschaften für das benutzerdefinierte Schema zurückgegeben.
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber"
},
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "ZKy0QtoMRy2QlM-4sAsPtQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/jEULI-ZiqywQIHXgc8evEcTE4Cc\"",
"fieldType": "STRING",
"fieldName": "JobFamily"
}
]
}
Alle benutzerdefinierten Nutzerschemata abrufen
Wenn Sie alle benutzerdefinierten Schemas im selben Konto abrufen möchten, verwenden Sie die folgende GET
-Anfrage und fügen Sie die in Anfragen autorisieren beschriebene Autorisierung ein.Informationen zu Anfrage- und Antworteigenschaften finden Sie in der API-Referenz.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Bei einer erfolgreichen Antwort wird der HTTP-Statuscode 200 zusammen mit den benutzerdefinierten Schemas für das Konto zurückgegeben.
{
"kind": "admin#directory#schemas",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/iJ1eWn5AKuR-xTdwH_2IBlvSSKo\"",
"schemas": [
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber"
},
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "ZKy0QtoMRy2QlM-4sAsPtQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/jEULI-ZiqywQIHXgc8evEcTE4Cc\"",
"fieldType": "STRING",
"fieldName": "JobFamily"
}
]
}
]
}