Compartilhar via


Fornecedor MSAL2

Cuidado

O Toolkit do Microsoft Graph foi preterido. O período de reforma começa a 1 de setembro de 2025, com a reforma completa prevista para 28 de agosto de 2026. Os programadores devem migrar para utilizar os SDKs do Microsoft Graph ou outras ferramentas suportadas do Microsoft Graph para criar experiências Web. Para obter mais informações, veja o anúncio de preterição.

O Fornecedor MSAL2 baseia-se no MSAL-browser que implementa o fluxo de código de autorização OAuth 2.0 com PKCE. É utilizado para iniciar sessão de utilizadores e adquirir tokens para utilizar com o Microsoft Graph.

Para saber mais, veja fornecedores.

Introdução

Pode inicializar o Fornecedor MSAL2 em HTML ou JavaScript.

Inicializar na sua página HTML

Inicializar o fornecedor MSAL2 em HTML é a forma mais simples de criar um novo fornecedor. Utilize o mgt-msal2-provider componente para definir o ID de cliente e outras propriedades. Esta ação cria uma nova PublicClientApplication instância que é utilizada para toda a autenticação e aquisição 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 Descrição
client-id ID de cliente de cadeia (veja Criar um ID de aplicação/cliente). Obrigatório.
login-type Enumeração entre redirect e popup - valor predefinido é redirect. Opcional.
escopos Cadeias separadas por vírgulas para âmbitos que o utilizador tem de consentir quando inicia sessão. Opcional.
anfitriões personalizados Cadeias separadas por vírgulas para mais domínios que o cliente do Microsoft Graph pode chamar. Opcional.
autoridade Cadeia de autoridade – a predefinição é a autoridade comum. Para aplicações de inquilino único, utilize o ID do inquilino ou o nome do inquilino. Por exemplo: https://login.microsoftonline.com/[your-tenant-contoso.com ou https://login.microsoftonline.com/[your-tenant-id]. Opcional.
redirect-uri Cadeia de URI de redirecionamento – por predefinição, é utilizado o URI da janela atual. Opcional.
prompt Tipo de pedido a utilizar para iniciar sessão, entre SELECT_ACCOUNT, CONSENTe LOGIN. O padrão é SELECT_ACCOUNT. Opcional.
url base O ponto final do Microsoft Graph a ser utilizado para chamadas do Microsoft Graph. Pode ser qualquer uma das implementações de cloud Nacionais suportadas. O valor padrão é https://graph.microsoft.com.
incremental-consent-disabled Especifica se o consentimento incremental está desativado. Predefinição false. Opcional.

Inicializar em JavaScript

Pode fornecer mais opções ao inicializar o fornecedor em 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);

Pode configurar o parâmetro construtor Msal2Provider de duas formas, conforme descrito nas secções seguintes.

Fornecer um clientId para criar um novo PublicClientApplication

Esta opção faz sentido quando o Microsoft Graph Toolkit é responsável por toda a autenticação na sua aplicação.

interface Msal2Config {
  clientId: string;
  scopes?: string[];
  customHosts?: 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;
  isIncrementalConsentDisabled?: boolean, //Disable incremental consent, true by default
  options?: Configuration // msal-browser Configuration object
}

Transmita um existente PublicClientApplication na publicClientApplication propriedade .

Utilize esta opção quando a sua aplicação utilizar a funcionalidade MSAL para além do que é exposto pelas e outras funcionalidades do Msal2Provider Microsoft Graph Toolkit. Isto é adequado se uma arquitetura instanciar e expor automaticamente um PublicClientApplication por si; por exemplo, ao utilizar MSAL-angular. Para obter mais informações, veja o angular-app exemplo no repositório do Microsoft Graph Toolkit.

