Riferimento API SCIM

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Riferimento API SCIM

Questa pagina documenta gli endpoint SCIM 2.0 che axe Account espone per il provisioning di utenti e gruppi. Nella maggior parte dei casi, il connettore SCIM del tuo provider di identità chiama questi endpoint per te; questo riferimento è per i team che costruiscono un'integrazione personalizzata o validano il comportamento direttamente.

axe implementa lo standard SCIM 2.0 (RFC 7643 / RFC 7644). Questa pagina si concentra sul comportamento specifico di axe. Per il protocollo generico, fare riferimento alle specifiche SCIM.

URL di base e autenticazione

Tutti gli endpoint sono serviti sotto /api/scim/v2 sul tuo URL di base regionale o privato:

https://axe.deque.com/api/scim/v2

Autentica ogni richiesta con la tua chiave API SCIM:

-H "X-API-Key: <API_KEY>"
# or
-H "Authorization: <API_KEY>"

Vedi Prerequisiti e configurazione per ottenere una chiave e un URL di base.

Convenzioni

  • Tipo di contenuto: application/json
  • Risposte di errore utilizzano lo schema d’errore SCIM:
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
      "detail": "<message>",
      "status": <code>
    }
  • Paginazione (Utenti): startIndex (basato su 1) e count (1–100).
  • Filtraggio (Utenti, Gruppi): filter usando l'operatore eq, ad es. userName eq "user@example.com".

Utenti

Elenco utenti

GET /api/scim/v2/Users

Restituisce i membri della tua impresa. Supporta la paginazione e il filtraggio.

note

Quando viene fornito un filter, la ricerca non è limitata alla tua impresa: un utente corrispondente che non è un membro viene restituito con active: false. Controlla active piuttosto che trattare qualsiasi risultato come un membro. Le richieste filtrate restituiscono sempre al massimo una risorsa e ignorano count e startIndex.

Parametri di query

Parametro Tipo Descrizione
filter stringa Opzionale. ad es. userName eq "user@example.com" o externalId eq "<id>".
startIndex intero Opzionale. Indice 1-based del primo risultato. Predefinito 1.
count intero Opzionale. Risultati per pagina, 1100.

Esempio

curl -H "X-API-Key: $KEY" \
  "https://axe.deque.com/api/scim/v2/Users?count=10&startIndex=1"

Risposta 200 OK

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
  "totalResults": 42,
  "itemsPerPage": 10,
  "startIndex": 1,
  "Resources": [
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
      "id": "5f3e...c2",
      "userName": "user@example.com",
      "active": true,
      "name": { "givenName": "Alex", "familyName": "Doe" },
      "emails": [
        { "primary": true, "value": "user@example.com", "type": "work", "display": "user@example.com" }
      ],
      "groups": [
        { "value": "grp-1", "display": "Axe Monitor", "$ref": "/Groups/grp-1" }
      ],
      "meta": { "resourceType": "User", "location": "/Users/5f3e...c2" }
    }
  ]
}

Errori

Stato detail
400 Count must be between 1-100

Ottieni un utente

GET /api/scim/v2/Users/{id}

Restituisce un singolo utente tramite il loro ID utente axe. active riflette l'appartenenza all'impresa.

Risposta 200 OK — una risorsa Utente (vedi sopra).

Errori

Stato detail
404 User not found

Crea un utente

POST /api/scim/v2/Users

Configura un utente: crea l'account axe, lo aggiunge alla tua impresa e invia un'email di invito. Un valore groups nel corpo è ignorato — assegna l'accesso ai prodotti separatamente tramite PATCH /Gruppi.

Corpo della richiesta

Campo Obbligatorio Descrizione
schemas Deve includere urn:ietf:params:scim:schemas:core:2.0:User.
userName L'email dell'utente.
name.givenName Nome.
name.familyName Cognome.
emails Array con esattamente un elemento primary: true.
active true aggiunge l'utente all'azienda.
externalId L'identificatore unico della tua directory (consigliato).

Esempio

curl -X POST -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName": "user@example.com",
    "name": { "givenName": "Alex", "familyName": "Doe" },
    "emails": [{ "type": "work", "value": "user@example.com", "primary": true }],
    "active": true
  }' \
  "https://axe.deque.com/api/scim/v2/Users"

Risposta 201 Created — la risorsa Utente creata.

Errori

Stato detail
400 Validation errors: Exactly one primary e-mail is required at 'emails'. (busta errore generica, non lo schema di errore SCIM)
400 A primary email is required but was not found in the emails array
400 User email domain does not match enterprise root group
400 Enterprise does not have an identity provider configured
409 User is already a member of an enterprise

Sostituisci un utente

PUT /api/scim/v2/Users/{id}

Aggiorna il nome e l'email di un utente.

Corpo della richiesta

Campo Obbligatorio Descrizione
schemas Deve includere urn:ietf:params:scim:schemas:core:2.0:User.
id L'ID utente axe dell'utente (UUID). Deve corrispondere a {id} nel percorso.
name.givenName Nome.
name.familyName Cognome.
emails Array contenente le email dell'utente. Esattamente un elemento deve avere primary: true.
name.middleName Secondo nome.
meta Accettato e ignorato; il server assegna meta.

Risposta 200 OK — la risorsa Utente aggiornata.

