Árvore de páginas

Autenticação


Para autenticação e obtenção do token de acesso, siga o procedimento descrito abaixo:


  1. Obtenção do OAuth Client Assertion:
  2. Geração do Access Token:

O access_token deverá ser informado no campo app_key antes de realizar as consultas seguintes:

APIs Úteis


O companyId utilizado na maioria das APIs pode ser obtido através de consulta no painel do Identity Configurações > Segurança > Token REST API 

Lista todos os Usuários

GET
/rest/v2/companies/{companyId}/users

  • Podendo ser informado o PageSize ou offset para necessidade de paginação.

Lista todos os Aplicativos

GET
/rest/v2/companies/{companyId}/apps

Listar todas as Roles ou Empresas associadas a um Aplicativo de ERP

GET
/rest/v2/scim/v2/extensions/Resources/Companies/{companyId}/Applications/{appId}

  • Podendo ser informado o resourceTypes como Role ou Company se precisar retornar todos os registros de Papeis e Empresa, respectivamente.

Gerenciamento de Recursos dos Aplicativos


As APIs responsáveis pela manipulação de recursos dos aplicativos estão documentadas no seguinte endpoint:

https://app.customerfi.com/rest/swagger-ui/index.html#!/scim


Consulta de Papeis e Empresas de um Aplicativo (RM ou Protheus)

Para listar os papeis atribuídos a um determinado aplicativo, utilize o seguinte endpoint:

GET
/rest/v2/scim/v2/extensions/Resources/Companies/{companyId}/Applications/{appId}

  • Filtrando apenas os Papeis informando o resourceTypes como Role ou Empresa passando resourceTypes como Company

Consulta de Papeis ou Empresas Atribuídos a um Usuário

Para consultar os papeis vinculados a um usuário específico, utilize:

GET
/rest/v2/scim/v2/extensions/Entitlements/Companies/{companyId}/Users/{userId}

  • Filtrando apenas os Papeis informando o resourceTypes como Role ou Empresa passando resourceTypes como Company

Para identificar a qual Empresa uma determinada Role está vinculada é possível consultar o ext.restrictions informado. Exemplo:

Papel: Acesso_H
id: “”

Empresa: 
ext.restrictions: “”

Retorno do JSON:

{
  "dateCreated": "2025-01-29_19:54:23",
  "id": "",
  "schemas": [
    "urn:scim:schemas:core:2.0:ListResponse"
  ],
  "deleted": "N",
  "status": "A",
  "itemsPerPage": 25,
  "totalResults": 1,
  "startIndex": 1,
  "resourceClass": "com.totvslabs.idm.common.extension.Resource",
  "resources": [
    {
      "dateCreated": "2025-01-15_00:26:01",
      "id": "",
      "externalId": "Acesso_H",
      "meta": {
        "dateCreated": "2025-01-29_19:54:23",
        "resourceType": "Resource"
      },
      "schemas": [
        "urn:scim:schemas:extension:2.0:Resource"
      ],
      "deleted": "N",
      "status": "A",
      "companyId": "",
      "applicationId": "",
      "type": "Role",
      "name": {
        "en-US": "Acesso_H",
        "es-ES": "Acesso_H",
        "pt-BR": "Acesso_H",
        "pt-PT": "Acesso_H"
      },
      "description": {
        "en-US": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "es-ES": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "pt-BR": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "pt-PT": "Controle%20de%20usu%C3%A1rios%2Fperfis"
      },
      "displayName": {
        "en-US": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "es-ES": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "pt-BR": "Controle%20de%20usu%C3%A1rios%2Fperfis",
        "pt-PT": "Controle%20de%20usu%C3%A1rios%2Fperfis"
      },
      "ext": {
        "internalId": "Acesso_H",
        "owner": "user",
        "direct": "true",
        "restrictions": "[\"\"]"
      },
      "scimResourceTypeEnum": "ROLE"
    }
  ]

Estrutura Hierárquica das Empresas no RM

No contexto do RM:

  • Os papeis são organizados hierarquicamente abaixo de uma empresa, definido o type como “Role”.
  • Cada empresa possui um identificador resourceID e um type definido como "Company".

No exemplo, a empresa abaixo possui o seguinte resourceID= 01010101010101__PR

Atribuição de Papeis a um Usuário

Para atribuir um papel a um usuário, restringindo por empresa, utilize o seguinte endpoint:

POST
/rest/v2/scim/v2/extensions/Entitlements/Companies/{companyId}/Applications/{appId}/Users/{userId}

Ao efetuar a atribuição, é necessário informar:

  • O papel que será vinculado ao usuário
  • Se necessário uma empresa a qual o vínculo será restrito.
{
resourceIds:[""], 
modelRestriction:["01010101010101__PR"]
}

Com isso será configurado apenas o Papel Acesso_H para empresa exemplo.

Se não for informado um modelRestriction será ativo o papel para todas as empresas presentes.

Caso seja necessário remover a Role a API é semelhante, pode ser passado o mesm

POST
/rest/v2/scim/v2/extensions/Entitlements/Companies/{companyId}/Applications/{appId}/Users/{userId}/remove

Explicação sobre a Estrutura de Papeis no Identity

Os papeis dentro do Identity não são entidades independentes. A estrutura segue o modelo:

  • O Identity possui usuários, grupos e aplicativos.
  • Quando há integração com um ERP (como Protheus ou RM), é criado um aplicativo correspondente.
  • No RM, um grupo de permissão determina quais itens de menu um usuário pode visualizar.
  • Durante a sincronização do RM com o Identity, os grupos de permissão do RM são enviados para o aplicativo RM criado na integração.
  • Para evitar confusão com os grupos do Identity, esses grupos de permissão são referenciados com o nome de papeis.
  • Um papel só existe dentro de um aplicativo e não pode ser consultado sem referência ao aplicativo.
  • Caso um aplicativo seja removido, todos os papeis associados também são excluídos.

Portanto, não é possível obter uma lista global de papeis sem especificar um aplicativo ou vínculo com o aplicativo. A listagem de papeis deve ser feita por aplicativo, utilizando os endpoints descritos anteriormente.

É possível consultar os Papeis vinculados a um usuário através do endpoint abaixo, filtrando o resourceTypes=”Role”, porém note que todo Role está vinculado a um applicationId:

GET
/rest/v2/scim/v2/extensions/Entitlements/Companies/{companyId}/Users/{userId}

Documentações relacionadas


  • Sem rótulos