Início Rápido: Entrada de usuários e chamada à API do Microsoft Graph em um aplicativo AndroidQuickstart: Sign in users and call the Microsoft Graph API from an Android app

Aplica-se a:Applies to:
  • ponto de extremidade da plataforma de identidade da MicrosoftMicrosoft identity platform endpoint
  • MSAL (Biblioteca de Autenticação da Microsoft)Microsoft Authentication Library (MSAL)

Para uma biblioteca GA (disponibilidade geral), use o ponto de extremidade v1.0 do Azure AD (Azure Active Directory) e a ADAL (Biblioteca de Autenticação do Azure AD).For a general availability (GA) library, use the Azure Active Directory (Azure AD) v1.0 endpoint and Azure AD Authentication Library (ADAL). Para obter mais informações, confira Sobre a v1.0.For more info, see About v1.0.

Este início rápido contém um exemplo de código que demonstra como um aplicativo Android pode conectar contas corporativas, pessoais ou de estudante, obter um token de acesso e chamar a API do Microsoft Graph.This quickstart contains a code sample that demonstrates how an Android application can sign in personal or work and school accounts, get an access token, and call the Microsoft Graph API.

Mostra como o aplicativo de exemplo gerado por este início rápido funciona

Observação

Pré-requisitosPrerequisites

  • Android StudioAndroid Studio
  • É necessário ter o Android 16+Android 16+ is required

Registrar e baixar o aplicativo de início rápidoRegister and download your quickstart app

Você tem duas opções para iniciar o aplicativo de início rápido:You have two options to start your quickstart application:

Opção 1: Registrar e configurar o aplicativo automaticamente e, em seguida, baixar seu exemplo de códigoOption 1: Register and auto configure your app and then download your code sample

Etapa 1: Registre seu aplicativoStep 1: Register your application

Para registrar seu aplicativo,To register your app,

  1. Acesse o novo painel do portal do Azure – Registros de aplicativo.Go to the new Azure portal - App registrations pane.
  2. Insira um nome para seu aplicativo e selecione Registrar.Enter a name for your application and select Register.
  3. Siga as instruções para baixar e configurar automaticamente o novo aplicativo com apenas um clique.Follow the instructions to download and automatically configure your new application with just one click.

Opção 2: Registrar e configurar manualmente o aplicativo e o exemplo de códigoOption 2: Register and manually configure your application and code sample

Etapa 1: Registre seu aplicativoStep 1: Register your application

Para registrar seu aplicativo e adicionar as informações de registro do aplicativo à solução manualmente, siga estas etapas:To register your application and add the app's registration information to your solution manually, follow these steps:

  1. Navegue até a página Registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.Navigate to the Microsoft identity platform for developers App registrations page.
  2. Selecione Novo registro.Select New registration.
  3. Quando a página Registrar um aplicativo for exibida, insira as informações de registro do aplicativo:When the Register an application page appears, enter your application's registration information:
    • Na seção Nome, insira um nome de aplicativo relevante que será exibido aos usuários do aplicativo, por exemplo, AndroidQuickstart.In the Name section, enter a meaningful application name that will be displayed to users of the app, for example AndroidQuickstart.
    • É possível ignorar outras configurações nesta página.You can skip other configurations on this page.
    • Pressione o Register botão.Hit the Register button.
  4. Clique no novo aplicativo > acesse Authentication > Add Platform > Android.Click on the new app > go to Authentication > Add Platform > Android.
    • Insira o Nome do Pacote em seu projeto do Android Studio.Enter the Package Name from your Android studio project.
    • Gere um Hash de Assinatura.Generate a Signature Hash. Veja o portal para obter instruções.Refer to the portal for instructions.
  5. Selecione Configure e salve o JSON Configuração de MSAL para uso posterior.Select Configure and save the MSAL Configuration JSON for later.

Etapa 1: Configurar seu aplicativoStep 1: Configure your application

Para que o exemplo de código deste Início Rápido funcione, é necessário adicionar um URI de redirecionamento compatível com o Agente de autenticação.For the code sample for this quickstart to work, you need to add a redirect URI compatible with the Auth broker.

Já configurado Seu aplicativo já está configurado com esses atributosAlready configured Your application is configured with these attributes

Etapa 2: Baixe o projetoStep 2: Download the project

Etapa 3: Configurar seu projetoStep 3: Configure your project

