Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Locataires de main-d’œuvre
Locataires externes (en savoir plus)
Il s’agit du deuxième tutoriel de la série de tutoriels qui montre comment ajouter microsoft Authentication Library (MSAL) pour iOS et macOS à votre application iOS Swift.
Avant de commencer, utilisez le sélecteur Choisir un type de locataire en haut de cette page pour sélectionner un type de locataire. Microsoft Entra ID fournit deux configurations de locataire : employés et externe. Une configuration de tenant de main-d’œuvre est destinée à vos employés, applications internes et autres ressources organisationnelles. Le locataire externe est destiné à vos applications accessibles par des clients.
Dans ce tutoriel, vous allez :
- Ajoutez l’infrastructure MSAL à une application iOS (Swift).
- Créez une instance du Kit de développement logiciel (SDK).
- Configurez les paramètres du projet Xcode.
Conditions préalables
- Inscrivez une nouvelle application web cliente dans le Centre d’administration Microsoft Entra, configurée pour les comptes dans n’importe quel annuaire organisationnel et comptes Microsoft personnels. Pour plus d’informations, reportez-vous à l'enregistrement d'une application. Enregistrez les valeurs suivantes à partir de la page Vue d’ensemble de l’application pour une utilisation ultérieure :
- ID d’application (client)
- ID d’annuaire (locataire)
- Xcode.
- Projet iOS (Swift).
Ajouter une URL de redirection de plateforme
Pour spécifier votre type d’application à votre inscription d’application, procédez comme suit :
- Sous Gérer, sélectionnez Authentification>Ajouter une plateforme>iOS/macOS.
- Entrez l’ID de bundle de votre projet. Si vous avez téléchargé l’exemple de code, l’ID de bundle est
com.microsoft.identitysample.MSALiOS
. Si vous créez votre propre projet, sélectionnez-le dans Xcode et ouvrez l’onglet Général. L’identificateur de bundle apparaît dans la section Identité. - Sélectionnez Configurer et enregistrez la Configuration MSAL qui apparaît dans la page Configuration MSAL pour pouvoir l’entrer plus tard quand vous devrez configurer votre application.
- Cliquez sur Terminé.
Ajouter l’infrastructure MSAL à une application iOS (Swift)
Choisissez l’une des méthodes suivantes pour installer la bibliothèque MSAL dans votre application :
CocoaPods
Si vous utilisez CocoaPods, installez
MSAL
en commençant par créer un fichier vide nommé podfile dans le même dossier que le fichier .xcodeproj de votre projet. Ajoutez l’élément suivant à podfile :use_frameworks! target '<your-target-here>' do pod 'MSAL' end
Remplacez
<your-target-here>
par le nom de votre projet.Dans une fenêtre de terminal, accédez au dossier qui contient le podfile que vous avez créé et exécutez
pod install
pour installer la bibliothèque MSAL.Fermez Xcode et ouvrez
<your project name>.xcworkspace
pour recharger le projet dans Xcode.
Carthage
Si vous utilisez Carthage, installez MSAL
en l’ajoutant à votre Cartfile :
github "AzureAD/microsoft-authentication-library-for-objc" "master"
À partir d’une fenêtre de terminal, dans le même répertoire que le Cartfile mis à jour, exécutez la commande suivante pour que Carthage mette à jour les dépendances dans votre projet.
iOS :
carthage update --platform iOS
macOS :
carthage update --platform macOS
Manuellement
Vous pouvez également utiliser Git Submodule ou consulter la dernière version pour l’utiliser comme framework dans votre application.
Ajouter l'enregistrement de l'application
Ensuite, nous ajoutons l’enregistrement de votre application à votre code.
Tout d’abord, ajoutez l’instruction import suivante en haut du fichier ViewController.swift et AppDelegate.swift ou SceneDelegate.swift :
import MSAL
Ensuite, ajoutez le code suivant à ViewController.swift avant viewDidLoad()
:
// Update the below to your client ID. The below is for running the demo only
let kClientID = "Your_Application_Id_Here"
let kGraphEndpoint = "https://graph.microsoft.com/" // the Microsoft Graph endpoint
let kAuthority = "https://login.microsoftonline.com/common" // this authority allows a personal Microsoft account and a work or school account in any organization's Azure AD tenant to sign in
let kScopes: [String] = ["user.read"] // request permission to read the profile of the signed-in user
var accessToken = String()
var applicationContext : MSALPublicClientApplication?
var webViewParameters : MSALWebviewParameters?
var currentAccount: MSALAccount?
La seule valeur que vous devez modifier est celle qui est attribuée à kClientID
comme ID d’application. Cette valeur fait partie des données de configuration MSAL que vous avez enregistrées lors de l'étape du début de ce didacticiel pour enregistrer l'application.
Créer une instance du Kit de développement logiciel (SDK)
Pour créer une instance MSAL dans votre projet, procédez comme suit :
Ajoutez la méthode ViewController
à la classe initMSAL
:
func initMSAL() throws {
guard let authorityURL = URL(string: kAuthority) else {
self.updateLogging(text: "Unable to create authority URL")
return
}
let authority = try MSALAADAuthority(url: authorityURL)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
self.initWebViewParams()
}
Toujours dans la classe ViewController
et après la méthode initMSAL
, ajoutez la méthode initWebViewParams
:
Code iOS :
func initWebViewParams() {
self.webViewParameters = MSALWebviewParameters(authPresentationViewController: self)
}
Code macOS :
func initWebViewParams() {
self.webViewParameters = MSALWebviewParameters()
}
Configurer les paramètres d’un projet Xcode
Ajoutez un nouveau groupe de trousseaux à votre projet Signature et fonctionnalités. Le groupe de trousseaux doit être com.microsoft.adalcache
sur iOS et com.microsoft.identity.universalstorage
sur macOS.
Pour iOS uniquement, configurer des schémas d’URL
Lors de cette étape, vous allez inscrire CFBundleURLSchemes
afin que l’utilisateur puisse être redirigé vers l’application après la connexion. Notez que LSApplicationQueriesSchemes
permet également à votre application d’utiliser Microsoft Authenticator.
Dans Xcode, ouvrez Info.plist en tant que fichier de code source et ajoutez ce qui suit dans la section <dict>
. Remplacez [BUNDLE_ID]
par la valeur que vous avez utilisée précédemment. Si vous avez téléchargé le code, l’identificateur de bundle est com.microsoft.identitysample.MSALiOS
. Si vous créez votre propre projet, sélectionnez-le dans Xcode et ouvrez l’onglet Général. L’identificateur de bundle apparaît dans la section Identité.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>msauth.[BUNDLE_ID]</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Pour macOS uniquement, configurer App Sandbox
- Accédez à vos paramètres de projet Xcode >onglet Capacités>App Sandbox.
- Cochez la case Connexions sortantes (client) .
Étapes suivantes
Il s’agit du deuxième tutoriel de la série de tutoriels qui montre comment ajouter microsoft Authentication Library (MSAL) pour iOS et macOS à votre application iOS Swift.
Avant de commencer, utilisez le sélecteur Choisir un type de locataire en haut de cette page pour sélectionner un type de locataire. Microsoft Entra ID fournit deux configurations de locataire : employés et externe. Une configuration de tenant de main-d’œuvre est destinée à vos employés, applications internes et autres ressources organisationnelles. Le locataire externe est destiné à vos applications accessibles par des clients.
Dans ce tutoriel, vous ;
- Ajoutez l’infrastructure MSAL à une application iOS (Swift).
- Créez une instance du Kit de développement logiciel (SDK).
Conditions préalables
- Inscrivez une nouvelle application web cliente dans le Centre d’administration Microsoft Entra, configurée pour les comptes dans n’importe quel annuaire organisationnel et comptes Microsoft personnels. Pour plus d’informations, reportez-vous à l'enregistrement d'une application. Enregistrez les valeurs suivantes à partir de la page Vue d’ensemble de l’application pour une utilisation ultérieure :
- ID d’application (client)
- ID d’annuaire (locataire)
- Xcode.
- Projet iOS (Swift).
Ajouter une URL de redirection de plateforme
Pour spécifier votre type d’application à votre inscription d’application, procédez comme suit :
- Sous Gérer, sélectionnez Authentification>Ajouter une plateforme>iOS/macOS.
- Entrez l’ID de bundle de votre projet. Si vous avez téléchargé l’exemple de code, l’ID de bundle est
com.microsoft.identitysample.MSALiOS
. Si vous créez votre propre projet, sélectionnez-le dans Xcode et ouvrez l’onglet Général. L’identificateur de bundle apparaît dans la section Identité. - Sélectionnez Configurer et enregistrez la Configuration MSAL qui apparaît dans la page Configuration MSAL pour pouvoir l’entrer plus tard quand vous devrez configurer votre application.
- Cliquez sur Terminé.
Activer le flux de client public
Pour identifier votre application en tant que client public, procédez comme suit :
Sous Gérer, sélectionnez Authentification.
Sous Paramètres avancés, pour Autoriser les flux clients publics, sélectionnez Oui.
Cliquez sur Enregistrer pour enregistrer vos modifications.
Ajouter l’infrastructure MSAL à une application iOS (Swift)
Le Kit de développement logiciel (SDK) d’authentification MSAL est utilisé pour intégrer l’authentification dans vos applications à l’aide d’OAuth2 standard et d’OpenID Connect. Il vous permet de connecter des utilisateurs ou des applications avec des identités Microsoft. Pour ajouter MSAL à votre projet iOS (Swift), procédez comme suit :
- Ouvrez votre projet iOS dans Xcode.
- Sélectionnez Ajouter des dépendances de package... dans le menu Fichier .
- Entrez
https://github.com/AzureAD/microsoft-authentication-library-for-objc
en tant qu’URL du package et choisissez Ajouter un package
Mettre à jour l’identificateur de bundle
Dans l’écosystème Apple, un identificateur bundle est un identificateur unique pour une application. Pour mettre à jour l’identificateur de bundle dans votre projet, procédez comme suit :
Ouvrez les paramètres du projet. Dans la section Identité, entrez l'identification du lot.
Cliquez avec le bouton droit sur Info.plist, puis sélectionnez Ouvrir en tant que code source>.
Sous le nœud racine dict, remplacez
Enter_the_bundle_Id_Here
par l'identifiant du bundle que vous avez utilisé dans le portail. Notez le préfixemsauth.
dans la chaîne.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Créer une instance du Kit de développement logiciel (SDK)
Pour créer une instance MSAL dans votre projet, procédez comme suit :
Importez la bibliothèque MSAL dans votre contrôleur de vue en ajoutant
import MSAL
en haut de votreViewController
classe.Ajoutez une
applicationContext
variable membre à votre classe ViewController en ajoutant le code suivant juste avant laviewDidLoad()
fonction :var applicationContext : MSALPublicClientApplication? var webViewParameters : MSALWebviewParameters?
Le code déclare deux variables :
applicationContext
, qui stocke une instance deMSALPublicClientApplication
, etwebViewParameters
, qui stocke une instance deMSALWebviewParameters
.MSALPublicClientApplication
est une classe fournie par MSAL pour la gestion des applications clientes publiques. IlMSALWebviewParameters
s’agit d’une classe fournie par MSAL qui définit les paramètres de configuration de la vue web utilisée pendant le processus d’authentification.Ajoutez le code suivant à la fonction d’affichage
viewDidLoad()
:do { try self.initMSAL() } catch let error { self.updateLogging(text: "Unable to create Application Context \(error)") }
Le code tente d’initialiser MSAL, en gérant les erreurs qui se produisent pendant le processus. Si une erreur se produit, elle met à jour la journalisation avec les détails de l’erreur.
Ajoutez le code suivant pour créer une fonction
initMSAL()
qui initialise MSAL :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) }
Ce code initialise MSAL pour iOS. Il tente d’abord de créer une URL pour l’autorité à l’aide de la chaîne Configuration.kAuthority fournie. Si elle réussit, elle crée un objet d’autorité MSAL basé sur cette URL. Ensuite, il configure le
MSALPublicClientApplication
avec l'ID client, l'URI de redirection et l'autorité donnés. Si toutes les configurations sont correctement configurées, elle initialise le contexte d’application avec le paramètre configuréMSALPublicClientApplication
. Si des erreurs se produisent pendant le processus, une erreur est générée.Créez un fichier Configuration.swift et ajoutez les configurations suivantes :
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" }
Ce code de configuration Swift définit une classe nommée
Configuration
et est marquée avec@objcMembers
. Il inclut des constantes statiques pour différents paramètres de configuration liés à une configuration d’authentification. Ces paramètres incluent le sous-domaine du locataire, l'identifiant client, l'URI de redirection, le point de terminaison d'API protégé et les étendues. Ces constantes de configuration doivent être mises à jour avec les valeurs appropriées propres à la configuration de l’application.Trouvez l’espace réservé :
Enter_the_Application_Id_Here
et remplacez-le par l’ID d’application (client) de l’application inscrite précédemment.Enter_the_Redirect_URI_Here
et remplacez-la par la valeur de kRedirectUri dans le fichier de configuration MSAL que vous avez téléchargé précédemment lorsque vous avez ajouté l’URL de redirection de la plateforme.Enter_the_Protected_API_Scopes_Here
et remplacez-le par les portées enregistrées précédemment. Si vous n’avez enregistré aucune étendue, vous pouvez laisser cette liste d’étendues vide.Enter_the_Tenant_Subdomain_Here
et remplacez-le par le sous-domaine du répertoire (locataire). Par exemple, si le domaine principal de votre locataire estcontoso.onmicrosoft.com
, utilisezcontoso
. Si vous ne connaissez pas votre sous-domaine de locataire, découvrez comment lire les détails de votre locataire.
Utiliser un domaine d’URL personnalisé (facultatif)
Utilisez un domaine personnalisé pour personnaliser entièrement l’URL d’authentification. Du point de vue de l’utilisateur, les utilisateurs restent sur votre domaine pendant le processus d’authentification, au lieu d’être redirigés vers ciamlogin.com nom de domaine.
Procédez comme suit pour utiliser un domaine personnalisé :
Utilisez les étapes décrites dans Activer les domaines d’URL personnalisés pour les applications dans les locataires externes afin d’activer le domaine d’URL personnalisé pour votre locataire externe.
Ouvrez le fichier Configuration.swift :
- Mettez à jour la valeur de la
kAuthority
propriété sur https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. RemplacezEnter_the_Custom_Domain_Here
par votre domaine d’URL personnalisé etEnter_the_Tenant_ID_Here
par votre ID de locataire. Si vous n’avez pas votre identifiant de locataire, apprenez comment consulter les détails de votre locataire.
- Mettez à jour la valeur de la
Après avoir apporté les modifications à votre fichier Configuration.swift , si votre domaine d’URL personnalisé est login.contoso.com, et que votre ID de locataire est aaaabbbb-0000-cccc-1111-dddd222eeee, votre fichier doit ressembler à l’extrait de code suivant :
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"
}