O Events Hub permite que você use um servidor externo para validar client ID e/ou tokens de acesso dos publicadores que enviam requisições ao Events Hub.
Uma das opções é utilizar a Sensedia API Platform para fazer essa validação.
NOTEClientes do Sensedia API Management v5: para validar client ID e/ou tokens de acesso dos publicadores, você deverá importar a API de autorização do Events Hub.
A gente explica: imagine que você está organizando um evento em um local. Você quer que apenas pessoas autorizadas entrem. Então, você coloca um segurança na entrada para verificar a identidade das pessoas. O servidor de autorização atua da mesma forma. Você seleciona o tipo de validação que quer fazer e ele se certifica que a validação seja cumprida.
Na página de Policies, você pode criar políticas de segurança para aplicar aos handlers.
A configuração de URLs de autorização é feita por contexto. Ele é um dos marcadores da URL de publicação de eventos, formada por:
URL base
+context
+handler
+topic
.
Existem 5 interceptores disponíveis e 4 precisam do servidor de autorização de publicadores para funcionar. São eles:
Access Token Validation
Client ID Validation
OAuth Validation
JWT Validation
Ao selecionar qualquer um deles, você precisa configurar a URL de autorização na tela Authorizations.
Para utilizar a Sensedia API Platform como servidor de validação das políticas:
Acesse API Design > API Catalog e busque por API Events Hub Authorization.
Na API Events Hub Authorization, vá até a seção Environments.
Escolha o ambiente que deseja configurar, clique no ícone de link e copie a URL.
Vá até a seção Resources and Operations e copie o path POST
do tipo de interceptor que utilizará.
Cole o path do interceptor no final da URL do ambiente. Esta será a URL da sua autorização.
Com a URL completa copiada, acesse Events Hub > Authorizations e encontre o contexto que será validado por esta autorização.
Clique no ícone de adicionar, cole a URL da autorização e salve.
TIPPara cadastrar um contexto de teste para a autorização, na seção Environments, copie o link do seu ambiente de teste.
A seção Resources and Operations está dividida entre OAuth e JWT. Atenção ao copiar o path da sua URL:
A URL da autorização deve ser gerada respeitando as políticas inseridas no contexto.
Se inseriu interceptores de OAuth Validation, copie o path de OAuth.
Se inseriu interceptores de JWT Validation, copie o path de JWT.
Consulte como configurar os interceptores disponíveis:
O interceptor Client ID Validation requer uma validação simples de client ID.
NOTEAo cadastrar este interceptor para uma política, você precisa definir o nome que será usado para passar o valor de Client ID (por exemplo, client_id) e onde será passado na requisição (cookie, header, header ou cookie, query param ou any).
Confira o passo a passo para configurar um Client ID Validation:
Na Sensedia API Platform:
Acesse Consumers > APPS e clique em + Create APP.
Na aba APIS AND PLANS, busque por Events Hub Authorization 1.0 e selecione-a no botão SELECT ALL PLANS.
Clique em PUBLISH YOUR APP.
No Events Hub:
Com a APP salva, acesse a tela Publishers.
Coloque o cursor sobre o botão + e clique em Import From API Platform.
Encontre a APP cadastrada e clique em SAVE.
Clique em ADD ENABLED TOPICS e vincule o publicador ao tópico desejado.
Habilite o contexto que será validado pelo interceptor clicando em . Se não habilitar nenhum, a validação não funcionará.
Na tela de Handler, encontre o que cadastrou para essa validação.
Na aba Topics, copie a URL do contexto habilitado para o interceptor de Client ID.
No Postman:
No POST
, cole a URL do seu contexto.
Insira o parâmetro de client ID no header da requisição com o nome igual ao que cadastrou para a política (ex: client_id
) e clique em Send.
Verifique se a requisição foi bem-sucedida no ícone de status do handler.
O interceptor Access Token Validation requer a validação de um access token. Ele deve ser obtido usando o fluxo OAuth escolhido pelo publicador.
NOTEAo cadastrar este interceptor para uma política, você precisa definir o nome que será usado para passar o valor de access token (por exemplo, access_token) e onde será passado na requisição (cookie, header, header ou cookie, query param ou any).
Confira o passo a passo para configurar um Access Token Validation:
Na Sensedia API Platform:
Acesse Consumers > APPS e clique em + Create APP.
Na aba APIS AND PLANS, busque por Events Hub Authorization 1.0 e selecione-a no botão SELECT ALL PLANS.
Clique em PUBLISH YOUR APP.
NOTESe você já tem uma APP com plano vinculado à API Events Hub Authorization 1.0, você não precisa fazer isso novamente.
No Postman
Gere o access token:
Para obter o token, você deve fazer uma requisição à API OAuth implantada na sua plataforma. Vamos ensinar como fazer isso usando o fluxo client-credentials.
TIPPara entender os outros fluxos disponíveis, acesse a doumentação OAUTH 2.0: fluxos de obtenção de access token.
Faça uma requisição POST
para o endpoint <url-do-gateway>/oauth/access-token
.
No header, passe:
Exemplo de header com o client_id
e o client_secret
em Base64:
No body, passe o grant_type
no formato x-www-form-urlencoded
:
O access token será retornado no body da requisição, como no exemplo abaixo:
Teste a política:
Copie a URL do seu contexto e cole no POST
.
Insira o parâmetro de access token no header da requisição, com o nome igual ao que cadastrou para a política (ex: access_token
).
Clique em Send.
Verifique se a requisição foi bem-sucedida no ícone de status do handler.
O interceptor OAuth Validation requer a validação de client ID
e access token
.
Se ainda não configurou, veja os tópicos:
Client ID Validation
Access Token Validation
Os valores de client ID e access token devem ser passados no header da requisição.
Testando a política no Postman:
Copie a URL do seu contexto e cole no POST
.
Cole no header o valor do seu client ID.
Cole no header o valor do seu access token.
Clique em Send.
Verifique se a requisição foi bem-sucedida no ícone de status do handler.
O interceptor JWT Validation requer a validação de um token JWT que deve ser obtido pelo fluxo JWT de OAuth.
NOTEAo cadastrar este interceptor para uma política, você precisa definir o nome que será usado para passar o valor de access token (por exemplo, access_token) e onde será passado na requisição (header, default JWT header ou query param).
WARNINGPara que este interceptor funcione, você deve cadastrar a URL da autorização JWT do seu contexto na tela de Authorizations. Veja como obter a URL de autorização usando a Sensedia API Platform.
Confira o passo a passo para configurar um JWT Validation:
Na Sensedia API Platform:
Acesse Consumers > APPS e clique em + Create APP.
Na aba APIS AND PLANS, busque por Events Hub Authorization 1.0 e selecione-a no botão SELECT ALL PLANS.
Clique em PUBLISH YOUR APP.
NOTESe você já tem uma APP com plano vinculado à API Events Hub Authorization 1.0, você não precisa fazer isso novamente.
No Postman:
Gere o code
:
Para obter o token, você precisa gerar o code
fazendo uma requisição à API OAuth implantada na sua plataforma.
Faça uma requisição POST
para o endpoint <url-do-gateway>/oauth/grant-code
.
No header, passe:
No body, passe as informações abaixo. Lembre-se de substituir o client ID do exemplo pelo da sua APP.
TIPA redirect_uri precisa ser preenchida com uma URL. Você pode inserir, por exemplo: "http://teste.com.br".
Na resposta, será retornado o code
após o sinal de =, como no exemplo abaixo:
Com o code
copiado, gere o token JWT:
Faça uma requisição POST
para o endpoint <url-do-gateway>/oauth/access-token
.
No header, passe:
No body, selecione o formato json
e passe as informações abaixo, com o número do code
gerado na requisição anterior:
Teste a política:
Copie a URL do seu contexto e cole no POST
.
Cole no header o valor do seu token JWT.
Clique em Send.
Verifique se a requisição foi bem-sucedida no ícone de status do handler.
Nosso site utiliza cookies para habilitar funcionalidades essenciais de avaliação e notificações. Não utilizamos cookies de rastreamento para publicidade ou análise de terceiros.Saiba mais