Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cuidado
O Microsoft Graph Toolkit foi preterido. O período de aposentadoria começa em 1º de setembro de 2025, com aposentadoria total planejada para 28 de agosto de 2026. Os desenvolvedores devem migrar para o uso dos SDKs do Microsoft Graph ou outras ferramentas do Microsoft Graph com suporte para criar experiências na Web. Para obter mais informações, consulte o anúncio de substituição.
O provedor MSAL2 é criado no navegador MSAL que implementa o fluxo de código de autorização OAuth 2.0 com PKCE. É usado para conectar usuários e adquirir tokens para usar com o Microsoft Graph.
Para saber mais, consulte provedores.
Introdução
Você pode inicializar o provedor MSAL2 em HTML ou JavaScript.
Inicializar em sua página HTML
Inicializar o provedor MSAL2 em HTML é a maneira mais simples de criar um novo provedor. Use o mgt-msal2-provider componente para definir o client-id e outras propriedades. Isso cria uma nova PublicClientApplication instância que é usada para todos os tokens de autenticação e aquisição.
<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 |
|---|---|
| ID do cliente | ID do cliente de cadeia de caracteres (consulte Criação de um aplicativo/ID do cliente). Obrigatório. |
| Tipo de Logon | Enumeração entre redirect e popup - o valor padrão é redirect. Opcional. |
| escopos | Cadeias de caracteres separadas por vírgula para escopos que o usuário deve consentir ao entrar. Opcional. |
| hosts personalizados | Cadeias de caracteres separadas por vírgula para mais domínios que o cliente do Microsoft Graph pode chamar. Opcional. |
| autoridade | Cadeia de caracteres de autoridade - o padrão é a autoridade comum. Para aplicativos de locatário único, use sua ID de locatário ou nome de locatário. Por exemplo: https://login.microsoftonline.com/[your-tenant-contoso.com ou https://login.microsoftonline.com/[your-tenant-id]. Opcional. |
| URI de redirecionamento | Cadeia de caracteres do URI de redirecionamento - por padrão, o URI da janela atual é usado. Opcional. |
| prompt | Tipo de prompt a ser usado para logon, entre SELECT_ACCOUNT, CONSENTe LOGIN. O padrão é SELECT_ACCOUNT. Opcional. |
| URL base | O ponto de extremidade do Microsoft Graph a ser usado para chamadas do Microsoft Graph. Pode ser qualquer uma das implantações de nuvem nacional com suporte. O valor padrão é https://graph.microsoft.com. |
| consentimento incremental desabilitado | Especifica se o consentimento incremental está desabilitado. Padrão false. Opcional. |
Inicializar no JavaScript
Você pode fornecer mais opções inicializando o provedor 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);
Você pode configurar o Msal2Provider parâmetro constructor de duas maneiras, conforme descrito nas seções a seguir.
Forneça um clientId para criar um novo PublicClientApplication
Essa opção faz sentido quando o Microsoft Graph Toolkit é responsável por toda a autenticação em seu aplicativo.
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
}
Passe um existente PublicClientApplication na publicClientApplication propriedade.
Use isso quando seu aplicativo usar a funcionalidade MSAL além do exposto pelo e outros recursos do Msal2Provider Microsoft Graph Toolkit. Isso é apropriado se uma estrutura instanciar e expor automaticamente um PublicClientApplication para você; por exemplo, ao usar MSAL-angular. Para obter mais informações, consulte o angular-app exemplo no repositório do Microsoft Graph Toolkit.
Certifique-se de entender as oportunidades de colisões ao usar essa opção. Por sua própria natureza, existe o risco de que o possa alterar o estado de uma sessão; por exemplo, fazendo com que Msal2Provider o usuário entre ou consinta com escopos adicionais. Certifique-se de que seu aplicativo e outras estruturas respondam normalmente a essas alterações de estado ou considere usar um provedor 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
}
Usar um ponto de extremidade de nuvem diferente
Use isso quando quiser usar o kit de ferramentas para renderizar seus dados de um ponto de extremidade 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);
Como 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, solicite que o escopo da API.
<mgt-get resource="https://myapi.com/v1.0/api" scopes="api://CUSTOM_API_GUID/SCOPE">
...
</mgt-get>
ou via JavaScript/Typescript.
import { prepScopes } from "@microsoft/mgt-element";
graphClient
.api("https://myapi.com/v1.0/api")
.middlewareOptions(prepScopes("api://CUSTOM_API_GUID/SCOPE"))
.get();
...
Use hosts personalizados para chamar diferentes pontos de extremidade protegidos pelo Microsoft Entra ID
Se você quiser chamar seus próprios pontos de extremidade protegidos personalizados do Microsoft Entra ID, passe esses domínios para o cliente Microsoft Graph subjacente.
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);
Como 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>
Criando uma ID de aplicativo/cliente
Para obter detalhes sobre como registrar um aplicativo e obter uma ID de cliente, consulte Criar um aplicativo do Microsoft Entra.
Migração do Provedor MSAL para o Provedor MSAL2
Para migrar um aplicativo que está usando o provedor MSAL para o provedor MSAL2:
Vá para o centro de administração do Microsoft Entra.
Expanda o menu >Identidade, expanda Aplicativos>, selecione Registros de aplicativo.
Selecione o registro do aplicativo a ser migrado.
Vá para Autenticação no menu à esquerda.
Em Configurações da plataforma, selecione Adicionar uma plataforma e selecione Aplicativo de página única.
Remova todos os URIs de redirecionamento que você registrou atualmente na Web e, em vez disso, adicione-os em Aplicativo de página única.
No código, substitua
MSALProviderporMSAL2Provider.Se você inicializar o provedor no código JS/TS, siga estas etapas:
Substitua a import instrução por
mgt-MSAL-providerimport {Msal2Provider, PromptType} from '@microsoft/mgt-msal2-provider';Substitua a inicialização de MsalProvider por
Providers.globalProvider = new Msal2Provider({ clientId: 'REPLACE_WITH_CLIENTID' ... })Se você inicializar o provedor 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 em sua página HTML.