Delen via


Zelfstudie: Uw iOS-app (Swift) voorbereiden voor verificatie

Dit is de tweede zelfstudie in de reeks zelfstudies die laat zien hoe u Microsoft Authentication Library (MSAL) voor iOS en macOS toevoegt aan uw iOS Swift-app.

In deze zelfstudie gaat u;

  • Voeg het MSAL-framework toe aan een iOS-app (Swift).
  • Een SDK-exemplaar maken.

Vereisten

  • Xcode.
  • Als u dit nog niet hebt gedaan, volgt u de instructies in de zelfstudie: Mobiele iOS-app (Swift) registreren en configureren en een app registreren in uw externe tenant. Zorg ervoor dat u de volgende stappen uitvoert:
    • Een toepassing registreren.
    • Voeg een omleidings-URL voor het platform toe.
    • Schakel de openbare clientstroom in.
    • Gedelegeerde machtiging voor Microsoft Graph.
  • iOS-project (Swift).

Het MSAL-framework toevoegen aan een iOS-app (Swift)

De MSAL Authentication SDK wordt gebruikt voor het integreren van verificatie in uw apps met behulp van standaard OAuth2 en OpenID Connect. Hiermee kunt u zich aanmelden bij gebruikers of apps met Microsoft-identiteiten. Voer de volgende stappen uit om MSAL toe te voegen aan uw iOS-project (Swift):

  1. Open uw iOS-project in Xcode.
  2. Selecteer Pakketafhankelijkheden toevoegen... in het menu Bestand .
  3. Voer in https://github.com/AzureAD/microsoft-authentication-library-for-objc als pakket-URL en kies Pakket toevoegen

De bundel-id bijwerken

In het Apple-ecosysteem is een bundel-id een unieke id voor een toepassing. Volg deze stappen om de bundel-id in uw project bij te werken:

  1. Open de projectinstellingen. Voer in de sectie Identiteit de bundel-id in.

  2. Klik met de rechtermuisknop op Info.plist en selecteer Openen als>Broncode.

  3. Vervang onder het dict-hoofdknooppunt Enter_the_bundle_Id_Here door de bundel-id die u in de portal hebt gebruikt. Let op het voorvoegsel msauth. in de tekenreeks.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    

EEN SDK-exemplaar maken

Voer de volgende stappen uit om een MSAL-exemplaar in uw project te maken:

  1. Importeer de MSAL-bibliotheek in uw weergavecontroller door boven aan uw ViewController klas toe te voegenimport MSAL.

  2. Voeg een applicationContext lidvariabele toe aan uw ViewController-klasse door de volgende code toe te voegen vlak voor de viewDidLoad() functie:

    var applicationContext : MSALPublicClientApplication?
    var webViewParamaters : MSALWebviewParameters?
    

    De code declareert twee variabelen: applicationContext, waarmee een exemplaar van MSALPublicClientApplicationen webViewParameters, waarmee een exemplaar van MSALWebviewParameters. MSALPublicClientApplication is een klasse die wordt geleverd door MSAL voor het verwerken van openbare clienttoepassingen. Dit MSALWebviewParameters is een klasse van MSAL die parameters definieert voor het configureren van de webweergave die tijdens het verificatieproces wordt gebruikt.

  3. Voeg de volgende code toe aan de weergavefunctie viewDidLoad() :

     do {
            try self.initMSAL()
        } catch let error {
            self.updateLogging(text: "Unable to create Application Context \(error)")
        }
    

    De code probeert MSAL te initialiseren, waarbij eventuele fouten tijdens het proces worden verwerkt. Als er een fout optreedt, wordt de logboekregistratie bijgewerkt met de details van de fout.

  4. Voeg de volgende code toe waarmee een functie wordt gemaakt initMSAL() , waarmee MSAL wordt geïnitialiseerd:

        func initMSAL() throws {
    
        guard let authorityURL = URL(string: Configuration.kAuthority) else {
            self.updateLogging(text: "Unable to create authority URL")
            return
        }
    
        let authority = try MSALCIAMAuthority(url: authorityURL)
    
        let msalConfiguration = MSALPublicClientApplicationConfig(clientId: Configuration.kClientID,
                                                                  redirectUri: Configuration.kRedirectUri,
                                                                  authority: authority)
        self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
    }
    

    Met deze code wordt de MSAL voor iOS geïnitialiseerd. Er wordt eerst geprobeerd een URL voor de instantie te maken met behulp van de opgegeven Configuration.kAuthority-tekenreeks . Als dit lukt, wordt er een MSAL-instantieobject gemaakt op basis van die URL. Vervolgens configureert het de MSALPublicClientApplication met de opgegeven client-id, omleidings-URI en instantie. Als alle configuraties correct zijn ingesteld, wordt de toepassingscontext geïnitialiseerd met de geconfigureerde MSALPublicClientApplication. Als er fouten optreden tijdens het proces, treedt er een fout op.

  5. Maak het bestand Configuration.swift en voeg de volgende configuraties toe:

    import Foundation
    
    @objcMembers
    class Configuration {
        static let kTenantSubdomain = "Enter_the_Tenant_Subdomain_Here"
    
        // Update the below to your client ID you received in the portal.
        static let kClientID = "Enter_the_Application_Id_Here"
        static let kRedirectUri = "Enter_the_Redirect_URI_Here"
        static let kProtectedAPIEndpoint = "Enter_the_Protected_API_Full_URL_Here"
        static let kScopes = ["Enter_the_Protected_API_Scopes_Here"]
    
        static let kAuthority = "https://\(kTenantSubdomain).ciamlogin.com"
    
    }
    

    Deze Swift-configuratiecode definieert een klasse met de naam Configuration en wordt gemarkeerd met @objcMembers. Het bevat statische constanten voor verschillende configuratieparameters met betrekking tot een verificatie-instelling. Deze parameters omvatten het tenantsubdomein, client-id, omleidings-URI, beveiligd API-eindpunt en bereiken. Deze configuratieconstanten moeten worden bijgewerkt met de juiste waarden die specifiek zijn voor de installatie van de toepassing.

    Zoek de tijdelijke aanduiding:

    • 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 kRedirectUri in het MSAL-configuratiebestand dat u eerder hebt gedownload toen u de omleidings-URL van het platform toevoegde.
    • Enter_the_Protected_API_Scopes_Here en vervang deze door de bereiken die eerder zijn vastgelegd. Als u geen bereiken hebt vastgelegd, kunt u deze bereiklijst leeg laten.
    • 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.

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 het bestand Configuration.swift :

    1. Werk de waarde van de kAuthority 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.

Nadat u de wijzigingen hebt aangebracht in het bestand Configuration.swift, als uw aangepaste URL-domein is login.contoso.com en uw tenant-id aaaabbbb-0000-cccc-1111-dddd2222eeeee is, moet uw bestand er ongeveer als volgt uitzien:

    import Foundation

    @objcMembers
    class Configuration {
        static let kTenantSubdomain = "login.contoso.com"
        
        // Update the below to your client ID you received in the portal.
        static let kClientID = "Enter_the_Application_Id_Here"
        static let kRedirectUri = "Enter_the_Redirect_URI_Here"
        static let kProtectedAPIEndpoint = "Enter_the_Protected_API_Full_URL_Here"
        static let kScopes = ["Enter_the_Protected_API_Scopes_Here"]
        
        static let kAuthority = "https://\(kTenantSubdomain)/aaaabbbb-0000-cccc-1111-dddd2222eeee"
    
    }

Volgende stappen

Zelfstudie: Gebruikers aanmelden in de mobiele iOS-app (Swift)