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 Biblioteca do Microsoft Authenticator (MSAL) para Android é uma biblioteca que permite que aplicativos Android autentiquem usuários com plataforma de identidade da Microsoft (anteriormente Azure Active Directory) e acessem APIs Web protegidas usando protocolos OAuth2 e OpenID Connect. O MSAL Android permite que os desenvolvedores adquiram tokens de segurança do plataforma de identidade da Microsoft para autenticar usuários e acessar APIs Web seguras para seus aplicativos baseados em Android.
O MSAL Android dá suporte a vários cenários de autenticação, como SSO (logon único), acesso condicional e autenticação agenciada. Ele permite que você direcione facilmente várias identidades, incluindo Microsoft Entra ID (contas corporativas e de estudante), contas de Microsoft (Outlook.com, hotmail.com e várias outras) ou Azure AD B2C (contas sociais e locais).
As diretrizes aqui se destinam a documentar funcionalidades comuns relacionadas ao MSAL Android. Se você estiver procurando mais ajuda para começar a usar Microsoft Entra ID, contas de Microsoft ou Azure AD B2C, confira os documentos do plataforma de identidade da Microsoft. Se você estiver procurando mais informações sobre a API Microsoft Graph, confira os documentos do Microsoft Graph.
Suporte à autenticação nativa no MSAL
O MSAL Android também permite implementar uma experiência de autenticação nativa com fluxos personalizáveis de ponta a ponta em aplicativos móveis. Com a autenticação nativa, os usuários são guiados por uma experiência rica e nativa de cadastro e login, voltada primeiro para dispositivos móveis, sem sair do aplicativo. O recurso de autenticação nativa só está disponível para aplicativos móveis no ID Externa para Clientes.
Migração da Azure Active Directory Authentication Library (ADAL)
A ADAL (Biblioteca de Autenticação Azure Active Directory) para Android foi preterida a partir de junho de 2023. Se você ou sua organização estiver usando a ADAL (Biblioteca de Autenticação do Azure Active Directory) para Android, você deverá migrar para o MSAL Android para evitar colocar a segurança do aplicativo em risco. Biblioteca do Microsoft Authenticator (MSAL) para Android é a biblioteca com suporte que pode ser usada para autenticação e aquisição de token.
Introdução ao MSAL Android
Para usar o MSAL Android em seu aplicativo, você precisa:
- Registre seu aplicativo com Microsoft Entra ID.
- Saiba mais sobre os tipos de aplicativos cliente: clientes públicos e clientes confidenciais.
Como o MSAL Android dá suporte a experiências de autenticação nativas e delegadas pelo navegador, siga as etapas nos tutoriais a seguir com base em seu cenário.
Para cenários de autenticação delegada pelo navegador, consulte o guia de início rápido, Conectar usuários e chamar o Microsoft Graph de um aplicativo Android.
Para cenários de autenticação nativa, consulte o guia de exemplo ID externa do Microsoft Entra, Tutorial: Preparar seu aplicativo Android para autenticação nativa.
Requirements
- Min SDK Versão 16+
- SDK de destino versão 33+
Etapa 1: Declarar dependência na MSAL
Adicione ao build.gradle do aplicativo:
dependencies {
implementation 'com.microsoft.identity.client:msal:4.9.+'
}
Adicione também as seguintes linhas à seção de repositórios no seu script do Gradle:
maven {
url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
}
Etapa 2: Criar seu arquivo de configuração MSAL
Autenticação delegada pelo navegador:
Crie seu arquivo de configuração como recurso "raw" no seu projeto. Consulte-o usando o identificador de recurso gerado ao construir uma PublicClientApplication instância.. Se você estiver registrando seu aplicativo no centro de administração do Microsoft Entra pela primeira vez, você também receberá o arquivo de configuração detalhado do MSAL Android
{
"client_id" : "<YOUR_CLIENT_ID>",
"redirect_uri" : "msauth://<YOUR_PACKAGE_NAME>/<YOUR_BASE64_URL_ENCODED_PACKAGE_SIGNATURE>",
"broker_redirect_uri_registered": true,
}
No redirect_uri, <YOUR_PACKAGE_NAME> refere-se ao nome do pacote retornado pelo método context.getPackageName(). Esse nome de pacote é o mesmo que o application_id definido em seu build.gradle arquivo.
Os valores acima são a configuração mínima necessária. A MSAL depende dos padrões que são enviados com a biblioteca para todas as outras configurações. Consulte a documentação do arquivo de configuração do MSAL Android para entender as configurações padrão da biblioteca.
Autenticação nativa:
- Clique com o botão direito do mouse em res e escolha Novo > Diretório. Digite raw como o novo nome do diretório e selecione OK.
- Nesta nova pasta (app > src > main > res > raw), crie um novo arquivo JSON chamado auth_config_native_auth.json e cole o seguinte modelo de configuração do MSAL:
{
"client_id": "Enter_the_Application_Id_Here",
"authorities": [
{
"type": "CIAM",
"authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/"
}
],
"challenge_types": ["oob"],
"logging": {
"pii_enabled": false,
"log_level": "INFO",
"logcat_enabled": true
}
}
Etapa 3: Configurar o AndroidManifest.xml para autenticação delegada pelo navegador
- Solicitar as permissões a seguir por meio do Manifesto do Android
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- Configure um filtro de intenção no Android Manifest, usando o seu URI de redirecionamento
Não incluir um filtro de intenção que corresponda ao URI de redirecionamento especificado na configuração resultará em falha na solicitação interativa de token.
<!--Intent filter to capture authorization code response from the default browser on the device calling back to our app after interactive sign in -->
<activity
android:name="com.microsoft.identity.client.BrowserTabActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="msauth"
android:host="<YOUR_PACKAGE_NAME>"
android:path="/<YOUR_BASE64_ENCODED_PACKAGE_SIGNATURE>" />
</intent-filter>
</activity>
Você pode consultar as perguntas frequentes do MSAL Android para obter mais informações sobre problemas comuns de uri de redirecionamento.
ProGuard
MSAL usa reflexão e informações de tipo genérico armazenadas em arquivos .class em tempo de execução para oferecer suporte a várias funcionalidades relacionadas à persistência e à serialização. O suporte da biblioteca para minificação e ofuscação é limitado. Uma configuração padrão é enviada com essa biblioteca; registre um problema se encontrar algum problema.
Recommendation
MSAL é uma biblioteca de segurança. Ele controla como os usuários fazem login e acessam os serviços. Recomendamos que você sempre use a versão mais recente da nossa biblioteca em seu aplicativo quando puder. Usamos o controle de versão semântico para que você possa controlar o risco de atualizar seu aplicativo. Por exemplo, baixar sempre o número da versão secundária mais recente (por exemplo, x.y.x) garante que você obtenha as melhorias mais recentes de segurança e de funcionalidades com a certeza de que a área de superfície da nossa API não mudou. Você sempre pode consultar a versão mais recente e as notas da versão na aba Releases do GitHub.