Microsoft Authentication Library voor Android

De Microsoft Authentication Library (MSAL) voor Android is een bibliotheek waarmee Android-toepassingen gebruikers kunnen verifiëren met Microsoft identity platform (voorheen Azure Active Directory) en toegang krijgen tot beveiligde web-API's met behulp van OAuth2- en OpenID Connect-protocollen. MET MSAL Android kunnen ontwikkelaars beveiligingstokens verkrijgen van de Microsoft identity platform om gebruikers te verifiëren en toegang te krijgen tot beveiligde web-API's voor hun Android-toepassingen.

MSAL Android ondersteunt meerdere verificatiescenario's, zoals eenmalige aanmelding (SSO), voorwaardelijke toegang en brokered-verificatie. Hiermee kunt u eenvoudig verschillende identiteiten instellen, waaronder Microsoft Entra ID (werk- en schoolaccounts), Microsoft accounts (Outlook.com, hotmail.com en verschillende andere), of Azure AD B2C (Sociale en lokale accounts).

De richtlijnen hier zijn bedoeld voor het documenteren van algemene functies met betrekking tot MSAL Android. Als u meer hulp nodig hebt bij het aan de slag gaan met Microsoft Entra ID, Microsoft Accounts of Azure AD B2C, raadpleegt u de Microsoft identity platform documenten. Als u op zoek bent naar meer informatie over de Microsoft Graph-API, bekijkt u de Microsoft Graph documenten.

Ondersteuning voor systeemeigen verificatie in MSAL

Met MSAL Android kunt u ook een systeemeigen verificatie-ervaring implementeren met end-to-end aanpasbare stromen in mobiele toepassingen. Met systeemeigen verificatie worden gebruikers begeleid door een uitgebreide, systeemeigen, mobiele registratie en aanmeldingstraject zonder de app te verlaten. De functie voor systeemeigen verificatie is alleen beschikbaar voor mobiele apps binnen External ID for customers.

Migreren vanuit Azure Active Directory Authentication Library (ADAL)

De Azure Active Directory Authentication Library (ADAL) voor Android is vanaf juni 2023 afgeschaft. Als u of uw organisatie de Azure Active Directory Authentication Library (ADAL) voor Android gebruikt, moet u migreren naar MSAL Android om te voorkomen dat de beveiliging van uw app risico loopt. Microsoft Authentication Library (MSAL) voor Android is de ondersteunde bibliotheek die kan worden gebruikt voor verificatie en het verkrijgen van tokens.

Aan de slag met MSAL Android

Als u MSAL Android in uw toepassing wilt gebruiken, moet u het volgende doen:

Aangezien MSAL Android zowel browser-gedelegeerde als systeemeigen verificatie-ervaringen ondersteunt, volgt u de stappen in de volgende zelfstudies op basis van uw scenario.

Vereisten

  • Minimale SDK-versie 16+
  • Doel-SDK versie 33+

Stap 1: Afhankelijkheid van MSAL declareren

Voeg het volgende toe aan het build.gradle-bestand van uw app:

dependencies {
    implementation 'com.microsoft.identity.client:msal:4.9.+'
}

Voeg ook de volgende regels toe aan de sectie opslagplaatsen in uw gradle-script:

maven { 
    url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' 
}

Stap 2: uw MSAL-configuratiebestand maken

Door de browser gedelegeerde verificatie:

Maak uw configuratiebestand als een 'onbewerkte' resource in uw project. Verwijs ernaar met behulp van de gegenereerde resource-id bij het construeren van een PublicClientApplication-instantie. Als u uw app voor het eerst registreert in de Microsoft Entra-beheercentrum, krijgt u ook het gedetailleerde MSAL Android-configuratiebestand

{
  "client_id" : "<YOUR_CLIENT_ID>",
  "redirect_uri" : "msauth://<YOUR_PACKAGE_NAME>/<YOUR_BASE64_URL_ENCODED_PACKAGE_SIGNATURE>",
  "broker_redirect_uri_registered": true,
}

In de redirect_uri, de <YOUR_PACKAGE_NAME> verwijst naar de pakketnaam geretourneerd door de context.getPackageName() methode. Deze pakketnaam is hetzelfde als de application_id naam die in het build.gradle bestand is gedefinieerd.

De bovenstaande waarden zijn de minimaal vereiste configuratie. MSAL maakt voor alle andere instellingen gebruik van de standaardwaarden die met de bibliotheek worden meegeleverd. Raadpleeg de documentatie van het MSAL Android-configuratiebestand voor meer informatie over de standaardinstellingen van de bibliotheek.

Ingebouwde authenticatie:

  1. Klik met de rechtermuisknop op res en kies Nieuwe > map. Voer raw in als de naam van de nieuwe map en selecteer OK.
  2. Maak in deze nieuwe map (app > src > main > res > raw) een nieuw JSON-bestand met de naam auth_config_native_auth.json en plak de volgende sjabloon MSAL-configuratie:
{ 
  "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 
  } 
 }

Stap 3: de AndroidManifest.xml configureren voor door de browser gedelegeerde verificatie

  1. Vraag de volgende machtigingen aan via het Android-manifest
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  1. Een intentiefilter configureren in het Android-manifest met behulp van uw omleidings-URI

Als u geen intentiefilter opneemt dat overeenkomt met de omleidings-URI die u via de configuratie opgeeft, resulteert dit in een mislukte interactieve tokenaanvraag.

    <!--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>

Raadpleeg de veelgestelde vragen over MSAL Android voor meer informatie over veelvoorkomende problemen met omleidings-URI's.

ProGuard

MSAL maakt gebruik van reflectie- en algemene typegegevens die tijdens runtime zijn opgeslagen in .class bestanden ter ondersteuning van verschillende persistentie- en serialisatiegerelateerde functies. Ondersteuning door bibliotheken voor minificatie en obfuscatie is beperkt. Er wordt een standaardconfiguratie geleverd met deze bibliotheek; Dien een probleem in als u problemen vindt.

Recommendation

MSAL is een beveiligingsbibliotheek. Hiermee bepaalt u hoe gebruikers zich aanmelden en toegang krijgen tot services. We raden u aan altijd de nieuwste versie van onze bibliotheek in uw app te gebruiken wanneer u dat kunt. We gebruiken semantische versiebeheer , zodat u het risico van het bijwerken van uw app kunt beheren. Als u bijvoorbeeld altijd het meest recente secundaire versienummer (bijvoorbeeld x.y.x) downloadt, krijgt u de nieuwste beveiligings- en functiehanementen met de zekerheid dat ons API-oppervlak niet is gewijzigd. U kunt altijd de meest recente versie en releaseopmerkingen zien op het tabblad Releases van GitHub.