Páginas filhas
  • /users - implementação do protocolo SCIM sobre o cadastro de usuários do Protheus.

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Rest users

O SCIM 'users' é um protocolo de  aplicação REST para provisionamento e gerenciamento de dados de identidade na web. O protocolo suporta a criação, modificação, recuperação e descoberta de usuários.

O serviço users do Protheus permite a inclusão e manipulação de dados de usuário no sistema. É altamente aconselhável que a autenticação de serviços esteja habilitada no servidor rest para evitar manipulação indevida dos dados. Todos os usuários que se autenticarem para utilizar este serviço devem possuir acesso a rotina CFGA510 (o cadastro de usuários no Protheus)

Detalhes da configuração do REST Protheus e como ligar a autenticação dos serviços acesse a página do REST Protheus aqui.

Aviso
titleAtenção
  • Via REST apenas é possível a criação básica do usuário. Para configurar permissões, acessos, menus, etc, é necessária a utilização do Identity.
  • Quando a senha do usuário é alterada via REST, mesmo enviando a informação forceChangePassword como falso, caso a senha não esteja de acordo com as Políticas de Senha do Protheus, ao efetuar o login o sistema exibirá a tela de troca de senha.
  • Este serviço é do tipo NOTENANT (faz autenticação, mas não valida empresa e filial).

Métodos disponíveis

GET

Sintaxe /users/{userId}

Para recuperar um usuário conhecido, os clientes enviam requisições GET. Se o usuário existir o servidor responde com o código de estado 200 e inclui o resultado no corpo da resposta. Também é possível listar os usuários do sistema, omitindo o envio do pathParam {userId}.

HTML
<!DOCTYPE html>
<html>


<head>
    <h2>Parâmetros</h2>
    <meta<div charsetclass="UTF-8" />methodsubtabletitle"><b>pathParam</b></div>
    <title>Document</title>
</head>

<body>
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle"><b>pathParam</b></div>
    <table id="methodsubtable<table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
            </td>
            <td>string</td>
            <td style="width:150px;">id ou código do usuário no sistema</td>
            <td></td>
        </tr>

    </table>
    <br>
    <div class="methodsubtabletitle"><b>queryParam</b></div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">showAdmin
            </td>
            <td>boolean</td>
            <td style="width:150px;">Indica se o get deve retornar o usuário admin</td>
            <td>false</td>
        </tr>
        <tr>
            <td style="width:150px;">count
            </td>
            <td>numérico</td>
            <td style="width:150px;">Indica quantos usuários deverão ser retornados pelo método</td>
            <td>Todos</td>
        </tr>
        <tr>
            <td style="width:150px;">startIndex
            </td>
            <td>numérico</td>
            <td style="width:150px;">Indica a partir de qual usuário encontrado deverá ocorrer o retorno.</td>
            <td>1</td>
        </tr>
        <tr>
            <td style="width:150px;">attributes
            </td>
            <td>string</td>
            <td style="width:150px;">Indica quais atributos do jSon devem ser retornados. Os atributos devem ser separados por ','.
            </td>
            <td>Retorna todos os atributos</td>
        </tr>


     </table>
</body>

</html>
Nota
titleAtenção

O parâmetro atributes é case sensitive.

Retorno:

HTML
<!DOCTYPE html>
<html>


<head>
   <tr>
 <meta charset="UTF-8" />
    <title>Document</title>
</head>

<body>
    <h2>Parâmetros</h2>
 <td   <div classstyle="methodsubtabletitle"><b>Body</b></div>width:150px;">foundBy
    <table id="methodsubtable">
        <tr></td>
            <th width="150px">Nome</th><td>string</td>
            <th>Tipo</th>
            <th>Descrição</th><td style="width:150px;">Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
        </tr>
         <tr>
                 <td  <td style="width:150px;">totalResults
>domainId
            </td>
            <td>numérico<<td>string</td>
            <td style="width:150px;">Indica>Domínio cadastrado apara quantidadeo deUsuário, registros encontrados</td>
        </tr>parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
        </tr>
</table>
Nota
titleAtenção

O parâmetro atributes é case sensitive.

Caso o parâmetro foundBy não for informado, a busca é feita com base em todos os tipos.

Parâmetros foundBy e domainId disponíveis a partir da versão de lib_20230918.


