Drupal SCIM Server API-slutpunkter
Översikt
Det här dokumentet beskriver de SCIM-slutpunkter som krävs för att aktivera användarprovisionering och avprovisionering av SCIM. SCIM är ett branschstandardprotokoll som låter dig automatisera användaråtgärder för CRUD. Med hjälp av modul, kommer Drupal-webbplatsen att kunna fungera som SCIM-server. Det betyder att alla ändringar som görs på identitetsleverantören (dvs. SCIM-klienten) kommer att synkroniseras med Drupal-webbplatsen.
SCIM-översikt
- Protokollversion: SCIM 2.0
- Basväg: base_url/scim
- Resurser som stöds: Användare, grupper
- Dataformat: JSON
Autentisering och rubriker
- Tillstånd: Bärartoken
- Innehållstyp: ansökan / json
- Acceptera: ansökan / json
API-åtgärder som stöds
Följande API-operationer stöds
Användarslutpunkter
- Avaktivera användare
- Hämta användare
- Listanvändare
- Användaruppdatering (PATCH)
- Uppdatera användare (PUT)
- Skapa användare (POST)
Gruppens slutpunkter
- Lista grupper
- Hämta grupp efter ID
- Skapa en Grupp
- Uppdatera grupp [Attribut för icke-medlemmar]
- Uppdatera grupp [Medlemmar]
- Ta bort grupp
Användarslutpunkter
1. Inaktivera användare (PATCH)
- fel:
- Exempelbegäran:
- Exempelsvar - 204 Inget innehåll.
För att inaktivera eller ta bort en användare i Drupal måste du aktivera nödvändiga inställningar i modulen. Dessa alternativ finns tillgängliga på modulens konfigurationssida.
PATCH /Användare/{användar-id}| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| ResursickehittadException | Den angivna användaren finns inte. | 404 |
PATCH /Användare/{användar-id} HTTP/1.1 Innehållstyp: application/json Auktorisering: Bearer { "Operationer": [ { "op": "Ersätt", "sökväg": "aktiv", "värde": falskt } ] }
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Användare"], "id": "4", "användarnamn": "användarnamn", "aktiv": , "e-postmeddelanden": [{ "primär": sant, "värde": "exempel@exempel.com", "typ": "arbete", "display": "exempel@exempel.com" }], "meta": { "resurstyp": "Användare" } }
2. Sök användaren efter dess ID
- fel:
- Exempelbegäran:
- Exempel på svar:
- 404 Hittades inte.
- 200 Ok funnen.
För att hämta en befintlig användare, gör en GET-förfrågan till / Users med hjälp av sitt användar-ID.
GET /Användare/{användar-id}| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| ResursickehittadException | Den angivna användaren finns inte. | 404 |
GET /Användare/{användar-id} HTTP/1.1 Auktorisering: Bärare { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Användaren hittades inte", "status": 404 }
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Användare" ], "id": "4", "användarnamn": "användarnamn", "aktiv": 1, "e-postmeddelanden": [ { "primär": sant, "värde": "exempel@exempel.com", "typ": "arbete", "display": "exempel@exempel.com" } ], "meta": { "resurstyp": "Användare" } }
3. Listanvändare
- fel:
- Frågeparametrar:
- Exempelbegäran:
- Exempel på svar:
- Exempelbegäran:
- Exempel på svar:
- Om användaren inte hittas med användarnamnet skickar vi ett tomt schema som indikerar att ingen användare hittades.
- Exempelbegäran:
- Exempel på svar:
- Om användaren presenterar e-postadressen.
- Om användaren inte hittas via e-postmeddelandet skickar modulen ett tomt schema som indikerar att användaren inte hittades.
Den här slutpunkten låter dig filtrera och hämta specifika användare från den befintliga användarlistan. Genom att göra en GET-förfrågan till / Users Genom att lägga till filterparametrar kan du begränsa resultaten baserat på attribut som användarnamn och e-postadress. Slutpunkten stöder filtrerade sökningar men kan returnera maximalt 50 användarposter per begäran.
| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| ResursickehittadException | Den angivna användaren finns inte. | 404 |
GET /Användare
3.1 Startindex och antal
Den tillåter startIndex och count som frågeparametrar. Där startIndex är start-ID:t och count är det maximala antalet resultat som frågan kan returnera.
GET /Användare?startIndex=1&count=50 Auktorisering: Bärare
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "startIndex": 1, "itemsPerPage": 2, "Resurser": [ { "id": "1", "externalId": "1", "meta": { "resourceType": "Användare" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Användare" ], "användarnamn": "example1@example.com", "displayName": "example1@example.com", "emails": { "value": "example1@example.com", "type": "work", "primary": true }, "active": true, "name": { "familjenamn": "", "givetName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, { "id": "13", "externtId": "13", "meta": { "resurstyp": "Användare" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Användare" ], "användarnamn": "exempel2", "displaynamn": "exempel2", "e-postmeddelanden": { "värde": "exempel2@exempel.com", "typ": "arbete", "primär": sant }, "aktiv": sant, "namn": { "familjenamn": "", "givetnamn": "" }, "grupper": [ "autentiserad,administratör" ], "avdelning": "" }, ] }
3.2 Sök efter en användare med hjälp av deras användarnamn
GET /Användare?filter=användarnamn ekv. "admin"
Användaren hittades inte - 200 Ok.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resurser": [] }
Användare funnen - 200 Ok.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resurser": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "användarens uid", "användarnamn": "admin", "e-postmeddelanden": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
3.3 Sök efter användaren via deras e-postadress
GET /Användare?filter=e-postmeddelanden[typ eq "arbete"].värde eq "e-post@gmail.com" Auktorisering: Bärare
Användare funnen - 200 Ok.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resurser": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "användarens uid", "username": "Användarnamn", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
Användaren hittades inte - 200 Ok.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resurser": [] }
4. Användaruppdatering (PATCH)
Om användaren hittas i GET-begäran kommer en PATCH- eller PUT-begäran att göras för att uppdatera användaren; annars kommer en POST-begäran att göras för att skapa användaren. Du kan uppdatera specifika fält för en användare med hjälp av en LAPPA begäran till / Users slutpunkt. I begäran, inkludera det attribut du vill ändra och dess uppdaterade värde.
PATCH /Användare/{användar-id}- fel:
- Exempelbegäran:
- Exempelsvar: 200 OK.
| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| ResursickehittadException | Den angivna användaren finns inte. | 404 |
PATCH/Användare/{{användar-id}} HTTP/1.1 Innehållstyp: application/json Auktorisering: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "Ersätt", "path": "emails[type eq \"work\"].value", "value": "email@gmail.com" }, { "op": "Ersätt", "path": "namn.familjenamn", "value": "familjenamn" } ] }
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Användare" ], "id": "användarens uid", "användarnamn": "Användarnamn", "aktiv": 1, "e-postmeddelanden": [ { "primär": sant, "värde": "e-post@gmail.com", "typ": "arbete", "display": "e-post@gmail.com" } ], "meta": { "resurstyp": "Användare" } }
5. Uppdatera användare (PUT)
Du kan uppdatera en användare med en PUT-förfrågan till / Users slutpunkt. Denna begäran ersätter hela användarobjektet, så alla obligatoriska användarattribut måste anges i brödtexten.
PUT /Användare/{{användar-id}}- fel:
- Exempelbegäran:
- Exempelsvar: 200 ok.
| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| ResursickehittadException | Den angivna användaren finns inte. | 404 |
PUT/Användare/{{användar-id}} HTTP/1.1 Innehållstyp: application/json Auktorisering: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "användarnamn": "exmple", "active": 1, "e-postmeddelanden": [ { "primary": true, "value": "exmple@example.com", "type": "work", "display": "exmple@example.com" } ], "meta": { "resourceType": "Användare" }, "name": { "givenName": "givenName", "familjenamn": "familjenamn", "middleName": "sdf", "honorificPrefix": "sdf" }, "displayName": "givenName familjenamn", "smickName": "df", "addresses": [ { "primary": true, "locality": "fdd" } ], "locale": "sv-US", "externalId": "9rqltOOLI95d7", "groups": [] }
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Användare" ], "id": "97", "användarnamn": "exempel", "aktiv": 1, "e-postmeddelanden": [ { "primär": sant, "värde": "exempel@exempel.com", "typ": "arbete", "display": "exempel@exempel.com" } ], "meta": { "resurstyp": "Användare" } }
6. Skapa användare (POST)
Använd en POST-förfrågan på / Users slutpunkt för att skapa en ny användare. Se till att inkludera alla nödvändiga fält i begäran. En lyckad begäran returnerar 201 Skapad och användarinformationen.
POST /Användare
- fel:
- Exempelbegäran:
- Exempelsvar: 201 skapad.
| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| KonfliktUndantag | Användaren finns redan. | 409 |
POST /Användare HTTP/1.1 Acceptera: application/json Innehållstyp: application/json Auktorisering: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"], "externalId": "abc", "användarnamn": "exempel", "aktiv": sant, "e-postmeddelanden": [{ "primär": sant, "typ": "arbete", "värde": "exempel@exempel.com" }], "meta": { "resurstyp": "Användare" }, "namn": { "formatted": "förnamn efternamn", "familjenamn": "efternamn", "givetnamn": "förnamn" } }
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "externalId": "abc", "användarnamn": "exempel", "aktiv": sant, "e-postmeddelanden": [ { "primär": sant, "typ": "arbete", "värde": "exempel@exempel.com" } ], "meta": { "resurstyp": "Användare" }, "namn": { "formatted": "förnamn efternamn", "familjenamn": "efternamn", "givetnamn": "förnamn" }, "id": "98" }
Gruppens slutpunkter
1. Lista grupper
Ocuco-landskapet /Grupper Endpoint stöder GET-förfrågningar för att hämta en lista över grupper som är tillgängliga på SCIM-servern. Den här operationen returnerar endast grundläggande gruppinformation, såsom grupp-ID och visningsnamn. Medlemslistan returneras alltid som tom, eftersom endpoint inte inkluderar gruppmedlemskapsinformation i svaret.
- Exempelbegäran:
- Exempelsvar - 200 ok
- Filter som stöds:
- Exempelbegäran:
- Exempelsvar: 200 ok.
GET /Groups HTTP/1.1 Auktorisering: Bearer
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 4, "Resurser": [ { "id": "anonym", "meta": { "resourceType": "Grupp" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "displayName": "anonym" }, { "id": "authenticated", "meta": { "resourceType": "Grupp" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "displayName": "authenticated" }, { "id": "administratör", "meta": { "resourceType": "Grupp" }, "schemas": [ ] "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "displayName": "administratör" }, { "id": "editor_admin", "meta": { "resurstyp": "Grupp" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "displayName": "editor_admin" } ], "startindex": 1, "objektPerSida": 4 }
GET /Groups?filter=displayName ekv "administratör"
GET /scim/Groups?filter=displayName eq "administratör" HTTP/1.1 Auktorisering: Bärare
Om en grupp hittas med visningsnamnet.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "Resurser": [], "startIndex": 1, "objektPerSida": 20 }
2. Sök grupp efter ID
/Grupper/{id} hämtar gruppresursen som är associerad med det angivna grupp-ID:t. Endast gruppens metadata returneras i svaret. Medlemskapsuppgifter ingår inte.
- Exempelbegäran:
- Exempel på svar:
GET /Groups/administrator HTTP/1.1 Auktorisering: Bearer
Funnet - 200 OK.
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "id": "administratör", "meta": { "resurstyp": "Grupp" }, "displaynamn": "Administratör" }
Inte hittad - 404.
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Gruppadministratör hittades inte", "status": 404 }
3. Skapa en grupp
Använd POST begära att /Grupper för att skapa en ny grupp. Du måste ange ett gruppnamn (displayName). Även om du kan inkludera medlemmar i begäran, kommer svaret alltid att returnera en tom lista över medlemmar.
- fel:
- Exempelbegäran:
- Begäran utan medlemslista inkluderad.
- Begäran med medlemslista.
- Svar: 201 Skapad.
| Fel | Skick | HTTP-statuskod |
|---|---|---|
| Valideringsundantag | Antingen är modulen inte aktiverad, eller så används fel licensierad nyckel | 400 |
| Obehörigt undantag | Auktoriseringsrubriken är ogiltig eller saknas. | 401 |
| OperationNotStödsException | Gruppändring är inte tillåten | 501 |
POST /Groups HTTP/1.1 Auktorisering: Bearer { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Grupp"], "externtId": "internt-id", "displayName": "grupp2", "meta": { "resurstyp": "Grupp" } }
POST /Grupper HTTP/1.1 Innehållstyp: application/json Auktorisering: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "displayName": "grupp1", "medlemmar": [ { "värde": "3", "display": "admin@gmail.com" }, { "värde": "2", "display": "admin2@gmail.com" } ] }
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Grupp" ], "externtId": "internt-id", "displayName": "grupp2", "meta": { "resurstyp": "Grupp" }, "medlemmar": [], "id": "grupp2" }
4. Uppdatera grupp [Attribut för icke-medlemmar]
Du kan uppdatera en grupps grundläggande uppgifter, som visningsnamnet, med hjälp av en PATCH-förfrågan för att /Grupper/{grupp-id}Denna begäran uppdaterar endast de attribut du anger och ändrar inte gruppens medlemmar. En lyckad uppdatering returnerar 204 Inget innehåll.
- Exempelbegäran:
- Exempelsvar - 204 Inget innehåll.
PATCH /Grupper/grupp1 HTTP/1.1 Auktorisering: Bärare{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operationer": [{ "op": "Ersätt", "path": "displayName", "value": "uppdaterad grupp1" }] }
5. Uppdatera grupp [Medlemmar]
Ocuco-landskapet /Grupper/{id} Endpoint stöder tillägg och borttagning av medlemmar via en PATCH-begäran. Begäran måste innehålla listan över användar-ID:n som du vill lägga till. Den här åtgärden uppdaterar endast gruppens medlemmar och returnerar 204 Inget innehåll när det lyckas.
- Exempelbegäran:
- Lägg till en medlem i gruppen.
- Ta bort medlemmen från gruppen.
- Exempelsvar - 204 Inget innehåll.
PATCH /Grupper/uppdaterad grupp1 HTTP/1.1 Innehållstyp: application/json Auktorisering: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operationer": [{ "op": "Lägg till", "sökväg": "medlemmar", "värde": [{ "$ref": null, "värde": "97" }] }] }
PATCH /Grupper/uppdaterad grupp1 HTTP/1.1 Auktorisering: Bärare { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operationer": [{ "op": "Ta bort", "path": "medlemmar", "value": [{ "$ref": null, "value": "97" }] }] }
6. Ta bort grupp
Ocuco-landskapet /Grupper/{id} slutpunkten stöder borttagning av en grupp med hjälp av en RADERA begäran. Den här åtgärden tar bort gruppen från SCIM-servern. En lyckad borttagning returnerar en 204 Inget innehåll svar, som anger att gruppen har tagits bort, och ingen svarstext anges.
- Exempelbegäran:
- Exempelsvar - 204 Inget innehåll.
TA BORT /Grupper/uppdaterad grupp1 HTTP/1.1 Auktorisering: Bärare
Om konfigurationen inte lyckades, vänligen kontakta oss på drupalsupport@xecurify.com. Skicka skärmdumpen av felfönstret så hjälper vi dig att lösa problemet och vägleda dig genom installationen.