Se você tiver selecionado a Opção 1 acima, poderá ignorar essas etapas.If you selected Option 1 above, you can skip these steps.

  1. Extraia e abra o projeto no Android Studio.Extract and open the Project in Android Studio.

  2. Em app > src > main > res > raw, abra auth_config.json.Inside app > src > main > res > raw, open auth_config.json.

  3. Edite auth_config.json e substitua-o pelo JSON do portal do Azure.Edit auth_config.json and replace it with the JSON from the Azure portal. Se, em vez disso, você desejar fazer as alterações manualmente:If instead you want to manually make the changes:

    {
       "client_id" : "Enter_the_Application_Id_Here",
       "authorization_user_agent" : "DEFAULT",
       "redirect_uri" : "Enter_the_Redirect_Uri_Here",
       "authorities" : [
          {
             "type": "AAD",
             "audience": {
                "type": "Enter_the_Audience_Info_Here",
                "tenant_id": "Enter_the_Tenant_Info_Here"
             }
          }
       ]
    }
    
  4. Dentro de app > manifests, abra AndroidManifest.xml.Inside app > manifests, open AndroidManifest.xml.

  5. Cole a seguinte atividade no nó manifest\application:Paste the following activity to the manifest\application node:

    <!--Intent filter to catch Microsoft's callback after 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="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
  6. Execute o aplicativo.Run the app!

Observação

Este início rápido dá suporte a Enter_the_Supported_Account_Info_Here.This quickstart supports Enter_the_Supported_Account_Info_Here.

  1. Extraia e abra o projeto no Android Studio.Extract and open the Project in Android Studio.
  2. Dentro de app > res > raw, abra auth_config.json.Inside app > res > raw, open auth_config.json.
  3. Edite auth_config.json e substitua-o pelo JSON do portal do Azure.Edit auth_config.json and replace it with the JSON from the Azure portal. Se, em vez disso, você desejar fazer estas alterações manualmente:If instead you want to manually make these changes:
    "client_id" : "ENTER_YOUR_APPLICATION_ID",
    "redirect_uri": "ENTER_YOUR_REDIRECT_URI", 
    
  4. Dentro de app > manifests, abra AndroidManifest.xml.Inside app > manifests, open AndroidManifest.xml.
  5. Adicione a seguinte atividade ao nó manifest\application.Add the following activity to the manifest\application node. Esse snippet de código registra um BrowserTabActivity para permitir que o sistema operacional continue executando o aplicativo depois de concluir a autenticação:This code snippet registers a BrowserTabActivity to allow the OS to resume your application after completing the authentication:
    <!--Intent filter to catch Microsoft's callback after 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="Enter_the_Package_Name"
                android:path="/Enter_the_Decoded_Signature_Hash" />
        </intent-filter>
    </activity>
    
  6. Substitua Enter_the_Package_Name e Enter_the_Signature_Hash pelos valores que você registrou no portal do Azure.Replace Enter_the_Package_Name and Enter_the_Signature_Hash with the values you registered in the Azure portal.
  7. Execute o aplicativo.Run the app!

Mais informaçõesMore Information

Leia as seções a seguir para obter mais informações sobre este início rápido.Read the following sections for more info about this quickstart.

Como obter o MSALGetting MSAL

MSAL (com.microsoft.identity.client) é a biblioteca usada para conectar usuários e solicitar tokens usados para acessar uma API protegida pela plataforma de identidade da Microsoft.MSAL (com.microsoft.identity.client) is the library used to sign in users and request tokens used to access an API protected by Microsoft identity platform. É possível usar o Gradle 3.0+ para instalá-lo adicionando o seguinte nos Scripts Gradle > build.gradle (módulo: aplicativo) em Dependências:You can use Gradle 3.0+ to install it by adding the following in Gradle Scripts > build.gradle (Module: app) under Dependencies:

implementation 'com.android.volley:volley:1.1.1'
implementation 'com.microsoft.identity.client:msal:0.3.+'

Inicialização da MSALMSAL initialization

Você pode adicionar a referência da MSAL adicionando o seguinte código:You can add the reference for MSAL by adding the following code:

import com.microsoft.identity.client.*;

Em seguida, inicialize a MSAL usando o seguinte código:Then, initialize MSAL using the following code:

    sampleApp = new PublicClientApplication(
        this.getApplicationContext(),
        R.raw.auth_config);
Em que:Where:
R.raw.auth_config Esse arquivo contém as configurações para seu aplicativo, incluindo a ID do aplicativo/cliente, Público-alvo de conexão, URI de Redirecionamento e várias outras opções de personalização.This file contains the configurations for your application including your App/Client ID, Sign-in audience, Redirect URI, and several other customization options.

Solicitando tokensRequesting tokens

