La siguiente implementación de msal funciona sin problemas cuando la ejecuto en localhost. Pero cuando lo implemento en Azure App Service, el ID de cliente y/o el ID de inquilino parecen no estar definidos, incluso cuando intenté experimentar colocando las cadenas de ID directamente en el archivo. Aquí está el error que recibo cuando trato de hacer clic en el botón de inicio de sesión en producción:
GET https://login.microsoftonline.com/undefined/v2.0/.well-known/openid-configuration 400 (Bad Request)
Uncaught (in promise) ClientAuthError: endpoints_resolution_error: Error: could not resolve endpoints. Please check network and try again. Detail: ClientAuthError: openid_config_error: Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints. Attempted to retrieve endpoints from: https://login.microsoftonline.com/undefined/v2.0/.well-known/openid-configuration at t [as constructor] (_app-3866deb516d5bf6f9628.js:1) at new t (_app-3866deb516d5bf6f9628.js:1) at Function.t.createEndpointDiscoveryIncompleteError (_app-3866deb516d5bf6f9628.js:1) at Function.<anonymous> (_app-3866deb516d5bf6f9628.js:1) at _app-3866deb516d5bf6f9628.js:1 at Object.throw (_app-3866deb516d5bf6f9628.js:1) at s (_app-3866deb516d5bf6f9628.js:1)Y aquí está la implementación de msal:
import * as msal from "@azure/msal-browser"; function redirUri() { if (process.env.NODE_ENV == "development") { return "/" } else { return "https://somewebsitename.azurewebsites.net/" } } const msalConfig = { auth: { clientId: process.env.NEXT_PUBLIC_AZURE_AD_CLIENT_ID, authority: `https://login.microsoftonline.com/${process.env.NEXT_PUBLIC_AZURE_AD_TENANT_ID}`, redirectUri: redirUri() } }; const msalInstance = new msal.PublicClientApplication(msalConfig); export { msalInstance }¿Cuál es la forma correcta de hacer esto?
No puede obtener la configuración de la aplicación en la configuración del servicio de aplicaciones de Azure. Puede obtener el ID de cliente y el ID de inquilino de la configuración de su aplicación haciendo esto. proceso.env.clientId y proceso.env.tenantId
Asegúrese de haber configurado los siguientes ajustes en el portal: