Authorizations

A tela Authorizations permite configurar endpoints para validar client ID e/ou tokens de acesso dos publicadores de eventos, permitindo com que eles enviem requisições ao Events Hub.

A definição de quais requisições necessitarão de autorização é feita pela inclusão dos interceptores de segurança OAuth Validation, JWT Validation, Client ID Validation e Access Token Validation nas políticas aplicadas a handlers. Quando pelo menos um desses interceptores for utilizado, o Events Hub enviará requisições às URLs de autorização configuradas nesta tela para validar os publicadores e, com isso, aceitar suas requisições.

Funcionamento

A configuração de URLs de autorização é feita a nível de contexto, que é um dos marcadores da URL de publicação de eventos — composta por: URL base + context + handler + topic.

A configuração de autorização a nível de contexto facilita com que eventos de cenários diferentes (por exemplo, eventos "produtivos" e eventos de teste) sejam enviados para um mesmo tópico, como no caso de exemplo abaixo.

Exemplo de uso

Imagine que você quer testar alguns tópicos já expostos a publicadores e subscritores parceiros, mas deseja usar um mock de autorização para os testes ao invés dos endpoints de autorização produtivos.

Nesse caso, você pode criar um contexto para seus testes (chamado, por exemplo, "Testing") e habilitar esse contexto para os tópicos que desejar. Então, você pode vincular os publicadores e subscritores que quiser para que enviem e recebam eventos dos respectivos tópicos dentro do contexto "Testing". Por fim, na configuração da tela Authorizations, você pode incluir um mock de autorização de OAuth e/ou JWT para o contexto "Testing".

Pronto! Agora, os publicadores que enviarem requisições para tópicos no contexto "Testing" serão validados pelo mock configurado. Enquanto isso, os publicadores que enviarem eventos para os mesmos tópicos mas no contexto padrão ("Default"), serão validados pela URL configurada para esse contexto.

É importante ter em mente que os contextos são divisões lógicas que têm o objetivo de facilitar a criação e manutenção de tópicos, viabilizando sua reutilização em diferentes cenários. Os contextos não são ambientes fisicamente separados uns dos outros.

Isso quer dizer que, se você usa o contexto "Default" para eventos produtivos e o contexto "Testing" para eventos de teste, consegue controlar os publicadores, subscritores e endpoints de autorização para cada contexto, mas todos os eventos recebidos e distribuídos no Events Hub compartilharão a mesma infraestrutura.

Testes que onerem a infraestrutura, ainda que feitos no contexto "Testing", poderão afetar o recebimento e distribuição de eventos nos outros contextos.

Veja mais sobre o funcionamento dos contextos aqui.

Configuração

A tela Authorizations contém duas seções: OAUTH e JWT. Para cada uma, exibe todos os contextos cadastrados no Events Hub, informando a URL de autorização que está definida para cada um:

authorizations

Se nenhum endpoint de autorização houver sido cadastrado para o contexto desejado, haverá o ícone icon add1 na coluna ACTIONS para adicionar uma URL.

Se já houver uma URL cadastrada, o ícone icon edit permite editá-la e o ícone icon delete permite excluí-la.

Se não houver nenhuma URL de autorização cadastrada para um contexto ou ela for excluída, as publicações enviadas para esse contexto em tópicos que utilizem os interceptores de segurança afetados não serão aceitas, retornando código de estado 401.

No caso de OAuth, isso inviabilizará as publicações para tópicos interceptados por OAuth Validation, Access Token Validation ou Client ID Validation. No caso de JWT, isso inviabilizará as publicações para tópicos interceptados pelo JWT Validation.

Vale lembrar que os interceptores são configurados em políticas, que, por sua vez, são aplicadas a handlers no processo de criação ou edição de handlers. Todos os tópicos agrupados em um handler utilizam os interceptores configurados na política aplicada ao handler.

Para adicionar uma URL (tanto para OAuth quanto para JWT), clique no ícone icon add1 da coluna ACTIONS, que abrirá uma janela modal para a inclusão do endpoint:

authorizations addurl
Thanks for your feedback!
EDIT
How useful was this article to you?