Usar uma identidade gerenciada
Esse artigo mostra como criar e usar uma identidade gerenciada no Azure Web PubSub.
Importante
O Azure Web PubSub pode oferecer suporte apenas a uma identidade gerenciada. Você pode adicionar ou uma identidade atribuída pelo sistema ou uma identidade atribuída pelo usuário.
Adicionar uma identidade atribuída pelo sistema
Para configurar uma identidade gerenciada no portal do Azure, crie uma instância do Azure Web PubSub e ative o recurso.
No portal do Azure, crie um recurso Web PubSub. Acesse o recurso no portal.
No menu à esquerda, selecione Identidade.
Selecione a aba Atribuído pelo sistema e defina Status como Ligado. Selecione Salvar.
Adicionar uma identidade atribuída pelo usuário
Para criar um recurso Web PubSub usando uma identidade atribuída pelo usuário, crie a identidade e adicione o identificador de recurso da identidade ao seu serviço.
Crie um recurso de identidade gerenciada atribuído pelo usuário.
No portal do Azure, crie um recurso Web PubSub. Acesse o recurso no portal.
No menu à esquerda, selecione Identidade.
Selecione a guia Atribuído pelo usuário e selecione Adicionar.
Procure a identidade que você criou e selecione-a. Selecione Adicionar.
Usar uma identidade gerenciada em cenários de eventos de cliente
O Azure Web PubSub é um serviço totalmente gerenciado, portanto, você não pode usar uma identidade gerenciada para obter tokens manualmente. Em vez disso, quando o Web PubSub envia eventos para um manipulador de eventos, ele usa a identidade gerenciada para obter um token de acesso. O serviço então define o token de acesso no cabeçalho Authorization
da solicitação HTTP.
Configurar autenticação de identidade gerenciada para um manipulador de eventos
Adicione uma identidade atribuída pelo sistema ou uma identidade atribuída pelo usuário.
Vá para Configurar configurações do hub e adicione ou edite um manipulador de eventos upstream.
Em Autenticação, selecione Usar identidade gerenciada e, em seguida, marque a caixa de seleção Especificar o público do token emitido. O público se torna a declaração
aud
no token de acesso. A reivindicação pode ser parte da validação do seu manipulador de eventos.Para autenticação, você pode escolher uma dessas opções:
- Use um aplicativo Microsoft Entra existente. O ID do aplicativo escolhido é usado.
- Use o URI do ID do aplicativo da entidade de serviço.
Importante
Usar um recurso vazio na verdade adquire um alvo de token para o Microsoft Graph. Atualmente, o Microsoft Graph habilita a criptografia de tokens, portanto, não há suporte para que um aplicativo autentique o token de outra forma que não seja com o Microsoft Graph. Você sempre deve criar um principal de serviço para representar seu destino upstream. Defina o valor ID do aplicativo ou URI do ID do aplicativo para a entidade de serviço que você criou.
Autenticação em um aplicativo do Azure Functions
Você pode definir facilmente a validação de acesso para um aplicativo Functions sem fazer alterações no código.
No portal do Azure, acesse o aplicativo Functions.
No menu à esquerda, selecione Autenticação.
Selecione Adicionar um provedor de identidade.
Na guia Básico, para Provedor de identidade, selecione Microsoft.
Para Ação a ser tomada quando a solicitação não for autenticada, selecione Fazer login com o ID do Microsoft Entra.
A opção para criar um registro é selecionada por padrão. É possível alterar o nome do registro. Para obter mais informações sobre como habilitar um provedor Microsoft Entra, veja Configurar seu aplicativo Serviço de Aplicativo do Azure ou Azure Functions para usar um login de ID Microsoft Entra.
Acesse seu recurso Web PubSub e adicione uma identidade atribuída pelo sistema ou uma identidade atribuída pelo usuário.
No menu à esquerda do seu recurso Web PubSub, selecione Configurações.
Selecione Editar para editar as configurações do hub e, em seguida, selecione Editar para editar as configurações do manipulador de eventos. Em Autenticação, selecione Usar identidade gerenciada e marque a caixa de seleção Selecionar entre aplicativos existentes. Selecione o aplicativo que você criou.
Depois de configurar essas configurações, o aplicativo Functions rejeita solicitações que não têm um token de acesso no cabeçalho.
Validar um token de acesso
Se você não estiver usando o recurso Web Apps do Serviço de Aplicativo do Azure ou do Azure Functions, também poderá validar o token.
O token no cabeçalho Authorization
é um token de acesso da plataforma de identidade da Microsoft.
Para validar um token de acesso, seu aplicativo também deve validar o público e o token de assinatura. Os tokens de assinatura devem ser validados em relação aos valores no documento de descoberta do OpenID. Para ver um exemplo, confira a versão independente de locatário do documento.
O middleware Microsoft Entra tem recursos integrados para validar tokens de acesso. Você pode navegar em nossos exemplos para encontrar um que esteja escrito no idioma que você deseja usar.
Fornecemos bibliotecas e exemplos de código que mostram como lidar com a validação de tokens. Várias bibliotecas parceiras de código aberto também estão disponíveis para validação de JSON Web Token (JWT). Há pelo menos uma opção de biblioteca para quase todas as plataformas e idiomas. Para obter mais informações sobre bibliotecas de autorização do Microsoft Entra e exemplos de código, consulte bibliotecas de autenticação da plataforma de identidade da Microsoft.
Se o manipulador de eventos hospedar no Azure Functions ou Web Apps, uma maneira fácil é configurar o login do Microsoft Entra.
Use uma identidade gerenciada para uma referência de cofre de chaves
O Web PubSub pode acessar um cofre de chaves para obter um segredo usando uma identidade gerenciada.
Adicione uma identidade atribuída pelo sistema ou uma identidade atribuída pelo usuário para o Azure Web PubSub.
No cofre de chaves, conceda permissões secretas de leitura para a identidade gerenciada usando políticas de acesso. Para obter mais informações, veja Atribuir uma política de acesso ao cofre de chaves no portal do Azure.
Atualmente, esse recurso pode ser usado no seguinte cenário:
- Use a sintaxe
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}
para obter segredos de um cofre de chaves na configuração do modelo de URL do manipulador de eventos.