Errori

Stato detail
404 User not found
403 User is a member of multiple enterprises
403 User is not a member of this enterprise
400 No primary email found in the provided emails array
409 A user with this email already exists

Attivare o disattivare un utente

PATCH /api/scim/v2/Users/{id}

Imposta l'iscrizione aziendale. active: true aggiunge l'utente all'azienda; active: false lo disattiva (rimuove l'iscrizione; l'account è conservato).

Corpo della richiesta

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    { "op": "replace", "value": { "active": false } }
  ]
}

Risposta 204 No Content

Errori

Stato detail
404 User not found
400 Cannot remove the last admin from the enterprise

Disattivare un utente

DELETE /api/scim/v2/Users/{id}

Rimuove l'utente dalla tua azienda (rimozione soft — l'account è conservato).

Risposta 204 No Content

Errori

Stato detail
404 User not found
400 Cannot remove the last admin from the enterprise

Gruppi

I gruppi sono o abbonamenti ai prodotti (assegna un posto prodotto) o squadre (organizza utenti). Vedi Come SCIM funzioni con l'account axe.

Elenca gruppi

GET /api/scim/v2/Groups

Restituisce tutti gli abbonamenti ai prodotti e le squadre per la tua azienda. Questo endpoint non è paginato.

Parametri di query

Parametro Tipo Descrizione
filter stringa Opzionale. displayName eq "<name>". Corrisponde esattamente e Sensibile al maiuscolo/minuscolo ai nomi delle squadre e dei prodotti — diversamente dal filtro userName su /Users, che non distingue tra maiuscole e minuscole.

Risposta 200 OK

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
  "totalResults": 5,
  "startIndex": 1,
  "itemsPerPage": 5,
  "Resources": [
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
      "id": "grp-1",
      "displayName": "Axe Monitor",
      "members": [
        { "value": "5f3e...c2", "display": "user@example.com", "$ref": "/Users/5f3e...c2" }
      ]
    }
  ]
}

Ottieni un gruppo

GET /api/scim/v2/Groups/{id}

Risposta 200 OK — una risorsa Gruppo.

Errori

Stato detail
404 Group not found

Crea un gruppo

POST /api/scim/v2/Groups

Crea una squadra. Se displayName corrisponde esattamente al nome di un prodotto per cui la tua azienda ha un abbonamento attivo, non viene creata alcuna squadra — viene invece restituito il gruppo di abbonamenti ai prodotti esistente (201, con i suoi id e Location), e qualsiasi members nel corpo della richiesta viene ignorato. Gestisci l'iscrizione di quel gruppo tramite PATCH /Groups/{id}.

Il confronto è sensibile e preciso. Se il nome corrisponde a un prodotto il cui abbonamento è non attivo, viene creata invece una squadra regolare con quel nome — non concederà posti prodotto.

Corpo della richiesta

Campo Richiesto Descrizione
schemas Deve includere urn:ietf:params:scim:schemas:core:2.0:Group.
displayName Nome del team (non vuoto, ≤128 caratteri).
members Array opzionale (≤1000).

Risposta 201 Created — la risorsa del Gruppo creato, con un'intestazione Location.

Errori

Stato detail
400 The group was not created because some users are not members of the enterprise. User IDs: ...
409 A group with this displayName already exists

Aggiorna l'affiliazione al gruppo

PATCH /api/scim/v2/Groups/{id}

Aggiunge o rimuove membri. Per gruppo di iscrizione, concede o revoca un posto per il prodotto. Per gruppo del team, modifica l'affiliazione al team.

Corpo della richiesta

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    { "op": "add", "path": "members", "value": [ { "value": "5f3e...c2" } ] }
  ]
}

Usa op: "remove" con path per rimuovere membri. Un replace con un array vuoto rimuove tutti i membri.

Risposta 204 No Content

Errori

Stato detail
404 Group not found
404 Product not found
402 Enterprise subscription out of seats
400 Some users were not added to the group because they are not members of the enterprise. User IDs: ...
400 Path is required for remove operations

Elimina un gruppo

DELETE /api/scim/v2/Groups/{id}

Elimina un team. Le richieste di eliminazione su un gruppo di iscrizione al prodotto sono ignorate (ritorna 204).

Risposta 204 No Content

Errori

Stato detail
404 Group not found

Aggiorna un gruppo (non supportato)

PUT /api/scim/v2/Groups/{id}

Non supportato. Ritorna 405 Method not allowed. Usa PATCH per modificare l'affiliazione.


Endpoint di scoperta

Supportano la configurazione automatica dei connettori. Tutti ritornano 200 OK.

Endpoint Restituisce
GET /api/scim/v2/ServiceProviderConfig Capacità supportate (patch, filtraggio con massimo 100 risultati; bulk e sort non supportati).
GET /api/scim/v2/Schemas Definizioni di schema per Utente e Gruppo.
GET /api/scim/v2/Schemas/{id} Un singolo schema per URN. 404 "Schema not found" se sconosciuto.
GET /api/scim/v2/ResourceTypes Tipi di risorse per Utente e Gruppo.
GET /api/scim/v2/ResourceTypes/{id} Un singolo tipo di risorsa. 404 "Resource type not found" se sconosciuto.

Correlato