Fornecedor MSAL2
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 , CONSENT e 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:
Expanda o menu >Identidade expanda Aplicações> selecione Registros de aplicativo.
Selecione o registo de aplicações da aplicação a migrar.
Aceda a Autenticação no menu esquerdo.
Em Configurações da plataforma, selecione Adicionar uma plataforma e selecione Aplicação de página única.
Remova todos os URIs de redirecionamento que registou atualmente na Web e, em vez disso, adicione-os em Aplicação de página única.
No código, substitua por
MSALProvider
MSAL2Provider
.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.