Procurar Resultados :

×

Endpoints da API do servidor SCIM do Drupal

Este documento descreve os endpoints SCIM necessários para habilitar o provisionamento e o desprovisionamento de usuários SCIM. SCIM é um protocolo padrão do setor que permite automatizar as operações CRUD (criar, atualizar, atualizar e descartar) de usuários. Utilizando o móduloO site Drupal poderá funcionar como servidor SCIM. Isso significa que quaisquer alterações feitas no provedor de identidade (ou seja, o cliente SCIM) serão sincronizadas com o site Drupal.

  • Versão do protocolo: SCIM 2.0
  • Caminho base: base_url/scim
  • Recursos disponíveis: Usuários, Grupos
  • Formato de dados: JSON
  • Autorização: Token de portador
  • Tipo de conteúdo: aplicação / json
  • Aceitar: aplicação / json

As seguintes operações de API são suportadas.

Pontos de extremidade do usuário

Pontos finais do grupo

    Para desativar ou excluir um usuário no Drupal, você precisa habilitar as configurações necessárias no módulo. Essas opções estão disponíveis na página de configuração do módulo.

    PATCH /Users/{user-id}
  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de recurso não encontrado O usuário especificado não existe. 404
  • Solicitação de exemplo:
  • PATCH /Users/{user-id} HTTP/1.1 Content-Type: application/json Authorization: Bearer { "Operações": [ { "op": "Substituir", "caminho": "ativo", "valor": falso } ] }
        
  • Exemplo de resposta - 204 Sem conteúdo.
  • { "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" } }
    
        

    Para buscar um usuário existente, faça uma solicitação GET para /Comercial usando seu ID de usuário.

    GET /Users/{user-id}
  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de recurso não encontrado O usuário especificado não existe. 404
  • Solicitação de exemplo:
  •     GET /Users/{user-id} HTTP/1.1 Authorization: Bearer
  • Resposta de exemplo:
    • 404 não encontrado.
    •     { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Usuário não encontrado", "status": 404 }
      
    • 200 Ok encontrados.
    • { "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" } }
      

    Este endpoint permite filtrar e recuperar usuários específicos da lista de usuários existente. Ao fazer uma solicitação GET para o /Comercial Ao adicionar parâmetros de filtro ao endpoint, você pode refinar os resultados com base em atributos como nome de usuário e e-mail. O endpoint suporta buscas filtradas, mas pode retornar no máximo 50 registros de usuários por requisição.

  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de recurso não encontrado O usuário especificado não existe. 404
    OBTER /Usuários
  • Parâmetros de consulta:
  • 3.1 Índice inicial e contagem

      Permite que os parâmetros de consulta sejam startIndex e count. Onde startIndex será o ID inicial e count será o número máximo de resultados que a consulta pode retornar.

    • Solicitação de exemplo:
    • GET /Users?startIndex=1&count=50 Autorização: Portador 
      
    • Resposta de exemplo:
    • { "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 Pesquisar um usuário pelo seu nome de usuário

    • Solicitação de exemplo:
    •  GET /Users?filter=userName eq "admin" 
    • Resposta de exemplo:
      • Se o usuário não for encontrado com o nome de usuário, enviamos um esquema vazio indicando que nenhum usuário foi encontrado.
      • Usuário não encontrado - 200 Ok.

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

        Usuário encontrado - 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 do usuário", "username": "admin", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        

    3.3 Pesquisar o usuário pelo endereço de e-mail

    • Solicitação de exemplo:
    • GET /Users?filter=emails[type eq "work"].value eq "email@gmail.com" Authorization: Bearer
      
    • Resposta de exemplo:
      • Se o usuário apresentar o e-mail.
      • Usuário encontrado - 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 do usuário", "username": "Nome de usuário", "emails": [ { "value": "email@gmail.com", "primary": true, "type": "work" } ] } ] }
        
        
      • Caso o usuário não seja encontrado pelo e-mail, o módulo envia um esquema vazio indicando que o usuário não foi encontrado.
      • Usuário não encontrado - 200 Ok.

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

Se o usuário for encontrado na requisição GET, uma requisição PATCH ou PUT será feita para atualizá-lo; caso contrário, uma requisição POST será feita para criar o usuário. Você pode atualizar campos específicos de um usuário usando um... PATCH pedido para o /Comercial endpoint. No corpo da requisição, inclua o atributo que deseja alterar e seu valor atualizado.

PATCH /Users/{user-id}
  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de recurso não encontrado O usuário especificado não existe. 404
  • Solicitação de exemplo:
  • 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" } ] }
    
  • Exemplo de resposta: 200 OK.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "uid do usuário", "userName": "Nome de usuário", "active": 1, "emails": [ { "primary": true, "value": "email@gmail.com", "type": "work", "display": "email@gmail.com" } ], "meta": { "resourceType": "User" } }
    

Você pode atualizar um usuário usando uma solicitação PUT para o /Comercial endpoint. Esta solicitação substitui todo o objeto de usuário, portanto, todos os atributos de usuário necessários devem ser fornecidos no corpo da solicitação.

