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 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 código de Flow se considera más seguro que la concesión implícita Flow para aplicaciones web, se recomienda usar Msal2Provider sobre MsalProvider. Para obtener más información acerca de los problemas de seguridad relacionados con el flujo de concesión implícito, vea Disadvantages of the implicit flow.

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

Comenzar

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 se usará para toda la autenticación PublicClientApplication 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). Necesario.
login-type Enumeración redirect entre y - valor predeterminado es popup 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, SELECT_ACCOUNT entre y 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 Msal2Provider parámetro 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 más allá de lo expuesto por las características de Microsoft y otras Msal2Provider Graph Toolkit microsoft. Esto es especialmente apropiado si un marco crea automáticamente una instancia y expone una para usted; por ejemplo, cuando se usa PublicClientApplication msal-angular. Para obtener más instrucciones, vea el angular-app ejemplo en el repositorio de microsoft Graph Toolkit .

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 acerca de cómo registrar una aplicación y obtener un identificador de cliente, consulta Crear una Azure Active Directory aplicación.

Migración de MSAL Provider a MSAL2 Provider

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

  1. Vaya a 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 mgt-msal-provider por

    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, vea Initialize in your HTML page.