Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ANDROID Biblioteca do Microsoft Authenticator (MSAL) é fornecido com um arquivo JSON de configuração padrão que você personaliza para definir o comportamento do seu aplicativo cliente público para itens como a autoridade padrão, quais autoridades você usará e assim por diante.
Este artigo ajudará você a entender as várias configurações no arquivo de configuração e como especificar o arquivo de configuração a ser usado em seu aplicativo baseado em MSAL.
Definições de configuração
Configurações gerais
| Propriedade | Tipo de dados | Obrigatório | Observações |
|---|---|---|---|
client_id |
String | Sim | A ID do cliente do aplicativo na página de registro do aplicativo |
redirect_uri |
String | Sim | URI de Redirecionamento do aplicativo na página de registro do aplicativo |
broker_redirect_uri_registered |
booleano | No | Valores possíveis: true, false |
authorities |
Autoridade de Lista<> | No | A lista de autoridades de que seu aplicativo precisa |
authorization_user_agent |
AuthorizationAgent (enum) | No | Valores possíveis: DEFAULT, , BROWSERWEBVIEW |
http |
HttpConfiguration | No | Configurar HttpUrlConnectionconnect_timeout e read_timeout |
logging |
Configuração de registro | No | Especifica o nível de detalhes de registro em log. As configurações opcionais incluem: pii_enabled, que usa um valor booliano e log_level, o que leva ERROR, WARNING, INFOou VERBOSE. |
client_id
A ID do cliente ou a ID do aplicativo que foi criada quando você registrou seu aplicativo.
URI de redirecionamento
O URI de redirecionamento que você registrou quando registrou seu aplicativo. Se o URI de redirecionamento for para um aplicativo de agente, consulte o URI de Redirecionamento para aplicativos cliente públicos para garantir que você esteja usando o formato de URI de redirecionamento correto para seu aplicativo de agente.
broker_redirect_uri_registered
Se você quiser usar a autenticação agenciada, a broker_redirect_uri_registered propriedade deverá ser definida como true. Em um cenário de autenticação agenciada, se o aplicativo não estiver no formato correto para falar com o agente, conforme descrito no URI de Redirecionamento para aplicativos cliente públicos, o aplicativo valida seu URI de redirecionamento e gera uma exceção quando ele é iniciado.
authorities
A lista de autoridades que são conhecidas e confiáveis por você. Além das autoridades listadas aqui, a MSAL também consulta Microsoft para obter uma lista de nuvens e autoridades conhecidas por Microsoft. Nesta lista de autoridades, especifique o tipo da autoridade e quaisquer parâmetros opcionais adicionais, como "audience", que devem se alinhar com o público-alvo do aplicativo com base no registro do aplicativo. Veja a seguir 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 Microsoft Entra autoridade e audiência para plataforma de identidade da Microsoft pontos de extremidade
| Tipo | Audiência | ID do locatário | Authority_Url | Ponto de extremidade resultante | Observações |
|---|---|---|---|---|---|
| Microsoft Entra ID | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common é um alias de locatário para onde a conta está. Como um locatário Microsoft Entra específico ou o sistema de conta Microsoft. |
||
| Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Somente contas presentes em contoso.com podem adquirir um token. Qualquer domínio verificado, ou o GUID do locatário, pode ser usado como a ID do locatário. | |
| Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Somente contas Microsoft Entra podem ser usadas com esse ponto de extremidade. Microsoft contas podem ser membros de organizações. Para adquirir um token usando um conta Microsoft para um recurso em uma organização, especifique o locatário organizacional do qual você deseja o token. | ||
| Microsoft Entra ID | Conta pessoal da Microsoft | https://login.microsoftonline.com/consumers |
Somente contas Microsoft podem usar esse ponto de extremidade. | ||
| B2C | Consulte o ponto de extremidade resultante | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Somente as contas presentes no locatário contoso.onmicrosoft.com podem adquirir um token. Neste exemplo, a política B2C faz parte do caminho da URL da Autoridade. |
Note
A validação de autoridade não pode ser habilitada e desabilitada na MSAL.
As autoridades são conhecidas por você como o desenvolvedor, conforme especificado por meio da configuração ou conhecidas por Microsoft por meio de metadados.
Se a MSAL receber uma solicitação de um token para uma autoridade desconhecida, um MsalClientException dos resultados do tipo UnknownAuthority .
A autenticação agenciada não funciona para Azure AD B2C.
Propriedades de autoridade
| Propriedade | Tipo de dados | Obrigatório | Observações |
|---|---|---|---|
type |
String | Sim | Espelha o público-alvo ou o tipo de conta dos destinos do aplicativo. Valores possíveis: AAD, B2C |
audience |
Objeto | No | Aplica-se somente quando type=AAD. Especifica a identidade que seu aplicativo tem como destino. Usar o valor do registro do aplicativo |
authority_url |
String | Sim | Necessário somente quando type=B2C. Opcional para type=AAD. Especifica a URL ou a política de autoridade que seu aplicativo deve usar |
default |
boolean | Sim | Um único "default":true é necessário quando uma ou mais autoridades são especificadas. |
Propriedades do público-alvo
| Propriedade | Tipo de dados | Obrigatório | Observações |
|---|---|---|---|
type |
String | Sim | Especifica o público-alvo que seu aplicativo deseja direcionar. Valores possíveis: AzureADandPersonalMicrosoftAccount, , PersonalMicrosoftAccount, AzureADMultipleOrgsAzureADMyOrg |
tenant_id |
String | Sim | Necessário somente quando "type":"AzureADMyOrg". Opcional para outros type valores. Pode ser um domínio de locatário, como contoso.com, ou uma ID de locatário, como aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Indica se é necessário usar uma visão da Web inserida ou o navegador padrão no dispositivo ao entrar em uma conta ou autorizar o acesso a um recurso.
Valores possíveis:
-
DEFAULT: prefere o navegador do sistema. Usará a exibição da Web inserida se um navegador não estiver disponível no dispositivo. -
WEBVIEW: use a exibição da Web inserida. -
BROWSER: usa o navegador padrão no dispositivo.
multiple_clouds_supported
Para clientes que dão suporte a várias nuvens nacionais, especifique true. O plataforma de identidade da Microsoft será redirecionada automaticamente para a nuvem nacional correta durante a autorização e o resgate de token. Você pode determinar a nuvem nacional da conta de entrada examinando a autoridade associada ao AuthenticationResult. Observe que ele AuthenticationResult não fornece o endereço de ponto de extremidade específico da nuvem nacional do recurso para o qual você solicita um token.
broker_redirect_uri_registered
Um booliano que indica se você está usando um URI de redirecionamento compatível com agente de identidade Microsoft. Defina como false se você não quiser usar o agente em seu aplicativo.
Se você estiver usando a Autoridade de Microsoft Entra com Audiência definida como"MicrosoftPersonalAccount", o agente não será usado.
http
Defina as configurações globais para tempos limite HTTP, como:
| Propriedade | Tipo de dados | Obrigatório | Observações |
|---|---|---|---|
connect_timeout |
int | No | Tempo em milissegundos |
read_timeout |
int | No | Tempo em milissegundos |
registrar em log
As seguintes configurações globais são para registro em log:
| Propriedade | Tipo de dados | Obrigatório | Observações |
|---|---|---|---|
pii_enabled |
boolean | No | Se os dados pessoais devem ser emitidos |
log_level |
cadeia | No | Quais mensagens de log serão geradas. Os níveis de log com suporte incluem ERROR,WARNINGINFO, e VERBOSE. |
logcat_enabled |
boolean | No | Se a saída para o gato de log além da interface de registro em log |
account_mode
Especifica quantas contas podem ser usadas em seu aplicativo por vez. Os valores possíveis são:
-
MULTIPLE(padrão) SINGLE
A construção de um PublicClientApplication modo de conta usando que não corresponda a essa configuração resultará em uma exceção.
Para obter mais informações sobre as diferenças entre contas simples e múltiplas, consulte Aplicativos de conta única e várias.
browser_safelist
Uma lista de permissões de navegadores compatíveis com a MSAL. Esses navegadores lidam corretamente com redirecionamentos para intenções personalizadas. Você pode adicionar a esta lista. O padrão é fornecido na configuração padrão mostrada abaixo. ``
O arquivo de configuração padrão da MSAL
A configuração padrão da MSAL que é fornecida com MSAL é mostrada abaixo. Você pode ver a versão mais recente no GitHub.
Essa configuração é complementada por valores que você fornece. Os valores que você fornece substituem os padrões.
{
"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
}
]
}
Configuração básica de exemplo
O exemplo a seguir ilustra uma configuração básica que especifica a ID do cliente, o URI de redirecionamento, se um redirecionamento de agente está registrado 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 arquivo de configuração
Crie um arquivo de configuração. Recomendamos que você crie seu arquivo de configuração personalizado.
res/raw/auth_config.jsonMas você pode colocá-lo em qualquer lugar que quiser.Diga à MSAL onde procurar sua configuração ao construir o
PublicClientApplication. Por exemplo://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);