PUT /Users/{{user-id}}
  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de recurso não encontrado O usuário especificado não existe. 404
  • Solicitação de exemplo:
  • 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": [] }
    
  • Exemplo de resposta: 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. Criar usuário (POST)

Utilize uma solicitação POST no /Comercial Endpoint para criar um novo usuário. Certifique-se de incluir todos os campos necessários no corpo da requisição. Uma requisição bem-sucedida retorna o código 201 Created e os detalhes do usuário.

POST /Usuários
  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    Exceção de Conflito O usuário já existe. 409
  • Solicitação de exemplo:
  • 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" } }
    
  • Exemplo de resposta: 201 criado.
  • { "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" }
    

O processo de /Grupos O endpoint suporta solicitações GET para recuperar uma lista de grupos disponíveis no servidor SCIM. Essa operação retorna apenas as informações básicas do grupo, como o ID e o nome de exibição. A lista de membros é sempre retornada vazia, pois o endpoint não inclui detalhes de associação a grupos na resposta.

  • Solicitação de exemplo:
  • GET /Groups HTTP/1.1 Autorização: Bearer
  • Exemplo de resposta - 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 }
    
    
  • Filtro suportado:
  • GET /Groups?filter=displayName eq "administrator"
  • Solicitação de exemplo:
  • GET /scim/Groups?filter=displayName eq "administrator" HTTP/1.1 Authorization: Bearer
    
  • Exemplo de resposta: 200 ok.
  • Se um grupo for encontrado com o nome de exibição.

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

/Grupos/{id} Recupera o recurso de grupo associado ao ID de grupo fornecido. Somente os metadados do grupo são retornados na resposta. Detalhes de associação não são incluídos.

  • Solicitação de exemplo:
  • GET /Groups/administrator HTTP/1.1 Authorization: Bearer
    
  • Resposta de exemplo:
    • Encontrado - 200 OK.

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

      Não encontrado - 404.

      { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:Error" ], "detail": "Administrador do grupo não encontrado", "status": 404 }
      
      

Usar um POST pedido para /Grupos Para criar um novo grupo, você precisa fornecer um nome para o grupo (displayName). Embora seja possível incluir membros no corpo da requisição, a resposta sempre retornará uma lista vazia de membros.

  • Erros:
  • erro Condição Código de status HTTP
    Exceção de Validação Ou o módulo não está ativado, ou está sendo usada uma chave de licença incorreta. 400
    Exceção não autorizada O cabeçalho de autorização é inválido ou está ausente. 401
    OperationNotSupportedException Não é permitida a modificação do grupo. 501
  • Solicitação de exemplo:
    • Solicitação sem lista de membros incluída.
    • POST /Groups HTTP/1.1 Autorização: Bearer { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" } }
      
    • Solicitar lista de membros.
    • 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" } ] }
      
  • Resposta: 201 Criado.
  • { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "externalId": "enternal-id", "displayName": "group2", "meta": { "resourceType": "Group" }, "members": [], "id": "group2" }
    

Você pode atualizar os detalhes básicos de um grupo, como o nome de exibição, usando uma solicitação PATCH para /Grupos/{id-do-grupo}Esta solicitação atualiza apenas os atributos que você fornecer e não altera os membros do grupo. Uma atualização bem-sucedida retorna o código 204 Sem Conteúdo.

  • Solicitação de exemplo:
  • 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" }] }
    
  • Exemplo de resposta - 204 Sem conteúdo.

O processo de /Grupos/{id} O endpoint permite adicionar e remover membros por meio de uma requisição PATCH. O corpo da requisição deve incluir a lista de IDs de usuário que você deseja adicionar. Essa ação atualiza apenas os membros do grupo e retorna o código 204 No Content em caso de sucesso.

  • Solicitação de exemplo:
    • Adicionar um membro ao grupo.
    • 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" }] }] }
      
    • Remova o membro do grupo.
    • PATCH /Groups/updated group1 HTTP/1.1 Authorization: Bearer { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [{ "op": "Remover", "path": "members", "value": [{ "$ref": null, "value": "97" }] }] }
      
  • Exemplo de resposta: 204 Sem conteúdo.

O processo de /Grupos/{id} O endpoint suporta a exclusão de um grupo usando um EXCLUIR solicitação. Esta operação remove o grupo do servidor SCIM. Uma exclusão bem-sucedida retorna um 204 Sem conteúdo resposta, indicando que o grupo foi excluído, e nenhum corpo de resposta foi fornecido.

  • Solicitação de exemplo:
  • DELETE /Groups/updated group1 HTTP/1.1 Authorization: Bearer
    
  • Exemplo de resposta - 204 Sem conteúdo.

Caso a configuração não tenha sido bem-sucedida, entre em contato conosco em drupalsupport@xecurify.com. Envie a captura de tela da janela de erro e nós o ajudaremos a resolver o problema e o orientaremos na configuração.

ADFS_sso ×
Olá!

Preciso de ajuda? Estamos bem aqui!

ajuda