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.
Aplica-se a: Locatários da força de trabalho
Locatários externos (saiba mais)
Neste tutorial, você pode adicionar a MSAL (Biblioteca de Autenticação da Microsoft) para Android ao seu aplicativo Android. A MSAL permite que aplicativos Android autentiquem usuários com o Microsoft Entra.
Neste tutorial você irá aprender;
- Adicionar uma dependência da MSAL
- Adicionar configuração
- Criar uma instância do SDK da MSAL
Pré-requisitos
- Um locatário da força de trabalho. Você pode usar o Diretório Padrão ou configurar um novo locatário.
- Registre um novo aplicativo no Centro de administração do Microsoft Entra, configurado apenas para Contas neste diretório organizacional. Consulte Registrar um aplicativo para obter mais detalhes. Registre os seguintes valores na página visão geral do aplicativo para uso posterior:
- ID do aplicativo (cliente)
- ID do diretório (locatário)
- 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. Essas URIs são essenciais para redirecionar os usuários de volta ao aplicativo depois que eles entrarem com êxito.
Em Gerenciar, selecione Autenticação>Adicionar uma plataforma>Android.
Digite o Nome do Pacote do seu projeto com base no tipo de amostra que você baixou acima.
- Exemplo de Java -
com.azuresamples.msalandroidapp
- Exemplo de Kotlin -
com.azuresamples.msalandroidkotlinapp
- Exemplo de Java -
Em Hash de assinatura, que é uma seção do painel Configurar seu aplicativo Android, selecione Gerar um Hash de Assinatura de desenvolvimento e copie o comando KeyTool para a linha de comando.
- KeyTool.exe é instalado como parte do JDK (Java Development Kit). Você também precisará instalar a ferramenta OpenSSL para executar o comando KeyTool. Para mais informações, veja a documentação do Android sobre como gerar uma chave para obter mais informações.
Insira o Hash de assinatura gerado por KeyTool.
Selecione Configurar e salve a Configuração da MSAL exibida no painel Configuração do Android, de modo que você possa inseri-la quando configurar o aplicativo mais tarde.
Selecione Concluído.
Adicionar a dependência MSAL e as bibliotecas relevantes ao seu projeto
Para adicionar as dependências da MSAL no projeto Android, siga estas etapas:
Abra seu projeto no Android Studio ou crie um novo projeto.
Abra o aplicativo
build.gradle
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.+' //... }
Nos repositórios da configuração
build.gradle
, são definidas as dependências de projeto. Ele inclui uma URL do repositório Maven para acom.microsoft.device.display:display-mask
biblioteca do Azure DevOps. Além disso, ele utiliza repositórios do Maven Central e do Google. A seção dependências especifica a implementação da MSAL versão 5 e, potencialmente, de outras dependências.No Android Studio, selecione Arquivo>Sincronizar Projeto com Arquivos Gradle.
Adicionar configuração
Você passa os identificadores de locatário necessários, como a ID do aplicativo (cliente), para o SDK da MSAL por meio de uma configuração JSON.
Use estas etapas para criar o arquivo de configuração:
No painel do projeto do Android Studio, navegue até app\src\main\res.
Clique com o botão direito do mouse em res e escolha Novo>Diretório. Insira
raw
como o nome do novo diretório e selecione OK.Em app>src>main>res>raw, crie um arquivo JSON chamado
auth_config_single_account.json
e cole a Configuração da MSAL salva 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 Conta Única, confira o modo de conta única versus múltipla e como configurar seu aplicativo para obter mais informações
É recomendável usar 'WEBVIEW'. Caso deseje configurar "authorization_user_agent" como "BROWSER" em seu aplicativo, você precisará fazer as atualizações a seguir. a) Atualizar auth_config_single_account.json com “authorization_user_agent”: “Browser”. b) Atualização AndroidManifest.xml. No aplicativo, vá para app>src>main>AndroidManifest.xml, adicione a atividade
BrowserTabActivity
como um filho do elemento<application>
. Essa inserção permite que o Microsoft Entra ID faça uma chamada de retorno ao seu aplicativo após 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 o valor
android:host=.
. Ela deve ter aparência semelhante acom.azuresamples.msalandroidapp
. - Use o Hash de Assinatura para substituir o valor
android:path=
. Verifique se há um/
inicial no começo do seu hash de assinatura. Ela deve ter aparência semelhante a/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Você também encontra esses valores na folha Autenticação do registro do aplicativo.
- Use o Nome do pacote para substituir o valor
Criar uma instância do SDK da MSAL
Para inicializar a instância do SDK da 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 mSingleAccountApp
e chama o loadAccount()
método. Se ocorrer um erro durante a criação, ele manipulará o erro chamando o método displayError(exception).
Lembre-se de incluir as instruções de importação. O Android Studio deve incluir automaticamente as instruções de importação para você.