Результаты поиска :

×

Конечные точки API сервера Drupal SCIM

В этом документе описываются конечные точки SCIM, необходимые для включения функций создания и удаления учетных записей пользователей. SCIM — это стандартный протокол, позволяющий автоматизировать операции CRUD (создание, удаление, обновление) для пользователей. Используя... модульТаким образом, сайт Drupal сможет выступать в качестве SCIM-сервера. Это означает, что любые изменения, внесенные в поставщик идентификации (т.е. в SCIM-клиент), будут синхронизироваться с сайтом Drupal.

  • Версия протокола: СКИМ 2.0
  • Базовый путь: base_url/scim
  • Поддерживаемые ресурсы: Пользователи, группы
  • Формат данных: JSON
  • Авторизация: Токен на предъявителя
  • Тип содержимого: Применение / JSON
  • Accept: Применение / JSON

Поддерживаются следующие операции API.

Пользовательские конечные точки

Групповые конечные точки

    Для деактивации или удаления пользователя в Drupal необходимо включить соответствующие настройки в модуле. Эти параметры доступны на странице конфигурации модуля.

    PATCH /Users/{user-id}
  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ResourceNotFoundException Указанный пользователь не существует. 404
  • Пример запроса:
  • PATCH /Users/{user-id} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "Операции": [ { "op": "Заменить", "path": "активный", "value": false } ] }
        
  • Пример ответа - 204 Нет содержимого.
  • { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "4", "userName": "username", "active": , "emails": [{ "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" }], "meta": { "resourceType": "User" } }
    
        

    Чтобы получить информацию о существующем пользователе, отправьте GET-запрос по адресу... / Пользователи используя их идентификатор пользователя.

    GET /Users/{user-id}
  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ResourceNotFoundException Указанный пользователь не существует. 404
  • Пример запроса:
  •     GET /Users/{user-id} HTTP/1.1 Authorization: Bearer
  • Пример ответа:
    • 404 Не найдено.
    •     { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Пользователь не найден", "status": 404 }
      
    • Найдено 200 ОК.
    • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "4", "userName": "username", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
      

    Этот конечный пункт позволяет фильтровать и получать список конкретных пользователей из существующего списка. Для этого необходимо отправить GET-запрос. / Пользователи С помощью этой конечной точки и добавления параметров фильтра вы можете сузить результаты поиска на основе таких атрибутов, как имя пользователя и адрес электронной почты. Конечная точка поддерживает фильтрованный поиск, но может возвращать максимум 50 записей о пользователях за один запрос.

  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ResourceNotFoundException Указанный пользователь не существует. 404
    GET /Users
  • Параметры запроса:
  • 3.1 Начальный индекс и количество

      Он позволяет использовать параметры запроса startIndex и count. Где startIndex — это начальный ID, а count — максимальное количество результатов, которые может вернуть запрос.

    • Пример запроса:
    • GET /Users?startIndex=1&count=50 Authorization: Bearer 
      
    • Пример ответа:
    • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "startIndex": 1, "itemsPerPage": 2, "Resources": [ { "id": "1", "externalId": "1", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example1@example.com", "displayName": "example1@example.com", "emails": { "value": "example1@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, { "id": "13", "externalId": "13", "meta": { "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "example2", "displayName": "example2", "emails": { "value": "example2@example.com", "type": "work", "primary": true }, "active": true, "name": { "familyName": "", "givenName": "" }, "groups": [ "authenticated,administrator" ], "department": "" }, ] }
      

    3.2 Поиск пользователя по его имени пользователя

    • Пример запроса:
    •  GET /Users?filter=userName eq "admin" 
    • Пример ответа:
      • Если пользователь с указанным именем пользователя не найден, мы отправляем пустую схему, указывающую на то, что пользователь не был найден.
      • Пользователь не найден - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        

        Пользователь найден - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid пользователя", "username": "admin", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        

    3.3. Поиск пользователя по его адресу электронной почты.

    • Пример запроса:
    • GET /Users?filter=emails[type eq "work"].value eq "email@gmail.com" Authorization: Bearer
      
    • Пример ответа:
      • Если пользователь получает электронное письмо.
      • Пользователь найден - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 1, "startIndex": 1, "itemsPerPage": 10, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid of user", "username": "Username", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        
        
      • Если пользователь не найден по адресу электронной почты, модуль отправляет пустую схему, указывающую на то, что пользователь не был найден.
      • Пользователь не найден - 200 Ok.

        { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "startIndex": 1, "itemsPerPage": 0, "Resources": [] }
        
        

Если пользователь найден в GET-запросе, будет выполнен PATCH- или PUT-запрос для обновления пользователя; в противном случае будет выполнен POST-запрос для создания пользователя. Вы можете обновить определенные поля пользователя, используя PATCH запрос к / Пользователи конечная точка. В теле запроса укажите атрибут, который вы хотите изменить, и его обновленное значение.

PATCH /Users/{user-id}
  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ResourceNotFoundException Указанный пользователь не существует. 404
  • Пример запроса:
  • PATCH/Users/{{user-id}} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "Replace", "path": "emails[type eq \"work\"].value", "value": "email@gmail.com" }, { "op": "Replace", "path": "name.familyName", "value": "familyname" } ] }
    
  • Пример ответа: 200 OK.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid of user", "userName": "Username", "active": 1, "emails": [ { "primary": true, "value": "email@gmail.com", "type": "work", "display": "email@gmail.com" } ], "meta": { "resourceType": "User" } }
    

Вы можете обновить данные пользователя, используя PUT-запрос. / Пользователи Конечная точка. Этот запрос заменяет весь объект пользователя, поэтому все необходимые атрибуты пользователя должны быть указаны в теле запроса.

PUT /Users/{{user-id}}
  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ResourceNotFoundException Указанный пользователь не существует. 404
  • Пример запроса:
  • PUT/Users/{{user-id}} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "exmple", "active": 1, "emails": [ { "primary": true, "value": "exmple@example.com", "type": "work", "display": "exmple@example.com" } ], "meta": { "resourceType": "User" }, "name": { "givenName": "givenName", "familyName": "familyName", "middleName": "sdf", "honorificPrefix": "sdf" }, "displayName": "givenName familyName", "nickName": "df", "addresses": [ { "primary": true, "locality": "fdd" } ], "locale": "en-US", "externalId": "9rqltOOLI95d7", "groups": [] }
    
  • Пример ответа: 200 ok.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "97", "userName": "example", "active": 1, "emails": [ { "primary": true, "value": "example@example.com", "type": "work", "display": "example@example.com" } ], "meta": { "resourceType": "User" } }
    