Retorno:

HTML
    <h2>Parâmetros</h2><tr>
            <td style="width:150px;">itemsPerPage

            </td>
            <td>numérico</td>
            <td style="width:150px;">Quantidade de itens retornados na requisição</td><div class="methodsubtabletitle"><b>Body</b></div>
    <table    </tr>id="methodsubtable" border="1">
        <tr>
            <td<th stylewidth="width:150px;">startIndex<>Nome</td>th>
            <td>numérico<<th>Tipo</td>th>
            <td style="width:150px;">Registro “a partir de” do retorno dos registros</td><th>Descrição</th>
        </tr>
        <tr>
            <td style="width:150px;">Id<>totalResults

            </td>
            <td>string<<td>numérico</td>
            <td style="width:150px;">Id>Indica oua códigoquantidade dode usuárioregistros no Protheus<encontrados</td>
        </tr>
        <tr>
            <td style="width:150px;">meta<>itemsPerPage

            </td>
            <td>jSon<<td>numérico</td>
            <td style="width:150px;">Relacionado>Quantidade de aitens criaçãoretornados dona usuário<requisição</td>
        </tr>
        <tr>
            <td style="width:150px;">created<>startIndex</td>
            <td>String<<td>numérico</td>
            <td style="width:150px;">Data>Registro “a departir criaçãode” do usuário.retorno Retorna no formato AAAA-MM-DD_HH:MM:SS<dos registros</td>
        </tr>
        <tr>
            <td style="width:150px;">lastModified<>Id</td>
            <td>String<<td>string</td>
            <td style="width:150px;">Data>Id daou última alteraçãocódigo do usuário. Retorna no formato AAAA-MM-DD_HH:MM:SS<Protheus</td>
        </tr>
        <tr>
            <td style="width:150px;">externalId<>meta</td>
            <td>string<<td>jSon</td>
            <td style="width:150px;">Código externo do usuário (e-mail para >Relacionado a maioriacriação dosdo sistemas)<usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">name<>created</td>
            <td>string<<td>String</td>
            <td style="width:150px;">Código>Data de criação do usuário. Retorna no sistema</td>
 formato AAAA-MM-DD_HH:MM:SS</td>
        </tr>
        <tr>
            <td style="width:150px;">givenName<>lastModified</td>
            <td>string<<td>String</td>
            <td style="width:150px;">Primeiro nome>Data da última alteração do usuário<usuário. Retorna no formato AAAA-MM-DD_HH:MM:SS</td>
        </tr>
        <tr>
            <td style="width:150px;">familyName<>externalId</td>
            <td>string</td>
            <td style="width:150px;">Segundo>Código nomeexterno do usuário< usuário (e-mail para a maioria dos sistemas)</td>
        </tr>
        <tr>
            <td style="width:150px;">displayName<>name</td>
            <td>string</td>
            <td style="width:150px;">nome>Código do usuário no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">emails<>givenName</td>
            <td>array de objetos<<td>string</td>
            <td style="width:150px;"><>Primeiro nome do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">emails:value<>familyName</td>
            <td>string</td>
            <td style="width:150px;">E-mail no sistema<>Segundo nome do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">emails:type<>displayName</td>
            <td>string</td>
            <td style="width:150px;">Tipo>nome do e-mail. Sempre retorna "work"<usuário no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">primary<>emails</td>
            <td>array <td>boolean<de objetos</td>
            <td style="width:150px;">Indica se é o e-mail primário do usuário. Sempre retorna true<></td>
        </tr>
        <tr>
            <td style="width:150px;">active<>emails:value</td>
            <td>boolean<<td>string</td>
            <td style="width:150px;">Retorna se o usuário está ativo ou não >E-mail no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">groups<>emails:type</td>
            <td>array de objetos<<td>string</td>
            <td style="width:150px;">Grupos>Tipo ao qual o usuário pertence<do e-mail. Sempre retorna "work"</td>
        </tr>
        <tr>
            <td style="width:150px;">groups:value<>primary</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">Código>Indica se é o e-mail primário do grupo<usuário. Sempre retorna true</td>
        </tr>
        <tr>
            <td style="width:150px;">groups:display<>active</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">Descrição do grupo<>Retorna se o usuário está ativo ou não no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">title<>groups</td>
            <td>array de <td>string<objetos</td>
            <td style="width:150px;">Cargo do usuário<>Grupos ao qual o usuário pertence</td>
        </tr>
        <tr>
            <td style="width:150px;">employeeNumber<>groups:value</td>
            <td>string</td>
            <td style="width:150px;">Código dedo funcionário<grupo</td>
        </tr>
        <tr>
            <td style="width:150px;">department<>groups:display</td>
            <td>string</td>
            <td style="width:150px;">Código>Descrição do departamento do usuário<grupo</td>
        </tr>
        <tr>
            <td style="width:150px;">manager<>title</td>
            <td>array de objetos<<td>string</td>
            <td style="width:150px;">Informações>Cargo dos superioresdo do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">manager:manageId<>employeeNumber</td>
            <td>string</td>
            <td style="width:150px;">Código do superior do usuário<de funcionário</td>
        </tr>
        <tr>
            <td style="width:150px;">manager:displayName<>department</td>
            <td>string</td>
            <td style="width:150px;">Nome>Código do superiordepartamento nodo sistema<usuário</td>
        </tr>

        </table>
