Autenticação personalizada no Aplicativos Web Estáticos do Azure

O Aplicativos Web Estáticos do Azure fornece autenticação gerenciada que usa registros de provedor gerenciados pelo Azure. Para habilitar mais flexibilidade no registro, você pode substituir os padrões por um registro personalizado.

  • A autenticação personalizada também permite configurar provedores personalizados que suportam OpenID Connect. Essa configuração permite o registro de vários provedores externos.

  • O uso de registros personalizados desabilita todos os provedores pré-configurados.

Observação

A autenticação personalizada só está disponível no plano Standard do Aplicativos Web Estáticos do Azure.

Configurar um provedor de identidade personalizado

Os provedores de identidade personalizados são configuradas na seção auth do arquivo de configuração.

Para evitar colocar segredos no controle do código-fonte, a configuração procura na configuração de aplicativo por um nome correspondente no arquivo de configuração. Você também pode optar por armazenar segredos no Azure Key Vault.

Para criar o registro, comece criando as seguintes configurações de aplicativo:

Nome da Configuração Valor
AZURE_CLIENT_ID A ID do aplicativo (cliente) para o registro do aplicativo Microsoft Entra.
AZURE_CLIENT_SECRET O segredo do cliente para o registro do aplicativo Microsoft Entra.

Em seguida, use o exemplo a seguir para configurar o provedor no arquivo de configuração.

Os provedores do Microsoft Entra estão disponíveis em duas versões diferentes. A versão 1 define explicitamente userDetailsClaim, que permite que a carga retorne as informações do usuário. Por outro lado, a versão 2 retorna informações de usuário por padrão e é designada por v2.0 na URL openIdIssuer.

Microsoft Entra Versão 1

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Certifique-se de substituir <TENANT_ID> por sua ID de locatário do Microsoft Entra.

Microsoft Entra Versão 2

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Certifique-se de substituir <TENANT_ID> por sua ID de locatário do Microsoft Entra.

Para obter mais informações sobre como configurar a ID do Microsoft Entra, consulte a documentação de Autenticação/Autorização do Serviço de Aplicativo sobre como usar um registro existente.

Para configurar quais contas podem entrar, consulte Modificar as contas com suporte em um aplicativo e Restringir seu aplicativo Microsoft Entra a um conjunto de usuários em um locatário do Microsoft Entra.

Observação

Enquanto a seção de configuração do Microsoft Entra ID é azureActiveDirectory, a plataforma aliases isso para aad nas URLs para login, logout e limpeza de informações do usuário. Consulte a seção autenticação e autorização para obter mais informações.

Retornos de chamada de autenticação

Os provedores de identidade exigem uma URL de redirecionamento para concluir a solicitação de logon ou logout. A maioria dos provedores exige que você adicione as URLs de retorno de chamada a uma lista de permitir. Os pontos de extremidade a seguir estão disponíveis como destinos de redirecionamento.

Tipo Padrão de URL
Logon https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
Logout https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

Se você estiver usando o Microsoft Entra ID, use aad como o valor para o <PROVIDER_NAME_IN_CONFIG> espaço reservado.

Observação

Esses URLs são fornecidos por Aplicativos Web Estáticos do Azure para receber a resposta do provedor de autenticação, não é necessário criar páginas nessas rotas.

Detalhes de logon, logoff e usuário

Para usar um provedor de identidade personalizado, use os padrões de URL a seguir.

Ação Padrão
Logon /.auth/login/<PROVIDER_NAME_IN_CONFIG>
Logout /.auth/logout
Detalhes do usuário /.auth/me
Limpar detalhes do usuário /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

Se você estiver usando o Microsoft Entra ID, use aad como o valor para o <PROVIDER_NAME_IN_CONFIG> espaço reservado.

Gerenciar funções

Cada usuário que acessa um aplicativo Web estático pertence a uma ou mais funções. Há duas funções internas às quais os usuários podem pertencer:

  • anônimo: todos os usuários pertencem automaticamente à função anônima .
  • autenticado: todos os usuários que estão conectados pertencem à função autenticado.

Além das funções internas, você pode atribuir funções personalizadas aos usuários e referenciá-las no arquivo staticwebapp.config.json.

Adicionar um usuário a uma função

Para adicionar um usuário a uma função, você gera convites que permitem que você associe usuários a funções específicas. As funções são definidas e mantidas no arquivo staticwebapp.config.json.

Criar um convite

Os convites são específicos para provedores de autorização individuais, portanto, considere as necessidades do seu aplicativo à medida que você seleciona quais provedores serão compatíveis. Alguns provedores expõem o endereço de email de um usuário, enquanto outros fornecem apenas o nome de usuário do site.

Provedor de autorização Expor
ID do Microsoft Entra endereço de email
GitHub nome de usuário
Twitter nome de usuário

Execute as etapas a seguir para criar um convite.

  1. Acesse um recurso do serviço Aplicativos Web Estáticos no portal do Azure.
  2. Em Configurações, selecione Gerenciamento de funções.
  3. Selecione Convidar.
  4. Selecione um Provedor de autorização na lista de opções.
  5. Adicione o nome de usuário ou o endereço de email do destinatário na caixa Detalhes do convidado.
    • Para o GitHub e o Twitter, insira o nome de usuário. Para todos os outros, insira o endereço de email do destinatário.
  6. Selecione o domínio do seu site estático no menu suspenso Domínio.
    • O domínio que você selecionar é o domínio que aparece no convite. Se você tiver um domínio personalizado associado ao seu site, escolha o domínio personalizado.
  7. Adicione uma lista separada por vírgulas de nomes de função na caixa Função.
  8. Insira o número máximo de horas que você deseja que o convite permaneça válido.
    • O limite máximo possível é de 168 horas, que corresponde a sete dias.
  9. Selecione Gerar.
  10. Copie o link da caixa Link do convite.
  11. Envie por email o link do convite ao usuário que você está concedendo acesso.

Quando o usuário seleciona o link no convite, ele será solicitado a entrar com a conta correspondente dele. Uma vez conectado com êxito, o usuário será associado às funções selecionadas.

Cuidado

Certifique-se de que suas regras de rota não entrem em conflito com os provedores de autenticação selecionados. Bloquear um provedor com uma regra de rota impede que os usuários aceitem convites.

Atualizar atribuições de função

  1. Acesse um recurso do serviço Aplicativos Web Estáticos no portal do Azure.
  2. Em Configurações, selecione Gerenciamento de funções.
  3. Selecione o usuário na lista.
  4. Edite a lista de funções na caixa Função.
  5. Selecione Atualizar.

Remover usuário

  1. Acesse um recurso do serviço Aplicativos Web Estáticos no portal do Azure.
  2. Em Configurações, selecione Gerenciamento de funções.
  3. Localize o usuário na lista.
  4. Marque a caixa de seleção na linha do usuário.
  5. Selecione Excluir.

Quando remover um usuário, tenha em mente os seguintes itens:

  • A remoção de um usuário invalida suas permissões.
  • A propagação em todo o mundo poderá levar alguns minutos.
  • Se o usuário for adicionado de volta ao aplicativo, a userId é alterada.

Próximas etapas