Pular para o conteúdo principal
Antes de criar um cliente, você precisa estar autenticado na API do Vantage. Consulte Autenticação para mais detalhes.

Criando um cliente

Para criar um cliente, você precisará enviar uma solicitação POST com o cabeçalho Authorization: Bearer <access token> para {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ com os seguintes parâmetros no corpo da requisição:
ParâmetroDescrição
clientIdO identificador do cliente.
clientNameO nome do cliente (por exemplo, o nome do seu app).
allowOfflineAccessEspecifica se um token de atualização será gerado junto com o token de acesso, que o aplicativo pode usar para atualizar o token de acesso automaticamente sem intervenção do usuário. Definido como False por padrão.
allowRememberConsentEspecifica se o usuário pode optar por armazenar decisões de consentimento. Definido como True por padrão.
backChannelLogoutSessionRequiredEspecifica se o mecanismo de Backchannel Logout é obrigatório. Definido como True por padrão.
requireClientSecretEspecifica se um segredo do cliente é obrigatório. Definido como True por padrão.
requireConsentEspecifica se uma tela de consentimento é necessária. Definido como False por padrão.
allowNoPkceEspecifica se o esquema de autenticação Authorization Code Flow with Proof Key for Code Exchange (PKCE) é permitido. Definido como False por padrão, permitindo apenas o esquema de autenticação Authorization Code Flow with Proof Key for Code Exchange (PKCE).
allowedGrantTypesEspecifica os tipos de concessão (grant types) que podem ser usados.
allowedCorsOriginsEspecifica se o mecanismo padrão de compartilhamento de recursos entre origens (CORS) é usado.
allowedScopesDefine o conjunto de recursos e dados do usuário que devem ser transferidos no token. O valor do escopo deve ser exatamente “openid permissions publicapi.all”.
postLogoutRedirectUrisLista de URIs permitidas para redirecionamento após o logout.
redirectUrisLista de sites ou URLs de apps permitidas para redirecionamentos do token de autorização. Prefixos são permitidos na URL. Se o prefixo corresponder, qualquer URL será permitida, por exemplo: [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ].
accessTokenLifetimeDefine o período durante o qual o token de acesso emitido permite o acesso do usuário ao Vantage. O tempo de vida padrão de um token de acesso é de 24 horas.
refreshTokenLifetimeDefine o período absoluto, a partir da emissão do primeiro token de acesso, durante o qual o token de atualização emitido pode ser usado para renovar o token de acesso. O tempo de vida padrão de um token de atualização é de 30 dias.
Importante! Ao autenticar usando Resource Owner Password Credentials, você deve definir o parâmetro allowRopc como TRUE. Observe que esse esquema de autenticação pressupõe que o usuário envie suas credenciais para o aplicativo; portanto, recomenda-se usar ROPC apenas se um cliente confidencial confiável estiver autenticado.
Exemplo de solicitação:

No Windows

curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/" 
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
{ 
  "clientId": "{clientId}",
  "clientName": "{clientName}", 
  "allowOfflineAccess": true,
  "allowRememberConsent": true,
  "backChannelLogoutSessionRequired": true,
  "requireClientSecret": true,    
  "requireConsent": false,  
  "allowNoPkce": true, 
  "allowedGrantTypes": [    
    "{allowedGrantTypes}"  
  ],
  "allowedCorsOrigins": [
    "{allowedCorsOrigins}"
  ],
  "allowedScopes": [ 
    "openid",
    "permissions",
    "publicapi.all" 
  ] 
  "postLogoutRedirectUris": [
     "{postLogoutRedirectUris}"
  ], 
  "redirectUris": [ 
    "{redirectUris}" 
  ]
}

No Linux

curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
{ 
  'clientId': '{clientId}',
  'clientName': '{clientName}', 
  'allowOfflineAccess': true,
  'allowRememberConsent': true,
  'backChannelLogoutSessionRequired': true,
  'requireClientSecret': true,    
  'requireConsent': false,  
  'allowNoPkce': true, 
  'allowedGrantTypes': [    
    '{allowedGrantTypes}'  
  ],
  'allowedCorsOrigins': [
    '{allowedCorsOrigins}'
  ],
  'allowedScopes': [ 
    'openid',
    'permissions',
    'publicapi.all' 
  ] 
  'postLogoutRedirectUris': [
     '{postLogoutRedirectUris}'
  ], 
  'redirectUris': [ 
    '{redirectUris}' 
  ]
}
A resposta do servidor incluirá uma descrição do cliente criado.

Criando um segredo

Cada cliente pode ter vários segredos. Isso permite que o cliente passe a usar um novo segredo quando o atual expirar, sem precisar excluí-lo. Por padrão, um segredo de cliente expira após seis meses. Para criar um segredo, você precisa enviar uma requisição POST com o cabeçalho Authorization = Bearer <access token> para {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ com os seguintes parâmetros no corpo da requisição:
ParâmetroDescrição
descriptionUma descrição do segredo do cliente. Pode ser um breve comentário para ajudar a diferenciar os segredos. Este parâmetro é opcional.
start timeEspecifica a data de início do segredo.
expirationEspecifica a data de expiração do segredo (entre 1 dia e 3 anos). Por exemplo, “2021-09-07T13:03:38.380Z”. Por padrão, essa data é definida para exatamente seis meses após a criação do segredo.
Exemplo de requisição:

No Windows

curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/"
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
-H "Content-Type: application/json-patch+json" \ 
-d 
{ 
  "description": "{description}",
  "startTime": "{startTime}"
  "expiration": "{expiration}" 
}

No Linux

curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
-H 'Content-Type: application/json-patch+json' \ 
-d 
{ 
  'description': '{description}',
  'startTime': '{startTime}'
  'expiration': '{expiration}' 
}
A resposta do servidor à sua solicitação conterá um segredo do cliente (value) e seu período de validade (startTime, expiration).
Importante! O valor do segredo do cliente só estará disponível no momento em que ele estiver sendo criado. Armazene-o em um local seguro para evitar perder o acesso ao cliente por meio desse segredo. Posteriormente, você só poderá visualizar os três primeiros caracteres do valor do segredo do cliente (valueDisplay).