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.
A Android Biblioteca de Autenticação da Microsoft (MSAL) vem com um ficheiro JSON de configuração predefinida que personaliza para definir o comportamento da sua aplicação cliente pública para coisas como a autoridade padrão, quais as autoridades que irá usar, e assim por diante.
Este artigo vai ajudá-lo a compreender as várias definições no ficheiro de configuração e como especificar o ficheiro de configuração a usar na sua aplicação baseada em MSAL.
Definições de configuração
Configurações gerais
| Property | Tipo de dados | Obrigatório | Notes |
|---|---|---|---|
client_id |
String | Sim | O ID do Cliente da sua aplicação na página de registo da candidatura |
redirect_uri |
String | Sim | O URI de Redirecionamento da sua aplicação a partir da página de registo da candidatura |
broker_redirect_uri_registered |
booleano | No | Valores possíveis: true, false |
authorities |
Autoridade de Lista<> | No | A lista de autoridades de que a sua candidatura precisa |
authorization_user_agent |
AuthorizationAgent (enum) | No | Valores possíveis: DEFAULT, BROWSER, WEBVIEW |
http |
HttpConfiguration | No | Configurar HttpUrlConnectionconnect_timeout e read_timeout |
logging |
LoggingConfiguration | No | Especifica o nível de detalhe do registo. Configurações opcionais incluem: pii_enabled, que assume um valor booleano, e log_level, que assume ERROR, WARNING, INFO, ou VERBOSE. |
client_id
O ID do cliente ou da aplicação que foi criado quando registou a sua candidatura.
redirect_uri
O URI de redirecionamento que registou quando registou a sua candidatura. Se o URI de redirecionamento for para uma aplicação de corretor, consulte o URI de redirecionamento para aplicações de clientes públicos para garantir que está a usar o formato correto de URI de redirecionamento para a sua aplicação de corretor.
broker_redirect_uri_registered
Se quiser usar autenticação intermediária, a broker_redirect_uri_registered propriedade deve ser definida para true. Num cenário de autenticação intermediária, se a aplicação não estiver no formato correto para falar com o broker conforme descrito no URI de Redirecionamento para aplicações clientes públicas, a aplicação valida o seu URI de redirecionamento e lança uma exceção quando este inicia.
authorities
A lista de autoridades conhecidas e de confiança por si. Para além das autoridades aqui listadas, a MSAL também consulta a Microsoft para obter uma lista de clouds e autoridades conhecidas pela Microsoft. Nesta lista de autoridades, especifique o tipo da autoridade e quaisquer parâmetros opcionais adicionais, como "audience", que devem alinhar-se com o público da sua aplicação com base no registo da sua aplicação. Segue-se uma lista de exemplos de autoridades:
// Example AzureAD and Personal Microsoft Account
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true // Indicates that this is the default to use if not provided as part of the acquireToken call
},
// Example AzureAD My Organization
{
"type": "AAD",
"audience": {
"type": "AzureADMyOrg",
"tenant_id": "contoso.com" // Provide your specific tenant ID here
}
},
// Example AzureAD Multiple Organizations
{
"type": "AAD",
"audience": {
"type": "AzureADMultipleOrgs"
}
},
//Example PersonalMicrosoftAccount
{
"type": "AAD",
"audience": {
"type": "PersonalMicrosoftAccount"
}
}
Mapear a autoridade e o público da Microsoft Entra para os endpoints da plataforma de identidades da Microsoft
| Tipo | Público-alvo | ID do inquilino | Authority_Url | Ponto final resultante | Notes |
|---|---|---|---|---|---|
| Microsoft Entra ID | Azure AD e conta pessoal Microsoft | https://login.microsoftonline.com/common |
common é um alias de inquilino para indicar onde a conta está. Como um inquilino específico do Microsoft Entra ou o sistema de contas conta Microsoft. |
||
| Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Apenas as contas presentes em contoso.com podem adquirir um token. Qualquer domínio verificado, ou o GUID do inquilino, pode ser usado como ID do inquilino. | |
| Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Apenas contas Microsoft Entra podem ser usadas com este endpoint. As contas Microsoft podem ser membros de organizações. Para adquirir um token usando uma conta conta Microsoft para um recurso numa organização, especifique o tenant organizacional de onde quer o token. | ||
| Microsoft Entra ID | Conta Microsoft pessoal | https://login.microsoftonline.com/consumers |
Só contas Microsoft podem usar este endpoint. | ||
| B2C | Ver Ponto Final Resultante | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Apenas as contas presentes no contoso.onmicrosoft.com inquilino podem adquirir um token. Neste exemplo, a política B2C faz parte do caminho URL de Autoridade. |
Note
A validação de autoridade não pode ser ativada nem desativada no MSAL.
As autoridades são conhecidas por si como o programador, conforme especificado via configuração, ou conhecidas pela Microsoft através de metadados.
Se a MSAL receber um pedido de token a uma autoridade desconhecida, resulta um MsalClientException de tipo UnknownAuthority .
A autenticação intermediada não funciona para Azure AD B2C.
Propriedades da autoridade
| Property | Tipo de dados | Obrigatório | Notes |
|---|---|---|---|
type |
String | Sim | Espelha o público ou tipo de conta que a tua aplicação tem como alvo. Valores possíveis: AAD, B2C |
audience |
Objeto | No | Só se aplica quando type=AAD. Especifica a identidade que a sua aplicação tem como alvo. Use o valor do registo da sua aplicação |
authority_url |
String | Sim | Exigido apenas quando tipo=B2C. Opcional para tipo=AAD. Especifica a URL de autoridade ou política que a sua aplicação deve usar |
default |
Booleano | Sim | É necessário um único "default":true quando uma ou mais autoridades são especificadas. |
Propriedades do Público
| Property | Tipo de dados | Obrigatório | Notes |
|---|---|---|---|
type |
String | Sim | Especifica o público que a sua aplicação quer atingir. Valores possíveis: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg |
tenant_id |
String | Sim | Exigido apenas quando "type":"AzureADMyOrg". Opcional para outros type valores. Isto pode ser um domínio de inquilino, como contoso.com, ou um ID de inquilino, como aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Indica se deve usar uma webview embutida ou o navegador padrão no dispositivo, ao iniciar sessão numa conta ou autorizar o acesso a um recurso.
Valores possíveis:
-
DEFAULT: Prefere o navegador do sistema. Usa a web view embutida se o navegador não estiver disponível no dispositivo. -
WEBVIEW: Utilizar a web view embutida. -
BROWSER: Usa o navegador predefinido do dispositivo.
multiple_clouds_supported
Para clientes que suportam múltiplas clouds nacionais, especifique true. A plataforma de identidades da Microsoft irá então redirecionar automaticamente para a cloud nacional correta durante a autorização e o resgate de tokens. Pode determinar a nuvem nacional da conta iniciada examinando a autoridade associada ao AuthenticationResult. Note que não AuthenticationResult fornece o endereço de endpoint nacional específico da cloud do recurso para o qual solicita um token.
broker_redirect_uri_registered
Um booleano que indica se está a usar um URI de redirecionamento in-broker compatível com o Microsoft Identity Broker. Defina para false se não quiser usar o corretor dentro da sua aplicação.
Se estiveres a usar a Microsoft Entra Authority com o Audience definido para "MicrosoftPersonalAccount", o broker não será usado.
http
Configure definições globais para timeouts HTTP, tais como:
| Property | Tipo de dados | Obrigatório | Notes |
|---|---|---|---|
connect_timeout |
int | No | Tempo em milissegundos |
read_timeout |
int | No | Tempo em milissegundos |
registo
As seguintes definições globais destinam-se ao registo:
| Property | Tipo de dados | Obrigatório | Notes |
|---|---|---|---|
pii_enabled |
Booleano | No | Se deve emitir dados pessoais |
log_level |
cadeia (de caracteres) | No | Que mensagens de registo enviar. Os níveis de registo suportados incluem ERROR,WARNING,INFO, e VERBOSE. |
logcat_enabled |
Booleano | No | Se deve enviar para o log cat além da interface de log |
account_mode
Especifica quantas contas podem ser usadas dentro da sua aplicação ao mesmo tempo. Os valores possíveis são:
-
MULTIPLE(padrão) SINGLE
Construir um PublicClientApplication usando um modo de conta que não corresponda a esta configuração resultará numa exceção.
Para mais informações sobre as diferenças entre contas individuais e múltiplas, consulte Aplicações de contas individuais e múltiplas contas.
browser_safelist
Uma lista de navegadores compatíveis com MSAL. Estes navegadores tratam corretamente os redirecionamentos para intenções personalizadas. Pode acrescentar a esta lista. O padrão é fornecido na configuração padrão mostrada abaixo. ``
O ficheiro de configuração padrão MSAL
A configuração padrão de MSAL que vem com MSAL é mostrada abaixo. Pode ver a versão mais recente no GitHub.
Esta configuração é complementada pelos valores que fornece. Os valores que forneces sobrepõem-se aos valores predefinidos.
{
"authorities": [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true
}
],
"authorization_user_agent": "DEFAULT",
"multiple_clouds_supported": false,
"broker_redirect_uri_registered": false,
"http": {
"connect_timeout": 10000,
"read_timeout": 30000
},
"logging": {
"pii_enabled": false,
"log_level": "WARNING",
"logcat_enabled": false
},
"shared_device_mode_supported": false,
"account_mode": "MULTIPLE",
"browser_safelist": [
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...4O1Xgg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...O1Xgg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"1WqG8...Mn8Ag=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.duckduckgo.mobile.android",
"browser_signature_hashes": [
"S5Av4...jAi4Q=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.explore.web.browser",
"browser_signature_hashes": [
"BzDzB...YHCag=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.ksmobile.cb",
"browser_signature_hashes": [
"lFDYx...7nouw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.microsoft.emmx",
"browser_signature_hashes": [
"Ivy-R...A6fVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.browser",
"browser_signature_hashes": [
"FIJ3I...jWJWw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.mini.native",
"browser_signature_hashes": [
"TOTyH...mmUYQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "mobi.mgeek.TunnyBrowser",
"browser_signature_hashes": [
"RMVoX...bkyyQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.focus",
"browser_signature_hashes": [
"L72dT...q0oYA=="
],
"browser_use_customTab" : false
}
]
}
Exemplo de configuração básica
O exemplo seguinte ilustra uma configuração básica que especifica o ID do cliente, o URI de redirecionamento, se um redirecionamento de corretor está registado e uma lista de autoridades.
{
"client_id" : "00001111-aaaa-2222-bbbb-3333cccc4444",
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",
"broker_redirect_uri_registered": true,
"authorities" : [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
}
"default": true
}
]
}
Como usar um ficheiro de configuração
Crie um arquivo de configuração. Recomendamos que crie o seu ficheiro de configuração personalizado em
res/raw/auth_config.json. Mas podes colocá-lo onde quiseres.Diga à MSAL onde procurar a sua configuração quando construir o
PublicClientApplication. Por exemplo://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);