</body>

</html>
Bloco de código
languagejs
themeEclipse
titleExemplo do json de retorno
{<tr>
    "schemas": [
       <td style="urn:scim:schemas:core:2.0:User",
width:150px;">manager</td>
         "urn:scim:schemas:extension:enterprise:2.0:User"   <td>array de objetos</td>
    ],
    "id": "000021",
   <td "meta": {style="width:150px;">Informações dos superiores do usuário</td>
        "created": "2018-02-13_00:00:00",</tr>
        "lastModified": "2018-02-13_00:00:00"<tr>
    },
    "externalId": "[email protected]",
   <td "userName": "User1",style="width:150px;">manager:manageId</td>
    "name": {
        "formatted": "User1",
    <td>string</td>
    "givenName": "User1",
       <td style="familyName"width: "."
    },150px;">Código do superior do usuário</td>
    "displayName": "Use1r",
    "emails": [</tr>
        {<tr>
            <td "value": "[email protected]",
style="width:150px;">manager:displayName</td>
            <td>string</td>
  "type": "work",
         <td   "primary": true
   style="width:150px;">Nome do superior no sistema</td>
     }
    ],</tr>

    </table>
Bloco de código
languagejs
themeEclipse
titleExemplo do json de retorno
{"active": true,
    "groupsschemas": [
        {
  "urn:scim:schemas:core:2.0:User",
          "value": "000001","urn:scim:schemas:extension:enterprise:2.0:User"
      ],
      "displayid": "grupo2000021",
        }"meta": {
    ],
    "titlecreated": "Coordenador2018-02-13_00:00:00",
        "employeeNumberlastModified": "02|00|000001"2018-02-13_00:00:00"
    },
    "departmentexternalId": "RH[email protected]",
    "manageruserName": ["User1",
       "name": {
         "formatted": "User1",
        "managerIdgivenName": "000000User1",
        "familyName": "."
    },
    "displayName": "Use1r",
    "Administradoremails": [
        }
{
          ]
}
   

A busca por um usuário passando o Id difere apenas da omissão no resultado dos parâmetros totalResult, itensPerPage e startIndex.

GET (GetUserId)

Sintaxe /users/GetUserId

Retorna o id do usuário atualmente logado pelo serviço REST no Protheus.

Bloco de código
languagejs
themeEclipse
titleExemplo de retorno do método
{   "value": "[email protected]",
            "type": "work",
            "primary": true
        }
    ],
    "userIDactive": true,
    "000000groups"
}

POST

Sintaxe /users/{userid}/{operation}

Cria novos usuários no sistema devolvendo na requisição, quando bem sucedida, o código de resposta 201 (created).

: [
        {
            "value": "000001",
            "display": "grupo2"
        }
    ],
    "title": "Coordenador",
    "employeeNumber": "02|00|000001",
    "department": "RH",
    "manager": [
        {
            "managerId": "000000",
            "displayName": "Administrador"
        }
    ]
}
   

A busca por um usuário passando o Id difere apenas da omissão no resultado dos parâmetros totalResult, itensPerPage e startIndex.

