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

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

  • A autenticação personalizada também permite configurar provedores personalizados que suportam o OpenID Connect. Esta configuração permite o registo de múltiplos fornecedores externos.

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

Nota

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

Configurar um provedor de identidade personalizado

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

Para evitar colocar segredos no controle do código-fonte, a configuração examina as configurações do aplicativo para obter um nome correspondente no arquivo de configuração. Você também pode optar por armazenar seus segredos no Cofre da Chave do Azure.

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

Nome da Definiçã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 o userDetailsClaim, que permite que a carga retorne informações do usuário. Por outro lado, a versão 2 retorna informações do openIdIssuer usuário por padrão e é designada por v2.0 na URL.

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 o Microsoft Entra ID, 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 suportadas por um aplicativo e Restringir seu aplicativo Microsoft Entra a um conjunto de usuários em um locatário do Microsoft Entra.

Nota

Enquanto a seção de configuração para o Microsoft Entra ID é azureActiveDirectory, a plataforma aliases isso nos aad URLs para login, logout e limpeza de informações do usuário. Consulte a seção de 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 login ou logout. A maioria dos provedores exige que você adicione as URLs de retorno de chamada a uma lista de permissões. Os seguintes pontos de extremidade estão disponíveis como destinos de redirecionamento.

Tipo Padrão de URL
Iniciar Sessão https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
Fim de Sessão 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.

Nota

Essas URLs são fornecidas pelos Aplicativos Web Estáticos do Azure para receber a resposta do provedor de autenticação, você não precisa criar páginas nessas rotas.

Login, logout e detalhes do usuário

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

Ação Padrão
Iniciar Sessão /.auth/login/<PROVIDER_NAME_IN_CONFIG>
Fim de Sessão /.auth/logout
Detalhes do utilizador /.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.

Gerir 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 autenticada .

Além das funções internas, você pode atribuir funções personalizadas aos usuários e fazer referência a elas 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 associar 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 ao selecionar quais provedores oferecer suporte. Alguns provedores expõem o endereço de e-mail de um usuário, enquanto outros fornecem apenas o nome de usuário do site.

Provedor de autorização Expõe
Microsoft Entra ID endereço de e-mail
GitHub nome de utilizador
Twitter nome de utilizador

Siga as etapas a seguir para criar um convite.

  1. Vá para um recurso de 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 endereço de e-mail do destinatário na caixa Detalhes do convidado.
    • Para GitHub e Twitter, digite o nome de usuário. Para todos os outros, insira o endereço de e-mail do destinatário.
  6. Selecione o domínio do seu site estático no menu suspenso Domínio .
    • O domínio selecionado é 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. Introduza o número máximo de horas que pretende que o convite permaneça válido.
    • O limite máximo possível é de 168 horas, ou seja, sete dias.
  9. Selecione Gerar.
  10. Copie o link da caixa Convidar link .
  11. Envie o link de convite por e-mail para o usuário ao qual você está concedendo acesso.

Quando o usuário seleciona o link no convite, ele é solicitado a entrar com a conta correspondente. Depois de entrar com êxito, o usuário é associado às funções selecionadas.

Atenção

Verifique se as regras de rota não entram 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 as atribuições de funções

  1. Vá para um recurso de 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 utilizador

  1. Vá para um recurso de 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 Eliminar.

Ao remover um usuário, lembre-se dos seguintes itens:

  • Remover um usuário invalida suas permissões.
  • A propagação mundial pode demorar alguns minutos.
  • Se o usuário for adicionado novamente ao aplicativo, as userId alterações.

Próximos passos