Password grant type

Pré-requisitos:

  • Uma aplicação devidamente configurada.
  • Usuário valido.
  • Credenciais de um client valido
  • JWKs configurada para geração do access_token

Token

URL de Documentação da API : /apidocs/#/OpenID/post__application__connect_token

Parâmetros:

  • application:
    • Obrigatório: Sim
    • Tipo: String
    • Localização: Caminho da URL (Path)
    • Descrição: Nome da aplicação a ser usada.
  • client_id:
    • Tipo: String
    • Localização: No corpo da requisição JSON.
    • Descrição: ID do cliente a ser usado na geração do "code"
  • client_secret:
    • Tipo: String
    • Localização: No corpo da requisição JSON.
    • Descrição: Secret do cliente a ser usado na geração do "code"
  • code:
    • Tipo: String
    • Localização: No corpo da requisição JSON.
    • Descrição: Codigo retornado no endpoint authorize
  • grant_type:
    • Tipo: String
    • Localização: No corpo da requisição JSON.
    • Descrição: Grant type configurado no client
  • redirect_uri:
    • Tipo: String
    • Localização: No corpo da requisição JSON.
    • Descrição: Redirect Uri enviado como parametro do endpoint de authorize

No exemplo abaixo iremos utilizar o fluxo com o grant_type sendo password e o response_type como code token

Como o Token Endpoint Auth Method foi definido no exemplo como client_secret_post as credenciais do cliente devem ser enviadas via post form

curl -X POST "https://[ip ou hostname (fqdn)]/<application name>/connect/token" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "username=<username>&password=<password>&client_id=<client_id>&client_secret=<client_secret>&grant_type=password&scope=openid%20profile"

O retorno desta chamada deve ser similar ao exemplo abaixo:

{
  "access_token": "eyJhbGciOiJSUz[...]EoULcOD4XZtfsTq1j95bg",
  "expires_in": 3600,
  "refresh_token": "zv6UCR66p4oe[...]JaTBAPv6Z91",
  "scope": "profile",
  "token_type": "Bearer"
}

UserInfo

URL de Documentação da API : /apidocs/#/OpenID/get__application__connect_userinfo

Para recuperar as informações do usuário, utilize o access_token retornado pelo endpoint acima como valor do header Authorization: Bearer <access_token>

Parâmetros:

  • application name:
    • Obrigatório: Sim
    • Tipo: String
    • Localização: Caminho da URL (Path)
    • Descrição: O nome da aplicação a ser usada.

Exemplos:

  • Curl:
      curl -X GET "https://[ip ou hostname (fqdn)]/<application name>/connect/userinfo" -H "accept: application/json" -H "Authorization: Bearer <access_token>"
    

O retorno desta chamada deve ser similar ao exemplo abaixo:

{
  "id": "09d97a66-da69-4049-9123-3fdd7c2c2738",
  "name": "userdocs",
  "sub": "09d97a66-da69-4049-9123-3fdd7c2c2738",
  "username": "userdocs"
}

results matching ""

    No results matching ""