GET (GetUserId)

Sintaxe /users/GetUserId

Retorna o id do usuário atualmente logado pelo serviço REST no Protheus.

Bloco de código
languagejs
themeEclipse
titleExemplo de retorno do método
{
    "userID": "000000"
}

POST

Sintaxe /users/{userid}/{operation}

Cria novos usuários no sistema devolvendo na requisição, quando bem sucedida, o código de resposta 201 (created).

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle">
        <b>pathParam</b>
    </div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
            </td>
            <td>string</td>
            <td style="width:150px;">Código do usuário no sistema (POST para bloquear ou desbloquear um usuário existente. Para bloquear ou desbloquear
                é necessário também enviar o parâmetro operation)</td>
            <td></td>
        </tr>
        <tr>
                <td style="width:150px;">operation
                </td>
                <td>string</td>
                  <td style="width:150px;">Valores aceitos: activate e deactivate.
                        Indica se o usuário será ativado no sistema (activate) ou se o usuário será 
                        bloqueado via SAML (deactivate) ou se um novo usuário será criado 
                        (parâmetro vazio ou qualquer outro valor diferente dos anteriores. Caso o 
                        parâmetro userId seja enviado mas não seja enviado o parâmetro operation é 
                        assumido que um novo usuário será criado no sistema 
                        </td>
                <td></td>
            </tr>

    </table>
    <br>
    <div class="methodsubtabletitle">
        <b>body</b>
    </div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userName</td>
            <td>string</td>
            <td style="width:150px;">Nome do usuário</td>
    
HTML
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>


<body>
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle">
        <b>pathParam</b>
    </div>
<td style="width:150px;">valor do atributo ext/adDomain</td>
      <table id="methodsubtable">  </tr>
        <tr>
            <th<td widthstyle="width:150px;">Nome<>displayName</th>td>
            <th>Tipo<<td>string</th>td>
            <td style="width:150px;">nome completo do <th>Descrição<usuário</th>td>
            <th>Default</th><td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">userId>externalId</td>
            <<td>string</td>
            <td style="width:150px;">Código externo do  <td>string<usuário</td>
            <td style="width:150px;">Código externo do usuário. Quando noenviado sistemaindica (POSTque parao bloquearusuário oubloqueado desbloquearvia umSAML usuárioserá existente. Para bloquear ou desbloquear
reativado. O Envio de
                um externalId que não exista irá égerar necessárioa tambéminclusão enviarde oum parâmetronovo operation)usuário.</td>
        </tr>

    <td></td>
    <tr>
          </tr>  <td style="width:150px;">title</td>
        <tr>
     <td>string</td>
            <td style="width:150px;">operation
>Cargo do usuário</td>
              <<td style="width:150px;"></td>
        </tr>

        <td>string</td><tr>
                  <td style="width:150px;">Valores aceitos: activate e deactivate.>emails
                <span style="color:red;">*
       Indica se o usuário será ativado no sistema (activate) ou se o usuário será <sup>obrigatório</sup>
                </span>
        bloqueado via SAML (deactivate) ou se um novo usuário será criado 
 </td>
            <td>array de objetos</td>
             (parâmetro vazio ou qualquer outro valor diferente dos anteriores. Caso o 
       <td style="width:150px;">O primeiro e-mail com o valor primary apontado como true é o email cadastrado para o usuário (é necessário no
                mínimo parâmetroum userIdemail sejaprimário. enviadoQualquer masemail não sejaprimário enviado o parâmetro operation é 
descartado). Caso o e-mail enviado  exista
                em outro assumidousuário queo ume-mail novoficará usuário será criado no sistema 
em branco.</td>
            <td style="width:150px;"></td>
        </tr>

     </td>
   <tr>
             <td><<td style="width:150px;">emails:value</td>
            <<td>string</tr>td>

    </table>
    <br>
    <div<td classstyle="methodsubtabletitle">width:150px;">Código do e-mail</td>
        <b>body</b>
     </div>
<td style="width:150px;"></td>
      <table id="methodsubtable">  </tr>

        <tr>
            <th<td widthstyle="width:150px;">Nome<>emails:primary</th>td>
            <th>Tipo<<td>boolean</th>td>
            <th>Descrição</th><td style="width:150px;">Indica se é um email primário</td>
            <th>Default</th> <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">userName<>active</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">Nome do usuário<>indica se o usuário estará ativo ou bloqueado</td>
            <td style="width:150px;">valor do atributo ext/adDomain<>true</td>
        </tr>

        <tr>
            <td style="width:150px;">displayName<>groups</td>
            <td>string<<td>array de objetos</td>
            <td style="width:150px;">nome completo do usuário<>grupos ao qual o usuário está associado</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">externalId</td>
>groups:value
                <td>string</td><span style="color:red;">*
            <td style="width:150px;">Código externo do usuário</td>
        <sup>obrigatório</sup>
                </span>
    <td style="width:150px;">Código externo do usuário. Quando enviado indica que o usuário bloqueado via SAML será reativado. O Envio de
        </td>
            <td>string</td>
            <td style="width:150px;">código do grupo</td>
  um externalId que não exista irá gerar a inclusão de um novo usuário.<<td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">title<>password</td>
            <td>string</td>
            <td style="width:150px;">Cargo>senha do usuário</td>
            <td style="width:150px;"><usuário. Quando não informado a senha deverá ser alterada posteriormente pelo admin.</td>
        </tr>

        <tr>
            <td style="width:150px;">emails
         >hash randômico.</td>
       <span style="color:red;">* </tr>

        <tr>
            <sup>obrigatório</sup><td style="width:150px;">ext/SAMAccountName</td>
            <td>string</td>
    </span>
        <td style="width:150px;">Indica o login </td>
do usuário no SSO (caso informado, ele substituirá o valor informado no <td>array de objetos<campo userName)</td>
            <td style="width:150px;">O primeiro e-mail com o valor primary apontado como true é o email cadastrado para o usuário (é necessário no
></td>
        </tr>

        <tr>
         mínimo um email primário. Qualquer email não primário enviado é descartado). Caso o e-mail enviado já exista<td style="width:150px;">ext/adDomain</td>
            <td>string</td>
            <td    em outro usuário o e-mail ficará em branco.<style="width:150px;">domínio do usuário do SSO</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">emails:value<>urn:scim:schemas:extension:enterprise:2.0:User</td>
            <td>string<<td>objeto</td>
            <td style="width:150px;">Código do e-mail<>Indica as configurações de usuário superior</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">emails:primary<>urn:scim:schemas:extension:enterprise:2.0:User:manager</td>
            <td>boolean<<td>array de objetos</td>
            <td style="width:150px;">Indica>Array secontendo éinformações umdo emailusuário primário<superior</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">active<>urn:scim:schemas:extension:enterprise:2.0:User:manager:managerId</td>
            <td>boolean<<td>string</td>
            <td style="width:150px;">indica>código se odo usuário estará ativo ou bloqueado<superior</td>
            <td style="width:150px;">true<></td>
        </tr>

        <tr>
            <td style="width:150px;">groups<style="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword</td>
            <td>array de objetos<<td>boolean</td>
            <td style="width:150px;">grupos ao qual o usuário está associado<>Identifica se deve ou não realizar a troca de senha no primeiro acesso</td>
            <td style="width:150px;"><>false</td>
        </tr>

        <tr>
            <td style="width:150px;">groups:value>urn:scim:schemas:extension:totvs:2.0:User/employeeNumber</td>
            <td>string</td>
    <span        <td style="colorwidth:red150px;">*
               >Vínculo fincional do usuário. Devem ser enviados os valores de Grupo de Empresas, Filial e Código do vínculo
     <sup>obrigatório</sup>
           separados por “|”. Exemplo para </span>
o grupo 18, filial D MG 01 e código 002: 18|D MG <01|002</td>
             <td>string<<td style="width:150px;"></td>
        </tr>

     <td style="width:150px;">código do grupo</td><tr>
            <td style="width:150px;"><>urn:scim:schemas:extension:totvs:2.0:User/department</td>
        </tr>

        <tr><td>string</td>
            <td style="width:150px;">password</td>
>código do departamento          <td>string<do usuário</td>
            <td style="width:150px;">senha do usuário. Quando não informado a senha deverá ser alterada posteriormente pelo admin.</td>></td>
        </tr>

        <tr>
            <td style="width:150px;">hash randômico.<>urn:scim:schemas:extension:totvs:2.0:User/groupRule</td>
        </tr>

        <tr><td>numérico</td>
            <td style="width:150px;">ext/SAMAccountName</td>
            <td>string</td>
    >Define a regra de priorização por grupo: 1 priorizar, 2 desconsiderar e 3 somar. Qualquer valor diferente deste,
        <td style="width:150px;">Indica o login do usuário no SSO (casoquando informadoenviado, eleassume substituirá o valor informado no campo userName)1.</td>
            <td style="width:150px;"></td>
        </tr>

         <tr>
            <td style="width:150px;">ext/adDomain<>userAllEmp</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">domínio do usuário do SSO<>Define se o usuário será criado com acessos a todas as empresas, campo considerado apenas na inclusão de usuário. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr> 

    	    <tr>
            <td style="width:150px;">urn:scim:schemas:extension:enterprise:2.0:User<>userAllModule</td>
            <td>objeto<<td>boolean</td>
            <td style="width:150px;">Indica as configurações>Define se o usuário será criado com acessos a todos os módulos, campo considerado apenas na inclusão de usuário superior<. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr>

  
	      <tr>
            <td style="width:150px;">urn:scim:schemas:extension:enterprise:2.0:User:manager<>userAllAccess</td>
            <td>array de objetos<<td>boolean</td>
            <td style="width:150px;">Array contendo informações do usuário superior<>Define se o usuário será criado com todos os acessos habilitados, campo considerado apenas na inclusão de usuário. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr>  





    </table>


Exemplo de requisição para a inclusão de usuário:


Bloco de código
languagejs
themeEclipse
titleExemplo de requisição
{ 
   <tr>
 "schemas":[ 
      "urn:scim:schemas:core:2.0:User",
     <td style="width:150px;">urn"urn:scim:schemas:extension:enterprise:2.0:User:manager:managerId</td>"
   ],
   "externalId":"TesteUsr",
      <td>string</td>"meta":{ 


   },
         <td style="width:150px;">código do usuário superior</td>
            <td style="width:150px;"></td>
        </tr>
"userName":"Usr Tst",
   "displayName":"User",
   "title":"Coordenador",
   "emails":[ 
      {  <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword</td>"value":"[email protected]",
            <td>boolean</td>"primary":true
      }
   ],
   <td style="width:150px;">Identifica se deve ou não realizar a troca de senha no primeiro acesso</td>
    "active":true,
   "groups":[ 
      { 
        <td style="value"width:150px;">false</td>"000002"
        </tr>}

   ],
     <tr>"password":"pass001",
            <td style="width:150px;">urn"urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword":true,
   "urn:scim:schemas:extension:enterprise:2.0:User/employeeNumber":"02|00|000001",
   "urn:scim:schemas:extension:enterprise:2.0:User/department":"RH",
   "urn:scim:schemas:extension:totvs:2.0:User/employeeNumber</td>groupRule":2,
   "ext/sAMAccountName":"user0007",
         <td>string</td>"ext/adDomain":"XP01",
            <td style="width:150px;">Vínculo fincional do usuário. Devem ser enviados os valores de Grupo de Empresas, Filial e Código do vínculo"urn:scim:schemas:extension:enterprise:2.0:User":{ 
      "manager":[ 
         { 
            "managerid":"000000"
    separados  por “|”. Exemplo para}
 o grupo 18, filial D MG]
 01  }
}

PUT

Sintaxe /users/{userid}

Método utilizado para atualizar um usuário existente. Todos os parâmetros podem ser enviados, tal qual o método POST.

HTML
    <h2>Parâmetros</h2>e código 002: 18|D MG 01|002</td>
    <div class="methodsubtabletitle">
       <td style="width:150px;"></td> <b>pathParam</b>
    </div>
    </tr>
<table id="methodsubtable" border="1">
        <tr>
            <td<th stylewidth="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/department</td>">Nome</th>
            <td>string<<th>Tipo</td>th>
            <td style="width:150px;">código do departamento do usuário</td><th>Descrição</th>
            <td style="width:150px;"></td>   <th>Default</th>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/groupRule</td>>userId
            <td>numérico</td>
    <span style="color:red;">*
                  <td style="width:150px;">Define a regra de priorização por grupo: 1 priorizar, 2 desconsiderar e 3 somar. Qualquer valor diferente deste, <sup>obrigatório</sup>
                </span>
            </td>
    quando    enviado, assume o valor 1.<<td>string</td>
            <td style="width:150px;"><>Código do usuário</td>
            <td></td>
        </tr>



    </table> 
	<br>


     </table>
</body>

</html><div class="methodsubtabletitle">
		<b>queryParam</b>
	</div>
    <table id="methodsubtable" 

Exemplo de requisição para a inclusão de usuário:

Bloco de código
languagejs
themeEclipse
titleExemplo de requisição
{ 
   "schemas":[ border="1">
        <tr>
      "urn:scim:schemas:core:2.0:User",
      <th "urn:scim:schemas:extension:enterprise:2.0:User"width="150px">Nome</th>
   ],
     "externalId":"TesteUsr",
   "meta":{ 


 <th>Tipo</th>
   },
   "userName":"Usr Tst",
   "displayName":"User",
   "title":"Coordenador",
<th>Descrição</th>
    "emails":[ 
      { <th>Default</th>
         "value":"[email protected]",</tr>
         "primary":true
<tr>
       }
   ],
  <td "active":true,style="width:150px;">foundBy
   "groups":[  
      { </td>
            "value":"000002"<td>string</td>
      }
    ],
  <td style="password"width:"pass001",
   "urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword":true,
   "urn:scim:schemas:extension:enterprise:2.0:User/employeeNumber":"02|00|000001",
   "urn:scim:schemas:extension:enterprise:2.0:User/department":"RH",
   "urn:scim:schemas:extension:totvs:2.0:User/groupRule":2,
   "ext/sAMAccountName":"user0007",
   "ext/adDomain":"XP01",
   "urn:scim:schemas:extension:enterprise:2.0:User":{ 
      "manager":[ 
150px;">Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
        </tr>
        <tr>
            <td style="width:150px;">domainId
            </td>
          {  <td>string</td>
            <td style="width:150px;">Domínio cadastrado para o  "managerid":"000000"
         }Usuário, parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
      ]
   }
}

PUT

</tr>
	</table>
Nota
titleAtenção

Caso o parâmetro foundBy não for informado, a busca é feita com base em todos os tipos.

Parâmetros foundBy e domainId disponíveis a partir da versão de lib_20230918.


Retorno: true, false ou o erro gerado.

DELETE

Sintaxe Sintaxe /users/{userid}

Método utilizado para atualizar bloquear um usuário existente. Todos os parâmetros podem ser enviados, tal qual o método POST.O usuário é bloqueado, e todos os itens amarrados ao seu registro (grupos, vínculo funcional, etc) são desassociados.

HTML
HTML
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>

<body>
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle">
        <b>pathParam</b>
    </div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
                <span style="color:red;">*
                    <sup>obrigatório</sup>
                </span>
            </td>
            <td>string</td>
            <td style="width:150px;">Código do usuário<</td>
            <td><<td>string</td>
         </tr>
    </table>

</body>

</html>

Retorno: true, false ou o erro gerado.

DELETE

Sintaxe /users/{userid}

Método utilizado para bloquear um usuário existente. O usuário é bloqueado, e todos os itens amarrados ao seu registro (grupos, vínculo funcional, etc) são desassociados.

HTML
<!DOCTYPE html>
<html>


<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>

<body>
    <h2>Parâmetros</h2><td style="width:150px;">Código do usuário</td>
            <td></td>
        </tr>
    </table> 
    <br>
    <div class="methodsubtabletitle">
        <b>pathParam<		<b>queryParam</b>
    	</div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
>foundBy
            </td>
            <td>string</td>
        <span    <td style="colorwidth:red150px;">*
>Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
       <sup>obrigatório< </sup>tr>
        <tr>
             </span> <td style="width:150px;">domainId
            </td>
            <td>string</td>
            <td style="width:150px;">Código>Domínio do usuário</td>
            <td><cadastrado para o Usuário, parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
        </tr>
    	</table>

</body>

</html>


Retorno: true, false ou o erro gerado.


Status do documentoConcluído
Data14/02/2018
Versão2.0
Versão anterior1.0
Autores
Índice

Índice
outlinetrue
indent10px