Certifique-se de que compreende as oportunidades de colisões ao utilizar esta opção. Pela sua própria natureza, existe o risco de o Msal2Provider poder alterar o estado de uma sessão; por exemplo, ao fazer com que o utilizador inicie sessão ou consoante os âmbitos adicionais. Certifique-se de que a sua aplicação e outras arquiteturas respondem corretamente a estas alterações no estado ou considere utilizar um fornecedor personalizado .

interface Msal2PublicClientApplicationConfig {
  publicClientApplication: PublicClientApplication;
  scopes?: string[];
  customHosts?: 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;
  isIncrementalConsentDisabled?: boolean, //Disable incremental consent, true by default
  options?: Configuration // msal-browser Configuration object
}

Utilizar um ponto final de cloud diferente

Utilize esta opção quando quiser utilizar o toolkit para compor os seus dados a partir de um ponto final diferente do Microsoft 365.

import {Providers, Msal2Provider} from '@microsoft/mgt'

const config: Msal2Config = {
  baseUrl: 'https://graph.microsoft.us', // change the base URL
  clientId: '2dfea037-xxx-c05708a1b241',
  ... // rest of the config
}

Providers.globalProvider = new Msal2Provider(config);

Em alternativa:

<mgt-msal2-provider
      client-id="2dfea037-xxx-c05708a1b241"
      redirect-uri="http://localhost:3000"
      base-url="https://dod-graph.microsoft.us"
      scopes="user.read,user.read.all">
</mgt-msal2-provider>

Para chamar as APIs personalizadas, peça esse âmbito da API.

<mgt-get resource="https://myapi.com/v1.0/api" scopes="api://CUSTOM_API_GUID/SCOPE">
  ...
</mgt-get>

Ou através de JavaScript/Typescript.

import { prepScopes } from "@microsoft/mgt-element";

graphClient
  .api("https://myapi.com/v1.0/api")
  .middlewareOptions(prepScopes("api://CUSTOM_API_GUID/SCOPE"))
  .get();
...

Utilizar anfitriões personalizados para chamar diferentes pontos finais protegidos por Microsoft Entra ID

Se quiser chamar os seus próprios pontos finais personalizados Microsoft Entra ID protegidos, transmita esses domínios para o cliente subjacente do Microsoft Graph.

import {Providers, Msal2Provider} from '@microsoft/mgt'

const config: Msal2Config = {
  clientId: '2dfea037-xxx-c05708a1b241',
  customHosts: ['mydomain.com'] //array of domains, not urls!
  ... // rest of the config
}

Providers.globalProvider = new Msal2Provider(config);

Em alternativa:

<mgt-msal2-provider
      client-id="2dfea037-xxx-c05708a1b241"
      redirect-uri="http://localhost:3000"
      custom-hosts="mydomain.com"
      scopes="user.read,user.read.all">
</mgt-msal2-provider>

Criar um ID de aplicação/cliente

Para obter detalhes sobre como registar uma aplicação e obter um ID de cliente, veja Criar uma aplicação Microsoft Entra.

Migrar do Fornecedor MSAL para o Fornecedor MSAL2

Para migrar uma aplicação que está a utilizar o fornecedor MSAL para o Fornecedor MSAL2:

  1. Aceda ao centro de administração do Microsoft Entra.

  2. Expanda o menu >Identidade expanda Aplicações> selecione Registros de aplicativo.

  3. Selecione o registo de aplicações da aplicação a migrar.

  4. Aceda a Autenticação no menu esquerdo.

  5. Em Configurações da plataforma, selecione Adicionar uma plataforma e selecione Aplicação de página única.

  6. Remova todos os URIs de redirecionamento que registou atualmente na Web e, em vez disso, adicione-os em Aplicação de página única.

  7. No código, substitua por MSALProviderMSAL2Provider.

    Se inicializar o fornecedor no código JS/TS, siga estes passos:

    Substitua a instrução de importação para por mgt-MSAL-provider

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

    Substitua a inicialização de MsalProvider por

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

    Se inicializar o fornecedor em HTML, substitua

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

    com

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

    Para obter detalhes, consulte Inicializar na sua página HTML.