Authentifizierung
Bearer Token Authentifizierung
Alle SCIM-API-Anfragen müssen ein gültiges JWT-Bearer-Token im Header enthalten:
Authorization: Bearer <ihr-jwt-token>
Hinweis: Die folgenden Discovery-Endpunkte erfordern keine Authentifizierung:
- /ResourceTypes
- /Schemas
- /ServiceProviderConfig
Token-Anforderungen
Ihr JWT muss enthalten:
-
tenant: Ihre Flip Organisations-ID -
exp: Ablaufzeitpunkt des Tokens
{
"tenant": "ihre-organisations-id",
"exp": 1234567890
}SCIM-Attribut-Zuordnungen
Kernattribute
| SCIM Attribut | Flip-Feld | Beschreibung | Erforderlich |
|---|---|---|---|
| userName | username | Anmeldename | Ja |
| name.givenName | firstName | Vorname | Ja |
| name.familyName | lastName | Nachname | Ja |
| displayName | displayName | Anzeige-Name (von Flip generiert) | Nein |
| emails[type="work"] | Berufliche E-Mail-Adresse | Nein | |
| active | status | Status: aktiv/gesperrt | Nein |
| externalId | externalId | Externe ID aus Ihrem System | Nein |
Kontakt & Abteilung
| SCIM Attribut | Flip-Feld |
|---|---|
| title | job_title |
| phoneNumbers[type="work"] | phone_number |
| phoneNumbers[type="mobile"] | mobile_number |
| enterpriseUser.department | department |
Flip SCIM-Erweiterungen
Standort-Erweiterung
"urn:ietf:params:scim:schemas:extension:flip:location:2.0:User": {
"value": "Büro Berlin"
}„Über mich“-Erweiterung
"urn:ietf:params:scim:schemas:extension:flip:aboutMe:2.0:User": {
"value": "Produktmanager mit Fokus auf mobile Erlebnisse"
}Benutzerdefinierte Attribut-Erweiterung
"urn:ietf:params:scim:schemas:extension:flip:custom:2.0:User": {
"attributes": [
{ "technicalName": "employee_id", "value": "EMP123456" },
{ "technicalName": "cost_center", "value": "CC-100" }
]
}⚠️ Hinweis: Benutzerdefinierte Attribute müssen zuvor in der Flip Admin Console angelegt werden.
Custom JSON Extension (Entra Workaround)
Schema URN: urn:ietf:params:scim:schemas:extension:flip:customJson:2.0:User
Eigenschaft: writeOnly (nicht sichtbar in GET/Read Responses)
Diese Extension erlaubt es, Custom Attributes als raw JSON (String) zu senden. Sie ist insbesondere als Workaround für Microsoft Entra gedacht, da Entra bei der initialen Provisionierung komplexe Attribute nicht zuverlässig mitsendet (Microsoft Source).
Request-Beispiel:
{
"urn:ietf:params:scim:schemas:extension:flip:customJson:2.0:User": {
"value": "{\"attributes\":[{\"technicalName\":\"employee_id\",\"value\":\"EMP123456\"},{\"technicalName\":\"cost_center\",\"value\":\"CC-100\"}]}"
}
}Merge-Verhalten:
- Die Werte aus
customJsonwerden in die bestehende Custom-Extensionurn:ietf:params:scim:schemas:extension:flip:custom:2.0:Userübernommen. - Wenn im selben Request sowohl
...:custom...:attributesals auchcustomJsongesetzt ist, hat attributes Vorrang (attributes takes precedence).
Hinweis: Da customJson writeOnly ist, wird sie nicht in Read-Responses zurückgegeben. Identity Provider können diesen Teil daher nicht über „read back + diff“ validieren.
Beispiel: SCIM-Nutzer-Request
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:flip:location:2.0:User",
"urn:ietf:params:scim:schemas:extension:flip:aboutMe:2.0:User",
"urn:ietf:params:scim:schemas:extension:flip:custom:2.0:User"
],
"userName": "john.doe@firma.com",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"displayName": "John Doe",
"emails": [
{
"value": "john.doe@firma.com",
"type": "work"
}
],
"phoneNumbers": [
{
"value": "+49 30 12345678",
"type": "work"
},
{
"value": "+49 170 9876543",
"type": "mobile"
}
],
"title": "Senior Produktmanager",
"active": true,
"externalId": "emp-12345",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"department": "Produktmanagement"
},
"urn:ietf:params:scim:schemas:extension:flip:location:2.0:User": {
"value": "HQ Berlin"
},
"urn:ietf:params:scim:schemas:extension:flip:aboutMe:2.0:User": {
"value": "Begeistert von digitalen Produkten"
},
"urn:ietf:params:scim:schemas:extension:flip:custom:2.0:User": {
"attributes": [
{
"technicalName": "employee_number",
"value": "DE-2024-001"
}
]
}
}API-Endpunkte
Service Discovery
| Endpoint | Methode | Beschreibung |
|---|---|---|
| /ServiceProviderConfig | GET | Konfiguration & Fähigkeiten |
| /Schemas | GET | Unterstützte Schemas |
| /ResourceTypes | GET | Ressourcentypen (z. B. Nutzer) |
Nutzerverwaltung
| Endpoint | Methode | Beschreibung |
|---|---|---|
| /Users | GET | Nutzer auflisten oder filtern |
| /Users | POST | Neuen Nutzer anlegen |
| /Users/{id} | GET | Details eines Nutzers |
| /Users/{id} | PUT | Komplette Aktualisierung |
| /Users/{id} | PATCH | Partielle Aktualisierung |
| /Users/{id} | DELETE | Nutzer soft-löschen |