Share via


Zelfstudie: Uw Android-app (Kotlin) voorbereiden voor verificatie

Dit is de tweede zelfstudie in de reeks zelfstudies die laat zien hoe u Microsoft Authentication Library (MSAL) voor Android toevoegt aan uw Android-app (Kotlin). MET MSAL kunnen Android-toepassingen gebruikers verifiëren met Microsoft Entra.

In deze zelfstudie gaat u:

  • MSAL-afhankelijkheden toevoegen.
  • Configuratie toevoegen.

Vereisten

  • Android Studio
  • Als u dat nog niet hebt gedaan, volgt u de instructies in zelfstudie: Mobiele Android-app (Kotlin) registreren en configureren en een app registreren in uw externe tenant.
  • Een Android-project. Als u geen Android-project hebt, maakt u het.

MSAL-afhankelijkheden toevoegen

Volg deze stappen om MSAL-afhankelijkheden toe te voegen aan uw Android-project:

  1. Open uw project in Android Studio of maak een nieuw project.

  2. Open de toepassing build.gradle en voeg de volgende afhankelijkheden toe:

    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.+'
        //...
    }
    

    In de build.gradle configuratie worden opslagplaatsen gedefinieerd voor projectafhankelijkheden. Het bevat een URL van de Maven-opslagplaats voor de com.microsoft.device.display:display-mask bibliotheek van Azure DevOps. Daarnaast worden Maven Central en Google-opslagplaatsen gebruikt. In de sectie Afhankelijkheden wordt de implementatie van MSAL versie 5 en mogelijk andere afhankelijkheden opgegeven.

  3. Selecteer in Android Studio Het File Sync-project>met Gradle Files.

Configuratie toevoegen

U geeft de vereiste tenant-id's, zoals de toepassings-id (client), door aan de MSAL SDK via een JSON-configuratie-instelling.

Gebruik deze stappen om een configuratiebestand te maken:

  1. Ga in het projectdeelvenster van Android Studio naar app\src\main\res.

  2. Klik met de rechtermuisknop op res en selecteer Nieuwe>map. Voer raw de naam van de nieuwe map in en selecteer OK.

  3. Maak in app\src\main\res\raw een nieuw JSON-bestand met de naam auth_config_ciam_auth.json.

  4. Voeg in het auth_config_ciam_auth.json bestand de volgende MSAL-configuraties toe:

    {
      "client_id" : "Enter_the_Application_Id_Here",
      "authorization_user_agent" : "DEFAULT",
      "redirect_uri" : "Enter_the_Redirect_Uri_Here",
      "account_mode" : "SINGLE",
      "authorities" : [
        {
          "type": "CIAM",
          "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/"
        }
      ]
    }
    

    Het JSON-configuratiebestand specificeert verschillende instellingen voor een Android-toepassing. Het bevat de client-id, autorisatiegebruikersagent, omleidings-URI en accountmodus. Daarnaast definieert het een instantie voor verificatie, waarbij het type en de URL van de instantie worden opgegeven.

    Vervang de volgende tijdelijke aanduidingen door uw tenantwaarden die u hebt verkregen via het Microsoft Entra-beheercentrum:

    • Enter_the_Application_Id_Here en vervang deze door de toepassings-id (client) van de app die u eerder hebt geregistreerd.
    • Enter_the_Redirect_Uri_Here en vervang deze door de waarde van redirect_uri in het MSAL-configuratiebestand (Microsoft Authentication Library) dat u eerder hebt gedownload toen u de omleidings-URL van het platform toevoegde.
    • Enter_the_Tenant_Subdomain_Here en vervang het door het subdomein Directory (tenant). Als uw primaire tenantdomein bijvoorbeeld is contoso.onmicrosoft.com, gebruikt u contoso. Als u uw tenantsubdomein niet weet, leest u de details van uw tenant.
  5. Open het bestand /app/src/main/AndroidManifest.xml .

  6. Voeg in AndroidManifest.xml de volgende gegevensspecificatie toe aan een intentiefilter:

    <data
        android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE"
        android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE"
        android:scheme="msauth" />
    

    Zoek de tijdelijke aanduiding:

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE en vervang deze door de naam van uw Android-projectpakket.
    • ENTER_YOUR_SIGNATURE_HASH_HERE en vervang deze door de handtekening-hash die u eerder hebt gegenereerd toen u de omleidings-URL van het platform toevoegde.

Aangepast URL-domein gebruiken (optioneel)

Gebruik een aangepast domein om de verificatie-URL volledig te merken. Vanuit gebruikersperspectief blijven gebruikers in uw domein tijdens het verificatieproces in plaats van omgeleid naar ciamlogin.com domeinnaam.

Gebruik de volgende stappen om een aangepast domein te gebruiken:

  1. Gebruik de stappen in Aangepaste URL-domeinen inschakelen voor apps in externe tenants om aangepast URL-domein in te schakelen voor uw externe tenant.

  2. Open auth_config_ciam_auth.json bestand:

    1. Werk de waarde van de authority_url eigenschap bij naar https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Vervang Enter_the_Custom_Domain_Here door uw aangepaste URL-domein en Enter_the_Tenant_ID_Here door uw tenant-id. Als u uw tenant-id niet hebt, leest u de details van uw tenant.
    2. Voeg knownAuthorities de eigenschap toe met een waarde [Enter_the_Custom_Domain_Here].

Nadat u de wijzigingen hebt aangebracht in uw auth_config_ciam_auth.json-bestand, als uw aangepaste URL-domein is login.contoso.com en uw tenant-id aaaabb-0000-cccc-1111-ddd2222eeeee is, moet uw bestand er ongeveer uitzien als het volgende fragment:

{
    "client_id" : "Enter_the_Application_Id_Here",
    "authorization_user_agent" : "DEFAULT",
    "redirect_uri" : "Enter_the_Redirect_Uri_Here",
    "account_mode" : "SINGLE",
    "authorities" : [
    {
        "type": "CIAM",
        "authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "knownAuthorities": ["login.contoso.com"]
    }
    ]
}

MSAL SDK-exemplaar maken

Gebruik de volgende code om het MSAL SDK-exemplaar te initialiseren:

private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
    return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
        this@MainActivity,
        R.raw.auth_config_ciam_auth
    )
}

De code initialiseert asynchroon een openbare clienttoepassing met één account. Het maakt gebruik van het opgegeven verificatieconfiguratiebestand en wordt uitgevoerd op de I/O-dispatcher.

Zorg ervoor dat u de importinstructies opneemt. Android Studio moet automatisch de importinstructies voor u bevatten.

Volgende stappen

Zelfstudie: Gebruikers aanmelden in de mobiele Android-app (Kotlin)