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 Biblioteca de Autenticação da Microsoft (MSAL) para Android é uma biblioteca que permite a aplicações Android autenticar utilizadores com a plataforma de identidades da Microsoft (anteriormente Azure Active Directory) e aceder a APIs web protegidas utilizando os protocolos OAuth2 e OpenID Connect. O MSAL Android permite aos programadores adquirir tokens de segurança da plataforma de identidades da Microsoft para autenticar utilizadores e aceder a APIs web seguras para as suas aplicações Android.
O MSAL Android suporta múltiplos cenários de autenticação, como login único (SSO), acesso condicional e autenticação intermediada. Permite-te direcionar facilmente várias identidades, incluindo Microsoft Entra ID (contas de trabalho e escola), Microsoft contas (Outlook.com, hotmail.com e várias outras), ou Azure AD B2C (contas sociais e locais).
A orientação aqui destina-se a documentar funcionalidades comuns relacionadas com o MSAL Android. Se procura mais ajuda para começar com o Microsoft Entra ID, Microsoft Accounts ou Azure AD B2C, consulte a documentação da plataforma de identidades da Microsoft. Se procura mais informações sobre a API do Microsoft Graph, consulte a documentação do Microsoft Graph.
Suporte nativo de autenticação em MSAL
O MSAL Android também permite implementar uma experiência nativa de autenticação com fluxos personalizáveis de ponta a ponta em aplicações móveis. Com a autenticação nativa, os utilizadores são guiados através de uma experiência avançada e nativa de registo e início de sessão, concebida primeiro para dispositivos móveis, sem sair da aplicação. A funcionalidade de autenticação nativa está disponível apenas para aplicações móveis em ID Externo para clientes.
Migrar de Azure Active Directory Authentication Library (ADAL)
A Azure Active Directory Authentication Library (ADAL) para Android foi descontinuada com efeito em junho de 2023. Se você ou a sua organização estiverem a utilizar a Azure Active Directory Authentication Library (ADAL) para Android, devem migrar para o MSAL Android para evitar colocar em risco a segurança da sua aplicação. A Biblioteca de Autenticação da Microsoft (MSAL) para Android é a biblioteca suportada que pode ser usada para autenticação e aquisição de tokens.
Começar com MSAL Android
Para usar MSAL Android na sua aplicação, precisa de:
- Registe a sua aplicação com o Microsoft Entra ID.
- Saiba mais sobre os tipos de aplicações para clientes: clientes públicos e confidenciais.
Como o MSAL Android suporta tanto experiências de autenticação delegada pelo navegador como nativa, siga os passos dos tutoriais seguintes com base no seu cenário.
Para cenários de autenticação delegada pelo navegador, consulte o quickstart, Iniciar sessão de utilizadores e chamar o Microsoft Graph a partir de uma aplicação Android.
Para cenários de autenticação nativa, consulte o guia de exemplo do ID externo Microsoft Entra, Tutorial: Prepare a sua aplicação Android para autenticação nativa.
Requirements
- Min SDK Versão 16+
- Target SDK Versão 33+
Passo 1: Declarar dependência da MSAL
Adicione ao build.gradle da sua aplicação:
dependencies {
implementation 'com.microsoft.identity.client:msal:4.9.+'
}
Por favor, adicione também as seguintes linhas à secção dos seus repositórios no seu script de gradle:
maven {
url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
}
Passo 2: Crie o seu ficheiro de configuração MSAL
Autenticação delegada pelo navegador:
Crie o seu ficheiro de configuração como um recurso "raw" no seu projeto. Consulte-o utilizando o identificador de recurso gerado ao construir uma instância de PublicClientApplication.. Se estiver a registar a sua aplicação no centro de administração Microsoft Entra pela primeira vez, também lhe será fornecido o ficheiro detalhado de configuração 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, o <YOUR_PACKAGE_NAME> refere-se ao nome do pacote devolvido pelo context.getPackageName() método. Este nome do pacote é o mesmo que o application_id definido no teu ficheiro build.gradle.
Os valores acima são a configuração mínima necessária. O MSAL baseia-se nos valores predefinidos que vêm com a biblioteca para todas as outras definições. Por favor, consulte a documentação dos ficheiros de configuração MSAL Android para compreender as definições da biblioteca.
Autenticação nativa:
- Clique com o botão direito do rato em res e escolha Novo > diretório. Introduza raw como o novo nome do diretório e selecione OK.
- Nesta nova pasta (app > src > main > res > raw), crie um novo ficheiro JSON chamado auth_config_native_auth.json e cole o seguinte modelo MSAL Configuration:
{
"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
}
}
Passo 3: Configurar o AndroidManifest.xml para autenticação delegada pelo navegador
- Solicite as seguintes permissões através do Android Manifest
<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
A não inclusão de um intent filter correspondente ao URI de redirecionamento que especificar na configuração resultará na falha do pedido interativo 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>
Pode consultar a MSAL Android FAQ para obter mais informações sobre problemas comuns com URI de redirecionamento.
ProGuard
O MSAL utiliza informações de reflexão e de tipos genéricos armazenadas em ficheiros .class em tempo de execução para suportar várias funcionalidades relacionadas com a persistência e a serialização. O suporte por parte das bibliotecas para minificação e ofuscação é limitado. Uma configuração padrão é fornecida com esta biblioteca; Por favor , apresenta uma reclamação se encontrares algum problema.
Recommendation
A MSAL é uma biblioteca de segurança. Controla como os utilizadores iniciam sessão e acedem aos serviços. Recomendamos que leve sempre a versão mais recente da nossa biblioteca na sua aplicação sempre que puder. Usamos versionamento semântico para que possa controlar o risco de atualizar a sua aplicação. Por exemplo, descarregar sempre a versão secundária mais recente (por exemplo, x.y.x) garante que obtém as melhorias de segurança e funcionalidades mais recentes, com a garantia de que a superfície da nossa API não mudou. Pode sempre ver as últimas versões e notas de lançamento no separador Releases do GitHub.