Conectar usuários em um aplicativo de página única (SPA) de exemplo em React
Este guia usa um exemplo de SPA (aplicativo de página única) em React para demonstrar como adicionar autenticação a um SPA. Esse SPA permite que os usuários entrem e saiam usando seu locatário externo. O exemplo usa a Biblioteca de Autenticação da Microsoft para JavaScript (MSAL.js) para lidar com a autenticação.
Pré-requisitos
- Visual Studio Code ou outro editor de código.
- Node.js.
- Um locatário externo. Para criar um, você pode utilizar um dos seguintes métodos:
- (Recomendado) Use a extensão de ID Externa do Microsoft Entra para configurar um locatário externo diretamente no Visual Studio Code.
- Crie um novo locatário externo no centro de administração do Microsoft Entra.
Registrar o SPA no centro de administração do Microsoft Entra
Para permitir a entrada de usuários com o Microsoft Entra no seu aplicativo, a ID externa do Microsoft Entra deve estar ciente do aplicativo criado. O registro do aplicativo estabelece uma relação de confiança entre o aplicativo e o Microsoft Entra. Quando você registra um aplicativo, o External ID gera um identificador exclusivo conhecido como ID do Aplicativo (cliente), um valor usado para identificar seu aplicativo ao criar solicitações de autenticação.
As etapas a seguir mostram como registrar seu aplicativo no centro de administração do Microsoft Entra:
Faça login no Centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de aplicativos.
Se tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o seu locatário externo no menu Diretórios + assinaturas.
Navegue até Identidade>Aplicativos>Registros do aplicativo.
Selecione + Novo Registro.
Na página Registrar um aplicativo que aparece;
- Insira um Nome de aplicativo relevante que será exibido aos usuários do aplicativo, por exemplo,ciam-client-app.
- Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
Selecione Registrar.
O painel Visão geral do aplicativo será exibido após o registro bem-sucedido. Grave a ID do aplicativo (cliente) que será usada no código-fonte do aplicativo.
Para especificar o tipo de aplicativo para o registro do aplicativo, siga estas etapas:
- Em Gerenciar, selecione Autenticação.
- Na página Configurações da plataforma, selecione Adicionar uma plataforma e, em seguida, selecione Aplicativo de página única.
- Para o Redirecionamento de URIs, insira
http://localhost:3000
. - Selecione Configurar para salvar as alterações.
Conceder consentimento do administrador
Após você registrar seu aplicativo, a permissão User.Read é atribuída a ele. No entanto, como o locatário é um locatário externo, os usuários do cliente não podem dar seu consentimento a essa permissão por conta própria. Você, como administrador, deve consentir com essa permissão em nome de todos os usuários no locatário:
Na página Registros de aplicativo, selecione o aplicativo que você criou (como ciam-client-app) para abrir sua página Visão geral.
Em Gerenciar, selecione Permissões de API.
- Selecione Dar consentimento de administrador para <nome do seu locatário> e selecione Sim.
- Selecione Atualizar a página e, a seguir verifique se Concedida para <nome do seu locatário> aparece no Status para a permissão.
Criar um fluxo de usuário
Siga estas etapas para criar um fluxo de usuário que um cliente possa usar para entrar ou se inscrever em um aplicativo.
Entre no Centro de administração do Microsoft Entra como pelo menos um Administrador de fluxo de usuário de ID externa.
Se você tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para seu locatário externo no menu Diretórios + assinaturas.
Navegue atéIdentidade>Identidades Externas>Fluxos do Usuário.
Selecione + Novo fluxo de usuário.
Na página Criar:
Insira um Nome para o fluxo de usuário, como SignInSignUpSample.
Na lista Provedores de identidade, selecione Contas de Email. Esse provedor de identidade permite que os usuários entrem ou se inscrevam usando seu endereço de email.
Em Contas de email, você pode selecionar uma das duas opções. Para este tutorial, selecione Email com senha.
- Email com senha: permite que novos usuários se inscrevam e entrem usando um endereço de email como o nome de entrada e uma senha como sua credencial de primeiro fator.
- Senha de uso único do email: permite que novos usuários se inscrevam e entrem usando um endereço de email como o nome de entrada e a senha de uso único de email como a credencial de primeiro fator. A senha de uso único de email deve estar habilitada no nível do locatário (Todos os Provedores de Identidade>Senha de uso único de email) para essa opção ficar disponível no nível do fluxo do usuário.
Em Atributos de usuário, escolha os atributos que você deseja coletar do usuário no momento da inscrição. Ao selecionar Mostrar mais, você pode escolher atributos e declarações para País/Região, Nome de Exibição e Código Postal. Selecione OK. (Os usuários só são solicitados a fornecer atributos quando se inscreverem pela primeira vez.)
Selecione Criar. O novo fluxo de usuário aparece na lista Fluxos de usuário. Se necessário, atualize a página.
Para habilitar a redefinição de senha self-service, use as etapas no artigo Habilitar redefinição de senha self-service.
Associar o SPA ao fluxo do usuário
Para que os usuários do cliente vejam a experiência de inscrição ou entrada ao usar seu aplicativo, você precisa associar seu aplicativo a um fluxo de usuário. Embora muitos aplicativos possam estar associados ao fluxo do usuário, um único aplicativo só pode estar associado a um único fluxo do usuário.
No menu da barra lateral, selecione Identidade.
Selecione Identidades Externas e Fluxos de usuário.
Na página Fluxos de usuário, selecione o Nome do fluxo de usuário criado anteriormente, por exemplo, SignInSignUpSample.
Em Usar, selecione Aplicativos.
Escolha Adicionar aplicativo.
Selecione o aplicativo na lista, como ciam-client-app, ou use a caixa de pesquisa para localizar o aplicativo e selecioná-lo.
Escolha Selecionar.
Depois de associar o aplicativo a um fluxo de usuário, é possível testar o fluxo de usuário simulando a experiência de inscrição ou entrada de um usuário com o aplicativo no centro de administração do Microsoft Entra. Para fazer isso, use as etapas em Testar seu fluxo de usuário de inscrição e entrada.
Clonar ou baixar o SPA de exemplo
Para obter o aplicativo de exemplo, você pode cloná-lo do GitHub ou baixá-lo como um arquivo .zip.
Para clonar o exemplo, abra um prompt de comando e navegue até onde deseja criar o projeto e insira o seguinte comando:
git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.git
Baixar o exemplo. Extraia-o para um caminho de arquivo em que o comprimento do nome seja menor que 260 caracteres.
Instalar as dependências do projeto
Abra uma janela de terminal no diretório raiz do projeto de exemplo e insira o seguinte snippet para navegar até a pasta do projeto:
cd 1-Authentication\1-sign-in-react\SPA
Instale as dependências do projeto:
npm install
Configurar o SPA de exemplo
Abra SPA\src\authConfig.js e substitua o seguinte pelos valores obtidos do centro de administração do Microsoft Entra:
Enter_the_Application_Id_Here
e substitua pela ID do Aplicativo (cliente) referente ao aplicativo registrado anteriormente.Enter_the_Tenant_Subdomain_Here
e substitua-o pelo subdomínio diretório (locatário). Por exemplo, se o domínio primário do locatário forcontoso.onmicrosoft.com
, usecontoso
. Se você não tiver o nome do locatário, saiba como ler os detalhes do locatário.
Salve o arquivo.
Executar seu projeto e entrar
Todos os snippets de código necessários foram adicionados, portanto, o aplicativo agora pode ser chamado e testado em um navegador da Web.
Abra um novo terminal selecione Terminal>Novo Terminal.
Execute o comando a seguir para iniciar o servidor Web.
cd 1-Authentication\1-sign-in-react\SPA npm start
Abra um navegador da Web e acesse
http://localhost:3000/
.Entre com uma conta registrada no locatário externo.
Uma vez conectado, o nome de exibição é mostrado ao lado do botão Sair.