Opciones de configuración de aplicaciones

Para la autenticación y adquisición de tokens, inicialice una aplicación cliente pública o confidencial en el código. Puede establecer varias opciones de configuración al inicializar la aplicación cliente en la Biblioteca de autenticación de Microsoft (MSAL). Estas opciones se dividen en dos grupos:

Autoridad

La autoridad es una dirección URL que indica un directorio desde el que MSAL puede solicitar tokens.

Las autoridades comunes son:

Direcciones URL de autoridad común Cuándo se usa
https://login.microsoftonline.com/<tenant>/ En el inicio de sesión solo de los usuarios de una organización específica. <tenant> en la dirección URL es el identificador de inquilino del inquilino de Microsoft Entra (un GUID) o su dominio de inquilino.
https://login.microsoftonline.com/common/ En el inicio de sesión de los usuarios con cuentas profesionales y educativas o cuentas personales de Microsoft.
https://login.microsoftonline.com/organizations/ En el inicio de sesión de los usuarios con cuentas profesionales y educativas.
https://login.microsoftonline.com/consumers/ En el inicio de sesión de los usuarios solo con cuentas personales de Microsoft (MSA).

La autoridad que especifica en el código debe ser coherente con los tipos de cuentas compatibles especificados para la aplicación en Registros de aplicaciones en Azure Portal.

La autoridad puede ser:

  • Una autoridad de Microsoft Entra en la nube.
  • Una autoridad de Azure AD B2C. Consulte B2C specifics (Especificaciones de B2C).
  • Una autoridad de Servicios de federación de Active Directory (AD FS). Consulte AD FS Support (Compatibilidad con AD FS).

Las autoridades de Microsoft Entra Cloud tienen dos partes:

  • La instancia del proveedor de identidades.
  • La audiencia de inicio de sesión para la aplicación.

La instancia y la audiencia se pueden concatenar y proporcionar como la dirección URL de la autoridad. En este diagrama se muestra cómo se compone la dirección URL de la autoridad:

Cómo se compone la dirección URL de la autoridad

Nombre de la instancia en la nube

La instancia se usa para especificar si la aplicación inicia la sesión de los usuarios desde la nube pública de Azure o desde nubes nacionales. Si usa MSAL en el código, podrá establecer la instancia en la nube de Azure mediante una enumeración, o bien al pasar la dirección URL a la instancia de nube nacional como el miembro Instance.

MSAL.NET devolverá una excepción explícita si se especifican Instance y AzureCloudInstance.

