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.
Aplica-se a: Inquilinos do Workforce
Inquilinos externos (saber mais)
Neste tutorial, você sabe como adicionar a Biblioteca de Autenticação da Microsoft (MSAL) para Android ao seu aplicativo Android. O MSAL permite que os aplicativos Android autentiquem usuários com o Microsoft Entra.
Neste tutorial, você vai:
- Adicionar dependência MSAL
- Adicionar configuração
- Criar instância do SDK do MSAL
Pré-requisitos
- Um membro da força de trabalho. Você pode usar o seu diretório padrão ou configurar um novo inquilino.
- Registre um novo aplicativo no centro de administração do Microsoft Entra, configurado para Contas somente neste diretório organizacional. Consulte Registar uma candidatura para obter mais detalhes. Registre os seguintes valores na página Visão geral do aplicativo para uso posterior:
- ID da aplicação (cliente)
- ID do diretório (inquilino)
- Um projeto Android. Se você não tiver um projeto Android, crie-o.
Adicionar um URI de redirecionamento
Você deve configurar URIs de redirecionamento específicos no registro do aplicativo para garantir a compatibilidade com o exemplo de código baixado. Esses URIs são essenciais para redirecionar os usuários de volta ao aplicativo depois que eles entrarem com êxito.
Em Gerir, selecione Autenticação>Adicionar uma plataforma>Android.
Insira o nome do pacote do seu projeto com base no tipo de exemplo que você baixou acima.
- Exemplo Java -
com.azuresamples.msalandroidapp
- Amostra de Kotlin -
com.azuresamples.msalandroidkotlinapp
- Exemplo Java -
Na seção Assinatura de hash do painel Configurar a sua app Android, selecione a opção Gerar uma Assinatura de hash de desenvolvimento e copie o comando KeyTool para a linha de comando.
- KeyTool.exe é instalado como parte do Java Development Kit (JDK). Você também deve instalar a ferramenta OpenSSL para executar o comando KeyTool. Para obter mais informações, consulte a documentação do Android sobre como gerar uma chave para obter mais informações.
Introduza o Hash de assinatura gerado pelo KeyTool.
Selecione Configurar e salvar a Configuração do MSAL que aparece no painel de configuração do Android para que você possa inseri-la quando configurar seu aplicativo mais tarde.
Selecione Concluído.
Adicione a dependência MSAL e as bibliotecas relevantes ao seu projeto
Para adicionar dependências MSAL em seu projeto Android, execute estas etapas:
Abra seu projeto no Android Studio ou crie um novo projeto.
Abra o
build.gradle
do aplicativo e adicione as seguintes dependências:allprojects { repositories { //Needed for com.microsoft.device.display:display-mask library maven { url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' name 'Duo-SDK-Feed' } mavenCentral() google() } } //... dependencies { implementation 'com.microsoft.identity.client:msal:5.+' //... }
Na configuração
build.gradle
, os repositórios são definidos para dependências do projeto. Inclui a URL de repositório Maven para a bibliotecacom.microsoft.device.display:display-mask
do Azure DevOps. Além disso, utiliza repositórios do Maven Central e do Google. A seção dependências especifica a implementação do MSAL versão 5 e potencialmente outras dependências.No Android Studio, selecione Ficheiro>Sincronizar Projeto com Ficheiros Gradle.
Adicionar configuração
Você passa os identificadores de locatário necessários, como a ID do aplicativo (cliente), para o SDK do MSAL através de uma configuração JSON.
Use estas etapas para criar o arquivo de configuração:
No painel de projeto do Android Studio, vá até app\src\main\res.
Clique com o botão direito do mouse res e escolha New>Directory. Digite
raw
como o novo nome do diretório e selecione OK.Em aplicação>src>main>res>raw, crie um novo ficheiro JSON chamado
auth_config_single_account.json
e cole a Configuração MSAL que você salvou anteriormente.Abaixo do URI de redirecionamento, cole:
"account_mode" : "SINGLE",
Seu arquivo de configuração deve ser semelhante a este exemplo:
{ "client_id": "00001111-aaaa-bbbb-3333-cccc4444", "authorization_user_agent": "WEBVIEW", "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D", "broker_redirect_uri_registered": true, "account_mode": "SINGLE", "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" } } ] }
Como este tutorial demonstra apenas como configurar um aplicativo no modo de Conta Única, consulte modo de conta única versus múltipla e como configurar seu aplicativo para obter mais informações
Recomendamos o uso de 'WEBVIEW'. Caso você queira configurar "authorization_user_agent" como "NAVEGADOR" em seu aplicativo, você precisa fazer as seguintes atualizações. a) Atualize auth_config_single_account.json com "authorization_user_agent": "Browser". b) Atualizar AndroidManifest.xml. Na app, vá para app>src>principal>AndroidManifest.xml, adicione a atividade
BrowserTabActivity
como filho do elemento<application>
. Esta entrada permite que o Microsoft Entra ID retorne ao seu aplicativo depois de concluir a autenticação.<!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in--> <activity android:name="com.microsoft.identity.client.BrowserTabActivity" android:exported="true"> <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="Enter_the_Package_Name" android:path="/Enter_the_Signature_Hash" /> </intent-filter> </activity>
- Use o Nome do pacote para substituir
android:host=.
valor. Deve parecercom.azuresamples.msalandroidapp
. - Use o Hash de Assinatura para substituir o valor
android:path=
. Certifique-se de que há um/
principal no início do seu Hash de Assinatura. Deve parecer/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Também pode encontrar esses valores na página de autenticação do registo da sua aplicação.
- Use o Nome do pacote para substituir
Criar instância do SDK do MSAL
Para inicializar a instância do SDK do MSAL, use o seguinte código:
PublicClientApplication.createSingleAccountPublicClientApplication(
getContext(),
R.raw.auth_config_single_account,
new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
@Override
public void onCreated(ISingleAccountPublicClientApplication application) {
// Initialize the single account application instance
mSingleAccountApp = application;
loadAccount();
}
@Override
public void onError(MsalException exception) {
// Handle any errors that occur during initialization
displayError(exception);
}
}
);
Esse código cria um aplicativo cliente público de conta única usando o arquivo de configuração auth_config_single_account.json. Quando o aplicativo é criado com êxito, ele atribui a instância ao mSingleAccountApp
e chama o método loadAccount()
. Se ocorrer um erro durante a criação, ele manipulará o erro chamando o método displayError(exception).
Certifique-se de incluir as instruções de importação. O Android Studio deve incluir automaticamente as instruções de importação para si.