Ik ben een Zivver-beheerder
Zivver instellen en beheren
Accounts synchroniseren met Zivver via SCIM 2.0
Introductie
Dit artikel legt uit hoe je direct kunt communiceren met het Zivver SCIM V2 API-eindpunt. Je kunt deze informatie gebruiken als je organisatie Zivver-accounts automatisch wil beheren door een eigen SCIM-koppeling te bouwen.
Accountmanagement in Zivver
Zivver-accounts kun je handmatig beheren via het Zivver-beheerportaal, of automatisch via de Zivver System for Cross-domain Identity Management (SCIM) API. Zivver volgt de SCIM 2.0-specificaties. Voor organisaties met meer dan 100 medewerkers adviseert Zivver om het accountbeheer te automatiseren. Zivver raadt hiervoor de Zivver Synctool aan.
Zivver maakt onderscheid tussen normale accounts en functionele accounts. Elk accounttype wordt op een andere manier beheerd, en beide typen worden in deze handleiding uitgelegd.
| Accounttype | Beschrijving |
|---|---|
| Normaal | Persoonlijk account waarop een gebruiker kan inloggen. |
| Functioneel | Gedeeld account waarop je niet rechtstreeks kunt inloggen. Met Gedelegeerde toegang kan een gebruiker Zivver-berichten versturen en ontvangen vanuit een functioneel account. |
Verbinding maken met het Zivver SCIM v2-eindpunt
| Verbinding | |
|---|---|
| URL | https://app.zivver.com/api/scim/v2/ |
| Port | 443 |
De verbinding wordt geauthenticeerd met een Bearer Token. Een Zivver-beheerder kan hiervoor een API-sleutel aanmaken in het Zivver-beheerportaal. Een SCIM-client moet de in Zivver gegenereerde API-sleutel als token meesturen in de Authorization-header, zoals beschreven in RFC6750 sectie 2.1:
Clients SHOULD make authenticated requests with a bearer token using the “Authorization” request header field with the “Bearer” HTTP authorization scheme.
Voorbeeld:
Authorization: Bearer {base64-gecodeerde Zivver API-sleutel}
De HTTP-specificaties vereisen dat de client het bearer token in base64 codeert. Bestaande tools of libraries doen dit meestal automatisch.
Ondersteunde SCIM-bewerkingen
De volgende SCIM-bewerkingen worden ondersteund door het Zivver SCIM v2-eindpunt:
- Create: POST
https://app.zivver.com/api/scim/v2/{resource} - Read: GET
https://app.zivver.com/api/scim/v2/{resource}/{id} - Replace: PUT
https://app.zivver.com/api/scim/v2/{resource}/{id} - Delete: DELETE
https://app.zivver.com/api/scim/v2/{resource}/{id} - Update: PATCH
https://app.zivver.com/api/scim/v2/{resource}/{id} - Search: GET
https://app.zivver.com/api/scim/v2/{resource}
Het verwijderen van Zivver-accounts is onomkeerbaar. Verwijderde gegevens kunnen niet worden teruggezet. Zivver adviseert om de waarde van het attribuut
active op false te zetten (suspend) in plaats van het account te verwijderen.De ondersteuning voor deze bewerking is beperkt tot Microsoft Entra ID. Voor andere clients wordt geadviseerd om in plaats daarvan de PUT-bewerking te gebruiken.
Zivver-gebruikersaccounts beheren
Je kunt inloggen op een Zivver-gebruikersaccount met een Zivver-wachtwoord of via Single Sign-On (SSO). Zivver gebruikt het SCIM-resourcetype Users om gebruikersaccounts te beheren, gebaseerd op het volgende schema:
urn:ietf:params:scim:schemas:core:2.0:User
Het user-object moet common attributes en singular attributes bevatten. Daarnaast gebruikt Zivver multi-value attributes, de enterprise user schema extension en een custom extension schema.
Gemeenschappelijke user-objectattributen
De volgende gemeenschappelijke user-objectattributen worden door Zivver geleverd en kunnen niet worden aangepast.
id: unieke identifier die door Zivver wordt verstrekt
De id wordt door Zivver verstrekt en kan niet worden aangepast. De{id}wordt gebruikt voor SCIM-bewerkingen.meta.resourceType: user
meta.created: aanmaakdatum van het account
De aanmaakdatum wordt door Zivver verstrekt en kan niet worden aangepast.meta.location:
/scim/v2/Users/{id}
Enkelvoudige user-objectattributen
Zivver gebruikt de volgende verplichte en optionele enkelvoudige attributen.
userName: primair e-mailadres (verplicht)
Zivver identificeert een account aan de hand van het primaire e-mailadres.name.formatted: weergavenaam (verplicht)
Zivver gebruikt deze naam om ontvangers te tonen wie een bericht heeft verzonden. Vul dit veld bij voorkeur met een voornaam en achternaam.nickName: bijnaam (optioneel)
Zivver gebruikt deze waarde in de aanhef van notificatieberichten.active: of het account actief of geschorst is (verplicht)
Zivver gebruikt dit attribuut om accounts te schorsen. Schors een account wanneer een medewerker uit dienst gaat. Een geschorste gebruiker wordt opnieuw geactiveerd wanneer de waardetrueis.
Multi-value user-objectattributen
RFC-7643: Multi-value attributes
Zivver gebruikt de volgende optionele multi-value attributen.
- phoneNumbers: het eerste telefoonnummer in de lijst wordt gebruikt voor 2FA (optioneel)
Zorg ervoor dat dit nummer sms-berichten kan ontvangen.
Enterprise User Schema Extension
RFC-7643: Enterprise user schema extension
Zivver gebruikt het volgende extra attribuut wanneer je organisatie met Organisatie-Eenheden werkt.
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
- division: de Organisatie-Eenheid waartoe het account behoort (optioneel)
Zivver gebruikt dit attribuut om het account aan de juiste Organisatie-Eenheid te koppelen.
Als dit zo is, heb je toegang tot de pagina Organisatie-Eenheden. Heb je geen toegang, dan gebruikt je organisatie deze functie niet of heb je geen beheerdersrechten.
Zivver’s Custom Extension Schema
RFC-7643: Custom schema extension
Zivver breidt de bovenstaande attributen uit met het volgende schema:
urn:ietf:params:scim:schemas:zivver:0.1:User
Dit schema bevat de volgende attributen:
password: Zivver-wachtwoord wanneer SSO niet wordt gebruikt (verplicht tenzij SSO wordt gebruikt)
Dit wachtwoord wordt gebruikt om de encryptiesleutels te genereren. Het wachtwoord is alleen nodig voor de eerste login; daarna maakt de gebruiker een eigen wachtwoord.SsoAccountKey: ZivverAccountKey wanneer SSO wordt gebruikt (verplicht bij SSO)
Dit attribuut wordt gebruikt om de encryptiesleutels te genereren.Info
Belangrijke informatie over de ZivverAccountKey
Deze waarde moet lang, uniek en random zijn. Bij voorkeur genereert je organisatie deze sleutel zelf. Als alternatief kanobjectGUIDworden gebruikt, maar dit vormt een beveiligingsrisico omdat deze waarde vaak in meerdere systemen wordt hergebruikt. Gebruik geenobjectSIDof vergelijkbare AD-attributen omdat deze voorspelbaar zijn.aliases: lijst met e-mailaliassen (optioneel)
De gebruiker kan Zivver-berichten ontvangen op deze aliassen.delegates: lijst met e-mailadressen die volledige toegang hebben (optioneel)
Gebruikers kunnen berichten lezen en verzenden namens andere accounts.Info
Belangrijke informatie over delegates
delegates is een lijst van e-mailadressen, niet van user-{id}ʼs.
Voorbeeld van minimale user-representatie
Het volgende is een niet-normatief voorbeeld van de minimale vereiste SCIM-representatie in JSON-formaat.
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:zivver:0.1:User"],
"meta": {
"resourceType": "User",
"created": "2010-01-23T04:56:22Z",
"location": "/scim/v2/Users/2819c223-7f76-453a-919d-413861904646"
}
"active":true,
"id": "2819c223-7f76-453a-919d-413861904646",
"name": {
"formatted": "Barbara Jensen"
},
"urn:ietf:params:scim:schemas:zivver:0.1:User": {
"SsoAccountKey": "48452ce3-9346-4ef0-9528-19btf6d4e545"
}
"userName": "bjensen@example.com",
}
Voorbeeld van volledige user-representatie
Het volgende is een niet-normatief voorbeeld van een volledig ingevulde SCIM-userrepresentatie in JSON-formaat.
{
"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:zivver:0.1:User"],
"meta": {
"resourceType": "User",
"created": "2010-01-23T04:56:22Z",
"location": "/scim/v2/Users/2819c223-7f76-453a-919d-413861904646"
}
"active":true,
"id": "2819c223-7f76-453a-919d-413861904646",
"name": {
"formatted": "Barbara Jensen"
},
"nickName": "Babs Jensen",
"phoneNumbers": [
{
"value":"555-555-5555"
}
],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"division": "Development"
},
"urn:ietf:params:scim:schemas:zivver:0.1:User": {
"SsoAccountKey": "48452ce3-9346-4ef0-9528-19btf6d4e545",
"aliases": ["barbarajensen@example.com", "barbara.jensen@example.com"],
"delegates": ["jdoe@example.com", "hpeterson@example.com"]
}
"userName": "bjensen@example.com"
}
Functionele Zivver-accounts beheren
Functionele Zivver-accounts zijn gedeelde accounts. Als je Zivver-gebruikersaccount gedelegeerde toegang heeft tot een functioneel account, word je automatisch ingelogd op dat functionele account. In Zivver wordt het SCIM-resourcetype Groups gebruikt, gebaseerd op het volgende schema:
urn:ietf:params:scim:schemas:core:2.0:Group
Het group-object moet een common attribute, een singular attribute en een multi-value attribute bevatten. Daarnaast gebruikt Zivver de enterprise user schema extension en een custom extension schema.
Gemeenschappelijke group-objectattributen
De volgende gemeenschappelijke attributen worden door Zivver geleverd en kunnen niet worden aangepast.
- externalId: primair e-mailadres (verplicht)
Zivver identificeert een groepsaccount aan de hand van het primaire e-mailadres. Omdat Groups niet altijd eenuserNamehebben, moetexternalIdhet primaire e-mailadres van het gedeelde account bevatten. Dit verschilt van het User-object, waarin het primaire e-mailadres inuserNamestaat.
Zivver levert de volgende extra gemeenschappelijke attributen, dus het is niet nodig deze aan te maken.
id: unieke identifier (geleverd)
Deidwordt door Zivver verstrekt en kan niet worden aangepast. Wordt gebruikt voor SCIM-bewerkingen.meta.resourceType: Group (geleverd)
meta.created: aanmaakdatum account (geleverd)
De aanmaakdatum wordt door Zivver verstrekt en kan niet worden aangepast.meta.location:
/scim/v2/Groups/{id}(geleverd)
Enkelvoudige group-objectattributen
Verplicht attribuut voor group-objecten:
- displayName: weergavenaam voor eindgebruikers (verplicht)
Zivver gebruikt deze naam om aan eindgebruikers te tonen hoe het account heet.
Multi-value group-objectattributen
RFC-7643: Multi-value attributes
Verplicht attribuut voor group-objecten:
- members: gebruikers met volledige toegang tot het account (verplicht)
Bevat een lijst van Zivver user{id}-waarden die toegang hebben. Deze accounts kunnen berichten verzenden en ontvangen namens het functionele account.Info
Belangrijke informatie over members
Gebruik de unieke{id}van gebruikers, niet e-mailadressen. Zie Voorbeeld volledige group-representatie.
Enterprise User Schema Extension
RFC-7643: Enterprise user schema extension
Gebruik dit attribuut alleen als je organisatie met Organisatie-Eenheden werkt.
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
- division: Organisatie-Eenheid van het functionele account (optioneel)
Zivver gebruikt dit attribuut om het account aan de juiste Organisatie-Eenheid te koppelen.
Als dit zo is, heb je toegang tot de pagina Organisatie-Eenheden. Heb je geen toegang, dan gebruikt je organisatie deze functie niet of heb je geen beheerdersrechten.
Zivver’s Custom Extension Schema
RFC-7643: Custom schema extension
urn:ietf:params:scim:schemas:zivver:0.1:Group
- aliases: lijst met e-mailaliassen (optioneel)
Gebruikers van het functionele account kunnen berichten ontvangen op deze aliassen.
Voorbeeld minimale group-representatie
Het volgende is een niet-normatief voorbeeld van de minimale SCIM Group-representatie in JSON-formaat.
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"meta": {
"resourceType": "Group",
"created": "2010-01-23T04:56:22Z",
"location": "/scim/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
}
"displayName": "Department A",
"externalId": "department@example.com",
"id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"members": [
{
"value": "2819c223-7f76-453a-919d-413861904646"
}
{
"value": "5737d357-5a46-267n-111e-6783178326"
}
]
}
Voorbeeld van volledige group-representatie
Het volgende is een niet-normatief voorbeeld van een volledig ingevulde SCIM Group-representatie in JSON-formaat.
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:ietf:params:scim:schemas:zivver:0.1:Group"],
"meta": {
"resourceType": "Group",
"created": "2010-01-23T04:56:22Z",
"location": "/scim/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
}
"displayName": "Department A",
"externalId": "department@example.com",
"id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"members": [
{
"value": "2819c223-7f76-453a-919d-413861904646"
}
{
"value": "5737d357-5a46-267n-111e-6783178326"
}
],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"division": "Development"
},
"urn:ietf:params:scim:schemas:zivver:0.1:Group": {
"aliases": ["development@example.com"]
}
}