Drupal SCIM Server API-slutpunkter
Översikt
Det här dokumentet beskriver de SCIM-slutpunkter som krävs för att möjliggöra 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 modulen kommer Drupal-webbplatsen att kunna fungera som SCIM-server. Det innebär 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-begäran till /Users med deras 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-begäran till /Users- slutpunkten och 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 görs en PATCH- eller PUT-begäran för att uppdatera användaren; annars görs en POST-begäran för att skapa användaren. Du kan uppdatera specifika fält för en användare med hjälp av en PATCH -begäran till /Users -slutpunkten. 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-begäran till /Users- slutpunkten. 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-begäran på /Users- slutpunkten 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 Created 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
Slutpunkten /Groups 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 åtgärden returnerar endast grundläggande gruppinformation, till exempel grupp-ID och visningsnamn. Medlemslistan returneras alltid som tom, eftersom slutpunkten 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
`/Groups/{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 en POST- förfrågan till /Groups för att skapa en ny grupp. Du måste ange ett gruppnamn (displayName). Även om du kan inkludera medlemmar i förfrågningstexten 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 till /Groups/{group-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]
Slutpunkten /Groups/{id} 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
Slutpunkten /Groups/{id} stöder borttagning av en grupp med hjälp av en DELETE- begäran. Den här åtgärden tar bort gruppen från SCIM-servern. En lyckad borttagning returnerar svaret 204 No Content , vilket indikerar att gruppen har tagits bort, och ingen svarstext tillhandahålls.
- 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 en skärmdump av felfönstret så hjälper vi dig att lösa problemet och vägleder dig genom installationen.
