Abrangência
Disponível a partir da versão 19.3.1 e superiores.
Para utilização do protocolo oAuth2 TlppCore é necessário promover alterações no arquivo de configuração do AppServer(appserver.ini).
Foi criada chave a tlppdata, ela deve ser incluída na sessão do HttpServer que irá passar a validar o acesso às API’s através deste protocolo.
Abaixo veremos um exemplo onde foi configurada uma porta específica para responder às requisições com validação de acesso pelo oAuth2:
[HTTPSERVER] Enable=1 log=0 Servers=HTTPS_OAUTH2_47500_TLPPCORE [HTTPS_OAUTH2_47500_TLPPCORE] hostname=localhost port=47500 locations=HTTPS_ROOT_OAUTH2_47500 ContentTypes=CT_HTPP SslCertificate=_certs\cloud_cert_with_no_chain.pem SslCertificateKey=_certs\cloud_key.pem Charset=UTF-8 tlppdata={"Authorization":{"scheme":"oAuth2","onAuth":"", "onAuthNoCheckUri":"u_noCheckUri", "onAuthparams":"u_paramsProvider"}} [HTTPS_ROOT_OAUTH2_47500] Path=/rest RootPath=root/web DefaultPage=index.html AllowMethods=GET, HEAD, POST, PUT, DELETE, PATCH, OPTIONS ThreadPool=THREAD_POOL_OAUTH2_47500 [THREAD_POOL_OAUTH2_47500] Environment=TLPPCORE MinThreads=1 MaxThreads=2 MinFreeThreads=1 GrowthFactor=1 InactiveTimeout=30000 AcceptTimeout=10000
A chave tlppdata é onde devem ser configuradas as funções necessárias para o correto funcionamento do oAuth2 TlppCore.
Ela possui o formato Json, portanto sua sintaxe deve seguir o modelo de {“key”:”value”} caso contrário, os valores não serão lidos e será apontado erro de configuração no momento da requisição ou na validação dos tokens.
Abaixo veremos o detalhamento de cada uma das chaves e seus respectivos valores:
- "Authorization" -> Indica que nesta porta há um protocolo de autorização. A partir do momento que esta key foi declarada o server exigirá as demais chaves.
- "scheme" -> Deve ser declarado o protocolo de autorização no caso : "oAuth2". Este parâmetro é obrigatório, não pode ser deixado em branco/null e caso seja colocado um valor diferente de "oAuth2" ou "oAuth", será apresentado erro na utilização do endpoint.
- "onAuth" -> Inserir o nome da função que irá realizar a checagem do token assim que chegar a requisição a uma API. Caso seu valor seja declarada : "" (em branco) será utilizada a função padrão TlppCore para validação do access token .
- "onAuthNoCheckUri" -> Declarar a função responsável por incluir a lista com os endpoints que não devem ser validados pelo oAuth2. Caso seja declarada : "" (em branco) todos os endpoints exigirão o access token e serão validados.
- "onAuthparams" -> Declarar a função responsável por enviar os parâmetros privados do cliente para composição e validação dos tokens(access/refresh). O valor desta chave é obrigatório, não pode ser deixado em branco/null.
Observação
É ALTAMENTE recomendado o uso de uma porta HTTPS com protocolo SSL por conta da segurança no tráfego de informações, evitando inclusive ataques do tipo: man-in-the-midle(MITM)