Tutorial: Preparar um aplicativo JavaScript de página única para autenticação
Aplica-se a: Os arrendatários do Workforce
Inquilinos externos (saber mais)
Neste tutorial, você criará um aplicativo JavaScript de página única (SPA) e o preparará para autenticação usando a plataforma de identidade da Microsoft. Este tutorial demonstra como criar um SPA JavaScript usando npm
, criar arquivos necessários para autenticação e autorização e adicionar os detalhes do locatário ao código-fonte. O aplicativo pode ser usado para funcionários em um locatário de força de trabalho ou para clientes que usam um locatário externo.
Neste tutorial, você:
- Criar um novo projeto JavaScript
- Instalar pacotes necessários para autenticação
- Crie sua estrutura de arquivos e adicione código ao arquivo do servidor
- Adicione os detalhes do locatário ao arquivo de configuração de autenticação
Pré-requisitos
- inquilino do Workforce
- Inquilino externo
- Um trabalhador arrendatário. Você pode usar o seu diretório padrão ou configurar um novo inquilino.
- Registe uma nova aplicação no centro de administração do Microsoft Entra com a seguinte configuração. Para obter mais informações, consulte Registrar um aplicativo.
- Nome: identity-client-spa
- Tipos de conta suportados: Contas apenas neste diretório organizacional (Inquilino único).
- Configuração da plataforma: Aplicação de página única (SPA).
-
Redirecionar URI:
http://localhost:3000/
.
- Node.js.
- Visual Studio Code ou outro editor de código.
Criar um projeto JavaScript e instalar dependências
Abra o Visual Studio Code, selecione Arquivo>Abrir Pasta.... Navegue até o local para criar seu projeto e selecione-o.
Abra um novo terminal selecionando Terminal>Novo Terminal.
Execute o seguinte comando para criar um novo projeto JavaScript:
npm init -y
Crie pastas e arquivos adicionais para obter a seguinte estrutura de projeto:
└── public └── authConfig.js └── authPopup.js └── authRedirect.js └── claimUtils.js └── index.html └── signout.html └── styles.css └── ui.js └── server.js └── package.json
No Terminal, execute o seguinte comando para instalar as dependências necessárias para o projeto:
npm install express morgan @azure/msal-browser
Adicionar código ao arquivo do servidor
Express é uma estrutura de aplicação web para Node.js. Ele é usado para criar um servidor que hospeda o aplicativo. Morgan é o middleware que registra solicitações HTTP no console. O arquivo do servidor é usado para hospedar essas dependências e contém as rotas para o aplicativo. A autenticação e a autorização são tratadas pelo Microsoft Authentication Library for JavaScript (MSAL.js).
Adicione o seguinte código ao arquivo server.js:
const express = require('express'); const morgan = require('morgan'); const path = require('path'); const DEFAULT_PORT = process.env.PORT || 3000; // initialize express. const app = express(); // Configure morgan module to log all requests. app.use(morgan('dev')); // serve public assets. app.use(express.static('public')); // serve msal-browser module app.use(express.static(path.join(__dirname, "node_modules/@azure/msal-browser/lib"))); // set up a route for signout.html app.get('/signout', (req, res) => { res.sendFile(path.join(__dirname + '/public/signout.html')); }); // set up a route for redirect.html app.get('/redirect', (req, res) => { res.sendFile(path.join(__dirname + '/public/redirect.html')); }); // set up a route for index.html app.get('/', (req, res) => { res.sendFile(path.join(__dirname + '/index.html')); }); app.listen(DEFAULT_PORT, () => { console.log(`Sample app listening on port ${DEFAULT_PORT}!`); }); module.exports = app;
Neste código, a variável app é inicializada com o módulo express, que é usado para servir os ativos públicos. navegador MSAL é disponibilizado como um recurso estático e é usado para iniciar o fluxo de autenticação.
Adicionando os detalhes do locatário à configuração do MSAL
O arquivo authConfig.js contém as definições de configuração para o fluxo de autenticação e é usado para configurar MSAL.js com as configurações necessárias para autenticação.
Abra público/authConfig.js e adicione o seguinte código:
const msalConfig = { auth: { clientId: "Enter_the_Application_Id_Here", // This is the ONLY mandatory field that you need to supply authority: "https://login.microsoftonline.com/Enter_the_Tenant_Info_Here", // Replace the placeholder with your tenant info redirectUri: '/', // You must register this URI on App Registration. Defaults to window.location.href e.g. http://localhost:3000/ navigateToLoginRequestUrl: true, // If "true", will navigate back to the original request location before processing the auth code response. }, cache: { cacheLocation: 'sessionStorage', // Configures cache location. "sessionStorage" is more secure, but "localStorage" gives you SSO. storeAuthStateInCookie: false, // set this to true if you have to support IE }, system: { loggerOptions: { loggerCallback: (level, message, containsPii) => { if (containsPii) { return; } switch (level) { case msal.LogLevel.Error: console.error(message); return; case msal.LogLevel.Info: console.info(message); return; case msal.LogLevel.Verbose: console.debug(message); return; case msal.LogLevel.Warning: console.warn(message); return; } }, }, }, }; /** * Scopes you add here will be prompted for user consent during sign-in. * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request. * For more information about OIDC scopes, visit: * https://learn.microsoft.com/en-us/entra/identity-platform/permissions-consent-overview#openid-connect-scopes */ const loginRequest = { scopes: [], }; /** * An optional silentRequest object can be used to achieve silent SSO * between applications by providing a "login_hint" property. */ // const silentRequest = { // scopes: ["openid", "profile"], // loginHint: "example@domain.net" // };
Substitua os seguintes valores pelos valores do centro de administração do Entra:
- Encontre o valor
Enter_the_Application_Id_Here
e substitua-o pelo Application ID (clientId) do aplicativo que você registrou no centro de administração do Microsoft Entra. - Encontre o valor
Enter_the_Tenant_Info_Here
e substitua-o pelo ID do Locatário do locatário da força de trabalho que criaste no centro de administração do Microsoft Entra.
- Encontre o valor
Salve o arquivo.