Si no se especifica una instancia, la aplicación se dirigirá a la instancia en la nube pública de Azure (la instancia de la dirección URL https://login.onmicrosoftonline.com).

Audiencia de la aplicación

La audiencia de inicio de sesión depende de las necesidades empresariales de la aplicación:

  • Si es desarrollador de líneas de negocio (LOB), probablemente producirá una aplicación de inquilino único que se usará solo en su organización. En ese caso, especifique la organización por su identificador de inquilino (el identificador de la instancia de Microsoft Entra) o por un nombre de dominio asociado a la instancia de Microsoft Entra.
  • Si es ISV, puede que quiera que los usuarios inicien sesión con sus cuentas profesionales o educativas en cualquier organización o en determinadas organizaciones (aplicación multiinquilino). Pero también es posible que quiera que los usuarios inicien sesión con sus cuentas personales de Microsoft.

Cómo especificar la audiencia en el código o la configuración

Mediante el uso de MSAL en el código, se especifica la audiencia con uno de los siguientes valores:

  • Enumeración de audiencia de autoridad de Microsoft Entra
  • El Id. de inquilino, que puede ser:
    • Un GUID (el Id. de la instancia de Microsoft Entra), para las aplicaciones de inquilino único
    • Un nombre de dominio asociado a la instancia de Microsoft Entra (también para las aplicaciones de inquilino único)
  • Uno de estos marcadores de posición como un id. de inquilino en lugar de la enumeración de la audiencia de la autoridad de Microsoft Entra:
    • organizations para una aplicación multiinquilino,
    • consumers para iniciar la sesión de los usuarios solo con sus cuentas personales,
    • common para el inicio de sesión de los usuarios con sus cuentas profesionales y educativas o sus cuentas personales de Microsoft.

MSAL devolverá una excepción significativa si especifican la audiencia y el id. de inquilino de la autoridad de Microsoft Entra.

Se recomienda especificar una audiencia, ya que tantos inquilinos como las aplicaciones implementadas en ellos tendrán usuarios invitados. Si la aplicación tendrá usuarios externos, los puntos de conexión de common y organization se evitarán mejor. Si no se especifica una audiencia, la aplicación se dirigirá a cuentas de Microsoft Entra ID y personales de Microsoft como audiencia y se comportará como si common estuviera especificado.

Audiencia eficaz

La audiencia eficaz para su aplicación será la mínima (si hay una intersección) entre la audiencia que estableció en la aplicación y la audiencia especificada en el registro de aplicaciones. De hecho, la experiencia de Registros de aplicaciones permite especificar la audiencia (los tipos de cuenta compatibles) para la aplicación. Para más información, consulte Inicio rápido: Registro de una aplicación en la plataforma de identidad de Microsoft.

Actualmente, la única manera de que una aplicación inicie la sesión de los usuarios con solo cuentas personales de Microsoft es configurar estas dos opciones:

  • Establezca la audiencia del registro de aplicaciones en Work and school accounts and personal accounts.
  • Establezca la audiencia del código o de la configuración en AadAuthorityAudience.PersonalMicrosoftAccount (o TenantID ="consumers").

Id. de cliente

El Id. de cliente es el Id. de (cliente) aplicación único que Microsoft Entra ID asignó a la aplicación cuando esta se registró. Puede encontrar el identificador de aplicación (cliente) en la página Información general de la aplicación en Identidad>Aplicaciones>Aplicaciones empresariales.

URI de redireccionamiento

El URI de redirección es el URI al que el proveedor de identidades enviará los tokens de seguridad.

URI de redirección para aplicaciones cliente públicas

Si es desarrollador de aplicaciones cliente públicas que usa MSAL:

  • Es conveniente utilizar .WithDefaultRedirectUri() en aplicaciones de escritorio o de la plataforma universal de Windows (UWP) (MSAL.NET 4.1+). El método .WithDefaultRedirectUri() establecerá la propiedad de URI de redireccionamiento de la aplicación cliente pública en el URI de redireccionamiento predeterminado recomendado para las aplicaciones cliente públicas.

    Plataforma URI de redireccionamiento
    Aplicación de escritorio (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
    UWP Valor de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(). Esto permite efectuar el inicio de sesión único (SSO) con el explorador al establecer el valor en el resultado de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), que es preciso registrar.
    .NET https://localhost permite que el usuario use el explorador del sistema para la autenticación interactiva, ya que .NET no tiene una interfaz de usuario para la vista web insertada en este momento.

Puede invalidar el URI de redirección mediante la propiedad RedirectUri (por ejemplo, si usa agentes). Estos son algunos ejemplos de URI de redirección para ese escenario:

  • RedirectUriOnAndroid = "msauth-5a434691-ccb2-4fd1-b97b-b64bcfbc03fc://com.microsoft.identity.client.sample";
  • RedirectUriOnIos = $"msauth.{Bundle.ID}://auth";

Para más información sobre Android, consulte Autenticación con intermediación en Android.

  • Al compilar una aplicación con MSAL para Android, puede configurar redirect_uri durante el paso de registro de la aplicación inicial o agregarlo más adelante.

    • El formato del URI de redirección es: msauth://<yourpackagename>/<base64urlencodedsignature>
    • Ejemplo: redirect_uri = msauth://com.azuresamples.myapp/6/aB1cD2eF3gH4iJ5kL6-mN7oP8qR=
  • Para obtener más detalles sobre la configuración de aplicaciones de MSAL para Android, consulte Configuración de MSAL para Android.

  • Configure el URI de redireccionamiento en Registros de aplicaciones:

    Captura de pantalla en la que se muestran el panel y las opciones de URI de redirección en la página Registros de aplicaciones.

URI de redirección para aplicaciones cliente confidenciales

Para las aplicaciones web, el URI de redireccionamiento (o URL de respuesta) es el URI que Microsoft Entra ID usará para enviar el token a la aplicación. El URI puede ser la dirección URL de la aplicación web o de la API web si la aplicación confidencial es una de ellas. El URI de redirección debe estar registrado en el registro de aplicaciones. El registro es especialmente importante al implementar una aplicación que se ha probado inicialmente a nivel local. A continuación, debe agregar la dirección URL de respuesta de la aplicación implementada en el portal de registro de aplicaciones.

Para las aplicaciones demonio, no es necesario especificar un URI de redirección.

Secreto del cliente

Esta opción especifica el secreto de cliente para la aplicación cliente confidencial. El secreto de cliente (contraseña de la aplicación) lo proporcionan el portal de registro de aplicaciones o Microsoft Entra ID durante el registro de la aplicación con PowerShell Microsoft Entra ID, Powershell AzureRM o la CLI de Azure.

Registro

Para facilitar la solución de problemas en escenarios con errores de autenticación, MSAL ofrece compatibilidad con el registro integrado. El registro en cada biblioteca se trata en los siguientes artículos:

Pasos siguientes

Más información sobre cómo crear instancias de aplicaciones cliente mediante el uso de MSAL.NET y cómo crear instancias de aplicaciones cliente mediante el uso de MSAL.js.