SCIM ist ein allgemein anerkannter offener Standard, der die Verwaltung von Benutzeridentitäten in Cloud-basierten Anwendungen und Dienstleistungen vereinfacht. Es gibt eine Reihe von Standardverträgen für Benutzer und Gruppen, die erweitert werden können.
Unsere SCIM-Implementierung zielt auf die Version 2.0 des Protokolls ab.
Nützliche Links:
Dieser Artikel behandelt die SCIM-Implementierung in Showpad.
Zugriff auf SCIM
Die SCIM-Implementierung sollte als Erweiterung der öffentlichen API von Showpad betrachtet werden. Der Zugriff kann über die Inhaberauthentifizierung erfolgen.
Sie benötigen dies, um erfolgreich zu sein
- Showpad Unternehmenspaket
- Showpad- Administratorkonto
- Ein Identitätsmanagementsystem eines Drittanbieters
Die Konzepte der Großartigkeit
Der Basisendpunkt für die API ist:
https: // {Organisations-Subdomain}.showpad.biz/api/users/scim/v2 |
Jeder folgenden Anforderung muss der Basisendpunkt vorangestellt werden.
GET / Schemas
Gibt Konfigurationsdetails aus.
Sie können sie auch separat abrufen:
- GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:Benutzer
- GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:Group
- GET /Schemas/urn:ietf:params:scim:schemas:extension:enterprise:2.0:nutzer
GET / ResourceTypes
Gibt Arten von Ressourcen aus.
Sie können sie auch separat abrufen:
- GET / ResourceTypes/Benutzer
- GET / ResourceTypes /Gruppe
GET / ServiceProviderConfig
Gibt eine Liste der Vorgänge zurück, die in der aktuellen Implementierung unterstützt werden
Nutzer
Der BeNutzer ordnet SCIM-Attribute einem Showpad- Benutzer zu. Sie können Benutzer auflisten, filtern, hinzufügen, bearbeiten oder entfernen.
Attribute
Attribute wie Telefonnummern
, E- Mails
und Rollen
sind in SCIM mehrwertig, in Showpad jedoch einzigartig. Wenn Sie den Benutzer erstellen oder ersetzen und mehrere Werte angeben, wird der Primärwert zugeordnet und die anderen Werte verworfen. Wenn es keine Primärdaten gibt, wird der erste Wert verwendet.
Gruppen
ist ein schreibgeschütztes Attribut. Auf diese Weise können Sie sehen, zu welchen Benutzergruppen ein Benutzer gehört. Das Ändern der Mitgliedschaft eines Benutzers in einer Gruppe sollte über die Benutzergruppe-
Ressource erfolgen.
Unternehmen
in der Tabelle entspricht dem Unternehmensschema urn : ietf: params: scim: Schemas: Erweiterung: Unternehmen: 2.0:Benutzer
E-Mails [0].Wert-
und Benutzernamenattribute
müssen im System eindeutig sein. Andernfalls wird ein Eindeutigkeitsfehler
angezeigt.
E-Mails [0].Der Wert
sollte dem E-Mail-Muster folgen.
Ein neuer Benutzer wird der Gruppe "Alle Benutzer" automatisch zugewiesen. Dies ist eine Standardgruppe, die Sie dem Benutzer nicht zuweisen können. Wenn Sie den Benutzer einer anderen Gruppe zuweisen möchten, sollte diese bereits vorhanden sein oder über den Gruppenendpunkt erstellt werden.
Beim Rollenwechsel [0].Beachten
Sie, dass nur bestimmte Rollen im System unterstützt werden:
- Besitzer (siehe Hinweis)
- Admin
- Manager
- Tablet, eine Standardrolle
Hinweis: Im System ist nur 1 Eigentümer zulässig. Sie werden einen Eindeutigkeitsfehler erhalten ,
wenn Sie versuchen, einen anderen zu erstellen.
Berechtigungen
Wenn ein Benutzer die Managerrolle
hat, können Gruppen, für die er die Benutzer coachen kann, ihm zugewiesen werden. Das Zuweisen dieser Gruppen kann über den Abschnitt Berechtigungen
erfolgen, indem Folgendes verwendet wird:
"Berechtigungen": [
{
"Wert": "22b3d7f8eea74c37d3d140642ccbaeba",
"Typ": "Trainer_für_Gruppe"
}
]
Es ist möglich, einem einzelnen Manager mehrere Berechtigungen zuzuweisen. Dies ist die einzige Berechtigung, die derzeit unterstützt wird.
Abbildung
SCIM-Attribut |
Showpad-Feld |
Attributtyp |
Erforderlich | Standard |
---|---|---|---|---|
ID | id | Singular | Wahr | |
Nutzername | Nutzername | Singular | Wahr | |
Name.Vorname | Vorname | Singular | Wahr | |
Name.Familienname | Familienname, Nachname | Singular | Wahr | |
aktiv | ist aktiv | Singular | Falsch | |
Zeitzone | Zeitzone | Singular | Falsch | |
Gebietsschema | Sprache | Singular | Falsch | en |
Titel | Unternehmensrolle | Singular | Falsch | "" |
externalID | scimId | Singular | Falsch | "" |
Unternehmen.Organisation | Name der Firma | Singular | Falsch | Aktuelle Organisation |
Telefonnummern [0].Wert | Telefon | Singular | Falsch | "" |
Telefonnummern [0].Typ | -- | Singular | Falsch | "Arbeit" (schreibgeschützt) |
E-Mails [0].Wert | Singular | Wahr | ||
E-Mails [0].Typ | -- | Singular | Falsch | "Arbeit" (schreibgeschützt) |
E-Mails [0].primär | -- | Singular | Falsch | Wahr (schreibgeschützt) |
Rollen [0].Wert | Benutzertyp | Singular | Falsch | "Tablette" |
Gruppen | Benutzergruppen | Mehrwertig | Falsch | Gruppe "Alle Benutzer" |
Gruppen.Wert | usergroups.id | Singular | Falsch | Gruppen-ID "Alle Benutzer" |
Gruppen.Anzeige | usergroups.name | Singular | Falsch | "Alle Nutzer" |
Ansprüche | verwaltete Benutzergruppen | Mehrwertig | Falsch | |
Berechtigungen.Typ | -- | Singular | Falsch | |
Berechtigungen.Wert | managedUsergroups.id | Singular | Falsch |
BEITRAG / Benutzer
Dieser Befehl erstellt einen Benutzer.
POST {{url}} / Benutzer
Akzeptieren: application /JSON
Autorisierung: Inhaber {{token}}
Host: {{host}}
{
"activ": wahr
, "E-Mail": [
{
"primär": wahr
,
"Typ": "Arbeit
", "Wert": "john.doe@showpad.com "
}
]
, "locale": "en
", "name": {
"Familienname": "Doe
", "Vorname": "John
"
} ,
"Berechtigungen": [
{
"Wert": "22b3d7f8eea74c37d3d140642ccbaeba
", "Typ": "Trainer_für_Gruppe"
"
}
] ," Rollen ": [
{
" Wert ":"Manager
"
}
] ,
" Zeitzone ":" Europa / Brüssel
"," Schemata
": [" Urne: ietf: params: scim: Schemas: Kern: 2.0:Benutzer
"," Urne: ietf: params: scim: Schemas: Erweiterung: Unternehmen: 2.0:Benutzer"
]
, " Urne: ietf: Parameter: scim: Schemas: Erweiterung: Unternehmen: 2.0:Benutzer": {
" Organisation ":" John Does org "
} , " Benutzername":"john.doe@showpad.com" }
|
Get /Users/{Id} (Suche nach/ Benutzer / {Id})
Dieser Befehl gibt einen Benutzer mit der angegebenen ID zurück.
GET {{url}}/Users/{id}
Accept: application / JSON
Autorisierung: Inhaber {{token}}
- Host:{{host}}
GET {{url}} / Users? StartIndex = 11 & count = 10 &filter;=username%20eq%20%22john.doe@showpad.com% 22
Akzeptieren: application / JSON
Autorisierung: Bearer {{token}}
Host: {{host}}
Sie können durch die Ergebnisse blättern, indem Sie die Abfrageparameter startIndex und
count
query verwenden.
Zum Beispiel: / Users? StartIndex = 11 & count = 10
gibt die zweite Seite eines 10-seitigen Ergebnisses aus.
Filtern
Sie können die Benutzer nach Feldern filtern, die den Spezifikationen entsprechen. Derzeit wird nur der EQ
-Operator für den Benutzernamen
unterstützt.
Beispiel: / Users? Filter = Benutzername% 20eq% 20 "john.doe@showpad.com"
führt zu einer Liste von Benutzern mit Benutzername =john.doe@showpad.com
STELLEN / Benutzer / {id}
Dieser Befehl aktualisiert einen Benutzer.
PUT {{url}} / Benutzer / {id}
Akzeptieren: Antrag / JSON
Autorisierung: Inhaber {{token}}
Host :{{host}}
{
,,E-
Mails": [
{
"Wert": "john.doe.second@showpad.com"
}
],, ,
Name": {
,,Familienname ":,,Doe Zweiter",
,, Vorname
":,, John "
},,
Benutzername ":,,john-doe-second " }
Löschen / Benutzer / {id}
Dieser Befehl löscht einen Benutzer.
Löschen {{url}} / Benutzer / {id}
Akzeptieren: Antrag / JSON
Autorisierung: Inhaber {{token}}
Host: {{host}}
Rückgaben 204 Kein Inhalt
im Falle einer erfolgreichen Löschung.
PATCH / Benutzer / {id}
Diese Funktion wurde in der SCIM 2.0-Version von Showpad nicht implementiert.
Die Gruppe ordnet SCIM-Attribute einer Showpad-Benutzergruppe zu. Sie können Gruppen auflisten, filtern, hinzufügen, bearbeiten oder entfernen.
Die Gruppe "Alle Benutzer" ist standardmäßig vorhanden und schreibgeschützt. Sie kann nicht geändert oder entfernt werden.
Die Mitgliedschaft eines Benutzers kann geändert werden, indem sie dem Attribut " Mitglieder
" hinzugefügt oder daraus entfernt wird. Beim Hinzufügen eines
Benutzers zu einer Gruppe wird nur das Wertattribut berücksichtigt.
SCIM-Attribut |
Showpad-Feld |
Attributtyp |
Erforderlich |
Standard |
---|---|---|---|---|
ID |
id |
Singular |
Wahr |
|
Anzeigename |
Name |
Singular |
Wahr |
|
Mitglieder |
Benutzer |
Mehrwertig |
Falsch |
|
Mitglieder.Wert |
users.id |
Singular |
Falsch |
|
Mitglieder.Anzeige |
Benutzer.Benutzername |
Singular |
Falsch |
|
POST {{url}} / Gruppen
Akzeptieren: application / JSON
Autorisierung: Inhaber {{token}}
Host: {{host}}
{
"Schemas": ["urn: ietf: params: scim: schemas: core: 2.0: Gruppe"],
"Anzeigename": "SCIM Testgruppe",
"Mitglieder": [
{
"Wert": "abcdefgh123456789"
},
{
"Wert": "123456789abcdefgh"
}
]
}
GET {{url}} / Groups / {id}
Akzeptieren: application / JSON
Autorisierung: Bearer {{token}}
Host: {{host}}
GET {{url}} / Groups? StartIndex = 11 & count = 10 "
Akzeptieren: application / JSON
Autorisierung: Bearer {{token}}
Host: {{host}}
startindex
und count
query paginieren.
Beispiel: / Groups? StartIndex = 11 & count = 10
gibt die zweite Seite eines 10-seitigen Ergebnisses aus.
PUT {{url}}/Groups/{id}
Akzeptieren: application/JSON
Authorization: Bearer {{token}}
Host: {{host}}
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Gruppe"],
"Anzeigename": "SCIM-Testgruppenänderung",
"Mitglieder": [
{
"Wert": "abcdefgh123456789"
},
{
"Wert": "123456789abcdefgh"
}
]
LÖSCHEN {{url}} /Gruppen /{id}
Akzeptieren: application/JSON
Authorisierung: Bearer {{token}}
Host: {{host}}
204 Kein Inhalt
angezeigt.