A MSAL tem dois métodos para adquirir tokens: acquireToken e acquireTokenSilentAsyncMSAL has two methods used acquire tokens: acquireToken and acquireTokenSilentAsync

acquireToken: como obter um token de maneira interativaacquireToken: Getting a token interactively

Algumas situações exigem que os usuários interajam com a plataforma de identidade da Microsoft.Some situations require users to interact with Microsoft identity platform. Nesses casos, o usuário final talvez precise selecionar sua conta, inserir suas credenciais ou dar consentimento às permissões que seu aplicativo solicitou.In these cases, the end user may be required to select their account, enter their credentials, or consent to the permissions your app has requested. Por exemplo,For example,

  • A primeira vez que os usuários entram no aplicativoThe first time users sign in to the application
  • Se um usuário redefinir sua senha, ele precisará inserir suas credenciaisIf a user resets their password, they will need to enter their credentials
  • Se o consentimento for revogadoIf consent is revoked
  • Se seu aplicativo exigir consentimento explicitamente.If your app explicitly requires consent.
  • Quando seu aplicativo estiver solicitando acesso a um recurso pela primeira vezWhen your application is requesting access to a resource for the first time
  • Quando a MFA ou outras políticas de Acesso Condicional forem necessáriasWhen MFA or other Conditional Access policies are required
sampleApp.acquireToken(this, SCOPES, getAuthInteractiveCallback());
Em que:Where:
SCOPES Contém os escopos que estão sendo solicitados (ou seja, { "user.read" } para o Microsoft Graph ou { "<Application ID URL>/scope" } para as APIs Web personalizadas (ou seja, api://<Application ID>/access_as_user)Contains the scopes being requested (that is, { "user.read" } for Microsoft Graph or { "<Application ID URL>/scope" } for custom Web APIs (i.e. api://<Application ID>/access_as_user)
getAuthInteractiveCallback Controle de chamada executado quando o controle é dado de volta ao aplicativo após a autenticaçãoCallback executed when control is given back to the application after authentication

acquireTokenSilent: Obtendo um token de usuário no modo silenciosoacquireTokenSilent: Getting a user token silently

Os aplicativos não deverão exigir que seus usuários entrem sempre que solicitarem um token.Apps shouldn't require their users to sign in every time they request a token. Se o usuário já está conectado, esse método permite que os aplicativos solicitem tokens silenciosamente.If the user has already signed in, this method allows apps to request tokens silently.

    sampleApp.getAccounts(new PublicClientApplication.AccountsLoadedCallback() {
        @Override
        public void onAccountsLoaded(final List<IAccount> accounts) {

            if (!accounts.isEmpty()) {
                sampleApp.acquireTokenSilentAsync(SCOPES, accounts.get(0), getAuthSilentCallback());
            } else {
                /* No accounts */
            }
        }
    });
Em que:Where:
SCOPES Contém os escopos que estão sendo solicitados (ou seja, { "user.read" } para o Microsoft Graph ou { "<Application ID URL>/scope" } para as APIs Web personalizadas (ou seja, api://<Application ID>/access_as_user)Contains the scopes being requested (that is, { "user.read" } for Microsoft Graph or { "<Application ID URL>/scope" } for custom Web APIs (i.e. api://<Application ID>/access_as_user)
getAccounts(...) Contém a conta para a qual você está tentando obter tokens silenciosamenteContains the Account you're trying to get tokens for silently
getAuthSilentCallback() Controle de chamada executado quando o controle é dado de volta ao aplicativo após a autenticaçãoCallback executed when control is given back to the application after authentication

Próximas etapasNext steps

Conheça as etapas para criar o aplicativo usado neste início rápidoLearn the steps to create the application used in this quickstart

Experimente o tutorial do Android para um guia passo a passo completo sobre a criação de aplicativos e novos recursos, incluindo uma explicação completa deste início rápido.Try out the Android tutorial for a complete step-by-step guide on building applications and new features, including a full explanation of this quickstart.

MSAL para wiki da biblioteca do AndroidMSAL for Android library wiki

Leia mais informações sobre a biblioteca MSAL para Android:Read more information about MSAL library for Android:

Ajuda e suporteHelp and support

Se você precisar de Ajuda, quiser relatar um problema ou aprender mais sobre as opções de suporte, consulte o seguinte artigo:If you need help, want to report an issue, or want to learn more about your support options, see the following article:

Ajude-nos a melhorar a plataforma de identidade da Microsoft.Help us improve the Microsoft identity platform. Deixe sua opinião respondendo a uma breve pesquisa de duas perguntas.Tell us what you think by completing a short two-question survey.