6. Создание пользователя (POST)

Используйте POST-запрос на / Пользователи Конечная точка для создания нового пользователя. Убедитесь, что в теле запроса указаны все необходимые поля. Успешный запрос возвращает код 201 Created и подробные сведения о пользователе.

POST /Users
  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    ConflictException Пользователь уже существует. 409
  • Пример запроса:
  • POST /Users HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"], "externalId": "abc", "userName": "example", "active": true, "emails": [{ "primary": true, "type": "work", "value": "example@example.com" }], "meta": { "resourceType": "User" }, "name": { "formatted": "first name last name", "familyName": "last name", "givenName": "first name" } }
    
  • Пример ответа: 201 создан.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "externalId": "abc", "userName": "example", "active": true, "emails": [ { "primary": true, "type": "work", "value": "example@example.com" } ], "meta": { "resourceType": "User" }, "name": { "formatted": "first name last name", "familyName": "last name", "givenName": "first name" }, "id": "98" }
    

/Группы Конечная точка поддерживает GET-запросы для получения списка групп, доступных на SCIM-сервере. Эта операция возвращает только основную информацию о группе, такую ​​как идентификатор группы и отображаемое имя. Список участников всегда возвращается пустым, поскольку конечная точка не включает в ответ сведения о членстве в группе.

  • Пример запроса:
  • GET /Groups HTTP/1.1 Authorization: Bearer
  • Пример ответа - 200 ok
  • { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 4, "Resources": [ { "id": "anonymous", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "anonymous" }, { "id": "authenticated", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "authenticated" }, { "id": "administrator", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "administrator" }, { "id": "editor_admin", "meta": { "resourceType": "Group" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "editor_admin" } ], "startIndex": 1, "itemsPerPage": 4 }
    
    
  • Поддерживаемый фильтр:
  • GET /Groups?filter=displayName eq "administrator"
  • Пример запроса:
  • GET /scim/Groups?filter=displayName eq "administrator" HTTP/1.1 Authorization: Bearer
    
  • Пример ответа: 200 ok.
  • Если группа найдена с указанным именем.

    { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 0, "Resources": [], "startIndex": 1, "itemsPerPage": 20 }
    

/Группы/{id} Получает ресурс группы, связанный с указанным идентификатором группы. В ответе возвращаются только метаданные группы. Подробная информация о членстве не включается.

  • Пример запроса:
  • GET /Groups/administrator HTTP/1.1 Authorization: Bearer
    
  • Пример ответа:
    • Найдено - 200 OK.

      { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "administrator", "meta": { "resourceType": "Group" }, "displayName": "Administrator" }
      
      

      Не найдено - 404.

      { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Администратор группы не найден", "status": 404 }
      
      

Использовать POST запросить /Группы Для создания новой группы необходимо указать её название (displayName). Хотя в теле запроса можно указать имена участников, ответ всегда будет содержать пустой список участников.

  • Ошибки:
  • Ошибка Состояние HTTP Status Code
    ValidationException Либо модуль не активирован, либо используется неправильный лицензионный ключ. 400
    UnauthorizedException Заголовок авторизации недействителен или отсутствует. 401
    Операциянотсуппортедисключение Изменение состава группы не допускается. 501
  • Пример запроса:
    • Запрос без списка участников.
    • POST /Groups HTTP/1.1 Authorization: Bearer { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" } }
      
    • Запрос со списком участников.
    • POST /Groups HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "group1", "members": [ { "value": "3", "display": "admin@gmail.com" }, { "value": "2", "display": "admin2@gmail.com" } ] }
      
  • Ответ: 201 создан.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" }, "members": [], "id": "group2" }
    

Вы можете обновить основные данные группы, такие как отображаемое имя, с помощью запроса PATCH. /Groups/{group-id}Этот запрос обновляет только предоставленные вами атрибуты и не изменяет состав группы. В случае успешного обновления возвращается ошибка 204 «Нет содержимого».

  • Пример запроса:
  • PATCH /Groups/group1 HTTP/1.1 Authorization: Bearer 
    
    { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Replace", "path": "displayName", "value": "updated group1" }] }
    
  • Пример ответа - 204 Нет содержимого.

/Группы/{id} Конечная точка поддерживает добавление и удаление участников с помощью запроса PATCH. Тело запроса должно содержать список идентификаторов пользователей, которых вы хотите добавить. Это действие только обновляет участников группы и возвращает код 204 No Content в случае успеха.

  • Пример запроса:
    • Добавить участника в группу.
    • PATCH /Groups/updated group1 HTTP/1.1 Content-Type: application/json Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Add", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
    • Удалите участника из группы.
    • PATCH /Groups/updated group1 HTTP/1.1 Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Remove", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
  • Пример ответа: 204 Нет содержимого.

/Группы/{id} Конечная точка поддерживает удаление группы с помощью УДАЛИТЬ Запрос. Эта операция удаляет группу с SCIM-сервера. В случае успешного удаления возвращается... 204 Нет контента Ответ, указывающий на то, что группа была удалена, но текст ответа отсутствует.

  • Пример запроса:
  • DELETE /Groups/updated group1 HTTP/1.1 Authorization: Bearer
    
  • Пример ответа - 204 Нет содержимого.

Если настройка не удалась, пожалуйста, свяжитесь с нами по адресу: drupalsupport@xecurify.com. Пожалуйста, пришлите скриншот окна с ошибкой, и мы поможем вам решить проблему и проведем вас через процесс настройки.

ADFS_sso ×
Привет!

Нужна помощь? Мы здесь!

поддержка