Proveedor MSAL2

El proveedor MSAL2 usa msal-browser para iniciar sesión en usuarios y adquirir tokens para usarlos con Microsoft Graph.

Para obtener más información, vea proveedores.

Diferencia entre MSAL2 Provider y MSAL Provider

Aunque el uso es similar, MSAL Provider y MSAL2 Provider se basa en distintos flujos de OAuth. El proveedor MSAL se basa en msal.js, que implementa la concesión implícita de OAuth2.0 Flow. El proveedor MSAL2 se basa en msal-browser, que implementa el código de autorización de OAuth 2.0 Flow pkce. Dado que el Flow de código de autorización se considera más seguro que la concesión implícita Flow para aplicaciones web, se recomienda usar Msal2Provider sobre MsalProvider. Para obtener información detallada acerca de los problemas de seguridad relacionados con el flujo de concesión implícito, vea Desventajas del flujo implícito.

Todas las aplicaciones nuevas deben usar MSAL2 Provider siempre que sea posible.

Introducción

Puede inicializar el proveedor MSAL2 en HTML o JavaScript.

Inicializar en la página HTML

Inicializar el proveedor MSAL2 en HTML es la forma más sencilla de crear un nuevo proveedor. Use el mgt-msal2-provider componente para establecer el identificador de cliente y otras propiedades. Esto creará una nueva instancia que PublicClientApplication se usará para toda la autenticación y la adquisición de tokens.

    <mgt-msal2-provider client-id="<YOUR_CLIENT_ID>"
                        login-type="redirect/popup" 
                        scopes="user.read,people.read" 
                        redirect-uri="https://my.redirect/uri" 
                        authority=""> 
    </mgt-msal2-provider> 
Atributo Description
client-id Identificador de cliente de cadena (vea Crear un identificador de aplicación o cliente). Obligatorio.
login-type Enumeración entre redirect y popup - valor predeterminado es redirect. Opcional.
ámbitos Cadenas separadas por comas para ámbitos que el usuario debe consentir al iniciar sesión. Opcional.
autoridad Cadena de autoridad: el valor predeterminado es la autoridad común. Para las aplicaciones de un solo inquilino, usa el identificador de inquilino o el nombre del inquilino. Por ejemplo, https://login.microsoftonline.com/[your-tenant-name].onmicrosoft.com o https://login.microsoftonline.com/[your-tenant-id]. Opcional.
redirect-uri Cadena uri de redireccionamiento: de forma predeterminada se usa el URI de ventana actual. Opcional.
aviso Tipo de mensaje que se debe usar para el inicio de sesión, entre SELECT_ACCOUNTy CONSENT LOGIN. El valor predeterminado es SELECT_ACCOUNT. Opcional.

Inicializar en JavaScript

Puede proporcionar más opciones inicializando el proveedor en JavaScript.

    import {Providers} from '@microsoft/mgt-element';
    import {Msal2Provider, Msal2Config, Msal2PublicClientApplicationConfig} from '@microsoft/mgt-msal2-provider';

    // initialize the auth provider globally
    Providers.globalProvider = new Msal2Provider(config: Msal2Config | Msal2PublicClientApplicationConfig);

Puede configurar el parámetro Msal2Provider constructor de dos maneras, como se describe en las secciones siguientes.

Proporcionar una clientId para crear un nuevo PublicClientApplication

Esta opción tiene sentido cuando microsoft Graph Toolkit es responsable de toda la autenticación en la aplicación.

interface Msal2Config {
  clientId: string;
  scopes?: string[];
  authority?: string;
  redirectUri?: string;
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  prompt?: PromptType; // PromptType.CONSENT, PromptType.LOGIN or PromptType.SELECT_ACCOUNT
  sid?: string; // Session ID
  loginHint?: string;
  domainHint?: string;
  options?: Configuration // msal-browser Configuration object
}

Pase un existente PublicClientApplication en la publicClientApplication propiedad.

Úsalo cuando la aplicación use la funcionalidad MSAL Msal2Provider más allá de lo expuesto por las características de Microsoft Graph Toolkit usuario. Esto es especialmente apropiado si un marco crea automáticamente una instancia y expone una PublicClientApplication para usted; por ejemplo, cuando se usa msal-angular. Para obtener más instrucciones, consulte el ejemplo angular-app en el repositorio de microsoft Graph Toolkit datos.

Asegúrese de comprender las oportunidades de colisiones al usar esta opción. Por su propia naturaleza, existe el riesgo de que se pueda cambiar el estado de una sesión; por ejemplo, si el usuario inicia sesión o da su consentimiento a Msal2Provider ámbitos adicionales. Asegúrate de que la aplicación y otros marcos respondan correctamente a estos cambios de estado, o considera la posibilidad de usar un proveedor personalizado en su lugar.

interface Msal2PublicClientApplicationConfig {
  publicClientApplication: PublicClientApplication;
  scopes?: string[];
  authority?: string;
  redirectUri?: string;
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  prompt?: PromptType; // PromptType.CONSENT, PromptType.LOGIN or PromptType.SELECT_ACCOUNT
  sid?: string; // Session ID
  loginHint?: string;
  domainHint?: string;
  options?: Configuration // msal-browser Configuration object
}

Creación de un identificador de aplicación o cliente

Para obtener más información sobre cómo registrar una aplicación y obtener un identificador de cliente, consulta Crear una aplicación Azure Active Directory cliente.

Migración de MSAL Provider a MSAL2 Provider

Para migrar una aplicación que usa el proveedor MSAL al proveedor MSAL2:

  1. Vaya a la Azure Portal en https://portal.azure.com.

  2. En el menú, seleccione Azure Active Directory.

  3. En el Azure Active Directory, seleccione Registros de aplicaciones.

  4. Selecciona el registro de la aplicación de la aplicación que estás usando actualmente.

  5. Vaya a Autenticación en el menú izquierdo.

  6. En Configuraciones de plataforma, haga clic en Agregar una plataforma y seleccione Aplicación de página única.

  7. Quite todos los URI de redireccionamiento que haya registrado actualmente en Web y, en su lugar, agrégrelos en Aplicación de página única.

  8. En el código, reemplace MSALProvider por MSAL2Provider.

    Si está inicializando su proveedor en el código JS/TS, siga estos pasos:

    Reemplazar la instrucción import por por mgt-msal-provider

    import {Msal2Provider, PromptType} from '@microsoft/mgt-msal2-provider';
    

    Reemplazar la inicialización de MsalProvider por

    Providers.globalProvider = new Msal2Provider({ 
      clientId: 'REPLACE_WITH_CLIENTID'
      ...
    })
    

    Si va a inicializar el proveedor en HTML, reemplace

    <mgt-msal-provider client-id="" ... ></mgt-msal-provider>
    

    con

    <mgt-msal2-provider  client-id="" ... ></mgt-msal2-provider>
    

    Para obtener más información, consulte Initialize in your HTML page.