Segurança dos Hubs de Notificação
Visão geral
Este tópico descreve o modelo de segurança dos Hubs de notificação do Azure.
Segurança de assinatura de acesso compartilhado
Os Hubs de Notificação implementam um esquema de segurança de nível de entidade chamado Assinatura de Acesso Compartilhado (SAS). Cada regra contém um nome, um valor de chave (segredo compartilhado) e um conjunto de direitos, conforme explicado na seção Declarações de segurança.
Ao criar um hub, duas regras são automaticamente criadas: uma com direitos de Escuta (que usa o aplicativo cliente) e outra com todos os direitos (que usa o back-end):
- DefaultListenSharedAccessSignature: concede somente a permissão de Escuta.
- DefaultFullSharedAccessSignature: concede permissões de Escuta, Gerenciamento e Envio. Essa política deverá ser usada somente no back-end do aplicativo. Não usá-la em aplicativos cliente; Use uma política somente com acesso de Escuta. Para criar uma nova política de acesso personalizada com um novo token SAS, veja Tokens SAS para políticas de acesso mais adiante neste artigo.
Ao realizar o gerenciamento de registro dos aplicativos clientes, se as informações enviadas por meio de notificações não forem confidenciais (por exemplo, atualizações de clima), uma maneira comum de acessar um Hub de notificação é fornecer o valor da chave da regra de acesso de somente escuta para o aplicativo cliente e fornecer o valor de chave da regra de acesso completo para o back-end do aplicativo.
Os aplicativos não devem inserir o valor de chave em aplicativos cliente da Windows Store; em vez disso, faça com que o aplicativo cliente o recupere do back-end do aplicativo na inicialização.
A chave de acesso de Escuta permite que um aplicativo cliente seja registrado para qualquer marca. Se o aplicativo tiver que restringir registros de marcas específicas para determinados clientes (por exemplo, quando as marcas representam IDs de usuário), o back-end do aplicativo deverá executar os registros. Para mais informações, veja Gerenciamento de registros. Observe que, dessa maneira, o aplicativo cliente não terá acesso direto aos Hubs de notificação.
Declarações de segurança
Semelhantes a outras entidades, as operações do Hub de Notificação são permitidas para três declarações de segurança: Escuta, Envio e Gerenciamento.
Declaração | Descrição | Operações permitidas |
---|---|---|
Escutar | Criar/atualizar, ler e excluir registros simples | Criar/Atualizar o registro Ler registro Ler todos os registros para um identificador Excluir registro |
Enviar | Enviar mensagens ao Hub de Notificação | Enviar mensagem |
Gerenciar | CRUDs nos Hubs de notificação (incluindo atualização de credenciais PNS e chaves de segurança) e ler registros baseados em marcas | Criar/Atualizar/Ler/Gravar/Excluir hubs Ler registros por marca |
Os Hubs de Notificação aceitam tokens SAS gerados com chaves compartilhadas configuradas diretamente no hub.
Não é possível enviar uma notificação para mais de um namespace. Os namespaces são contêineres lógicos para Hubs de Notificação e não estão envolvidos no envio de notificações.
Use as políticas de acesso no nível de namespace (credenciais) para operações no nível de namespace; por exemplo: listar hubs, criar ou excluir hubs etc. Somente as políticas de acesso no nível do hub permitem enviar notificações.
Tokens SAS para políticas de acesso
Para criar uma nova declaração de segurança ou para exibir as chaves SAS existentes, faça o seguinte:
- Entre no portal do Azure.
- Selecione Todos os recursos.
- Selecione o nome do Hub de Notificação para o qual você deseja criar a declaração ou a exibição da chave SAS.
- No menu à esquerda, selecione Políticas de Acesso.
- Selecione Nova Política para criar uma nova declaração de segurança. Dê um nome à política e selecione as permissões que deseja conceder. Depois, selecione OK.
- A cadeia de conexão completa (incluindo a nova chave SAS) é exibida na janela Políticas de Acesso. Você pode copiar essa cadeia de caracteres para a área de transferência para uso posterior.
Para extrair a chave SAS de uma política específica, selecione o botão Copiar ao lado da política que contém a chave SAS desejada. Cole esse valor em um local temporário e copie a parte da chave SAS da cadeia de caracteres de conexão. Este exemplo usa um namespace dos Hubs de Notificação chamado mytestnamespace1 e uma política chamada policy2. A chave SAS é o valor próximo ao final da cadeia de caracteres, especificado por SharedAccessKey:
Endpoint=sb://mytestnamespace1.servicebus.windows.net/;SharedAccessKeyName=policy2;SharedAccessKey=<SAS key value here>