Skip to main content
Répondez à notre enquête sur la communauté de dix minutes. L'enquête est ouverte jusqu'au 19 juillet. Cliquez ici pour participer.

Découverte des principes de sécurité et d’authentification

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Identifier les méthodes de sécurité et d’authentification utilisées dans les applications Salesforce
  • Décrire l’utilisation des applications clientes externes pour l’intégration d’applications mobiles au serveur Salesforce
  • Expliquer la terminologie OAuth de base
  • Décrire le flux d’événements de l’authentification OAuth et de la sécurité grâce à un code PIN
Remarque

Remarque

Vous souhaitez apprendre en français ? Commencez le défi dans un Trailhead Playground en français et utilisez les traductions fournies entre crochets pour naviguer. Copiez et collez uniquement les valeurs en anglais, car les validations de défi reposent sur les données en anglais. Si vous ne réussissez pas le défi dans votre organisation en français, nous vous recommandons (1) de définir le paramètre régional sur les États-Unis, (2) de définir la langue sur l’anglais en suivant les instructions ici, puis (3) de cliquer à nouveau sur le bouton « Vérifier le défi ».

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

Sécurisation et authentification de votre application mobile avec OAuth 2.0

Une authentification sécurisée est essentielle à l'exécution d'applications professionnelles sur les appareils mobiles. OAuth 2.0, le protocole standard du secteur, permet une autorisation sécurisée pour accéder aux données d'un client, sans indiquer de nom d'utilisateur et de mot de passe. Il est souvent décrit comme la clé valet d’accès au logiciel. Une clé valet limite l'accès à certaines fonctionnalités de votre voiture. Par exemple, un voiturier ne peut pas ouvrir le coffre ou la boîte à gants avec la clé valet.

Les développeurs d'applications mobiles peuvent facilement et rapidement intégrer la mise en œuvre d'OAuth 2.0 à Salesforce. Cette mise en œuvre utilise un affichage HTML pour recueillir le nom d'utilisateur et le mot de passe, qui sont ensuite envoyés au serveur. Ce dernier émet alors un jeton de session ainsi qu'un jeton d'actualisation permanent, qui sont stockés sur l'appareil en prévision des futures interactions.

Pour se connecter à Salesforce, une application mobile utilise une application cliente externe Salesforce. Une application cliente externe permet au développeur et à l’administrateur de contrôler comment l’application se connecte et qui y a accès. Ainsi, une application cliente externe peut restreindre l’accès à un groupe de clients, définir ou autoriser une plage IP, etc.

Familiarisation avec la terminologie OAuth

Si vous êtes perdu(e), cette liste peut vous aider à retrouver votre chemin. Cet ensemble d’étiquettes peut contribuer à votre réussite avec OAuth.

Note

Remarque
Dans cette liste, le terme « consommateur » désigne toujours une application Mobile SDK.

Clé consommateur

Valeur utilisée par le consommateur (dans ce cas précis, l'application du kit de développement mobile) afin de s'identifier dans Salesforce. Désignée par client_id.

Jeton d'accès

Valeur utilisée par le consommateur pour accéder au nom de l'utilisateur à des ressources protégées, au lieu d'utiliser les identifiants Salesforce de l'utilisateur. Le jeton d’accès est un ID de session et peut être utilisé directement.

Jeton d'actualisation

Jeton utilisé par le client pour obtenir un nouveau jeton d'accès, sans nouvelle approbation de l'accès par l'utilisateur final.

Code d'autorisation

Jeton de courte durée représentant l'accès accordé par l'utilisateur final. Le code d'autorisation est utilisé pour obtenir un jeton d'accès et un jeton d'actualisation.

Application cliente externe

Application externe à Salesforce qui utilise le protocole OAuth pour vérifier l'utilisateur Salesforce et l'application externe.

Flux d'authentification OAuth2

Le flux d'événements au cours d'une autorisation OAuth dépend de l'état de l'authentification sur l'appareil.

Flux d’autorisation initiale

  1. Le client ouvre l'application Mobile SDK.
  2. Une invite d'authentification s'affiche.
  3. Le client saisit un nom d'utilisateur et un mot de passe.
  4. L’application envoie les identifiants du client à Salesforce et reçoit un ID de session confirmant la réussite de l’authentification.
  5. Le client accepte la requête de l'application pour accorder l'accès à l'application.
  6. L'application démarre.

Autorisation en cours

  1. Le client ouvre une application mobile.
  2. Si l'ID de la session est actif, l'application démarre immédiatement. Si l'ID de la session est obsolète, l'application utilise le jeton d'actualisation de la première autorisation afin d'obtenir un ID de session actualisé.
  3. L'application démarre.

Sécurité par verrouillage d’application

Pour plus de sécurité, les applications clientes externes peuvent être configurées pour se verrouiller après avoir fonctionné en arrière-plan pendant une durée déterminée. Pour déverrouiller l’application, l’utilisateur est invité à répondre à une demande d’authentification du système d’exploitation par des moyens biométriques ou cryptographiques, tels qu’un code PIN ou un code secret.

Pour utiliser la protection par verrouillage d’application, le développeur doit cocher la case Screen Lock (Verrouillage de l’écran) lors de la création de l’application cliente externe. Les administrateurs d’applications mobiles ont alors la possibilité de personnaliser la durée du délai d’expiration.

Flux du serveur Web OAuth2

Pour renforcer la sécurité, Salesforce recommande d’utiliser le flux du serveur Web, car il intègre la technologie PKCE (Proof Key Code Exchange). Pour plus d’informations, consultez l’article Flux du serveur Web OAuth 2.0 pour l’intégration d’applications Web.

Flux de l'agent-utilisateur OAuth2

Avec le flux de l’agent-utilisateur, l’application cliente externe, qui intègre l’application client à l’API Salesforce, reçoit le jeton d’accès en tant que redirection HTTP. L’application cliente externe demande au serveur d’autorisation de rediriger l’agent-utilisateur vers un serveur Web ou une ressource locale accessible.

Le serveur Web peut extraire le jeton d’accès de la réponse et le transmettre à l’application cliente externe. Par sécurité, la réponse du jeton est fournie sous forme de fragment de hashtag (#) dans l’URL. Ce format évite la transmission du jeton au serveur ainsi qu’à d’autres serveurs dans des en-têtes référents.

Avertissement

Le jeton d’accès étant codé dans l’URL de redirection, il peut être exposé à l’utilisateur et aux autres applications sur l’appareil.

Note

Remarque
Les applications clientes externes de ces types de clients peuvent protéger le secret client de chaque utilisateur. Cependant, le secret client est accessible et exploitable, car les exécutables du client résident sur l’appareil de l’utilisateur. Pour cette raison, le flux utilisateur-agent n’utilise pas le secret client. L’autorisation repose sur la stratégie de même origine de l’agent-utilisateur. En outre, le flux de l’agent-utilisateur ne prend pas en charge les publications hors bande.

Valeurs de paramètre d'étendue

OAuth nécessite que la configuration de l'étendue soit effectuée pour le serveur comme pour le client. L'accord entre les deux parties définit le contrat d'étendue.

  • Côté serveur : définit les autorisations d’étendue d’une application cliente externe sur le serveur Salesforce. Ces paramètres permettent de déterminer les niveaux d’accès que les applications clientes, comme les applications du kit de développement mobile, sont en droit de demander. Faites en sorte que les réglages OAuth de votre application cliente externe correspondent au minimum aux spécifications de votre code. Pour la plupart des applications, refresh_token, web et api suffisent. Pour consulter la liste complète des étendues, reportez-vous à l’article Jetons et étendues OAuth.
  • Côté client : spécifie les demandes d’étendue dans votre application Mobile SDK. Les demandes d’étendue du client doivent être un sous-ensemble des autorisations d’étendue de l’application cliente externe. Dans Mobile SDK 13.2 et les versions ultérieures, si aucune étendue n’est spécifiée, toutes les étendues configurées sur le serveur sont accordées.

Applications clientes externes

Les applications clientes externes sont des infrastructures empaquetables permettant d’intégrer une application tierce à Salesforce à l’aide d’API et de protocoles de sécurité. En outre, elles comprennent des améliorations structurelles visant à maintenir des rôles d’utilisateur distincts et à permettre la création de packages gérés de deuxième génération. Salesforce vous recommande d’utiliser des applications clientes externes et de migrer les applications connectées locales existantes vers des applications clientes externes locales.

Note

Remarque
Certaines fonctionnalités ne sont disponibles que par le biais d’applications connectées, et les applications connectées sont toujours nécessaires pour les applications Mobile SDK qui s’exécutent sur plusieurs organisations. Consultez l’article Comparaison des fonctionnalités des applications connectées et des applications clientes externes.

Création d’une application cliente externe

Vous pouvez facilement créer une application cliente externe, mais vous devez disposer des droits d’administrateur. Dans votre organisation Developer Edition ou Trailhead Playground, ces autorisations vous sont automatiquement accordées.

  1. Dans votre Trailhead Playground ou organisation Developer Edition, rendez-vous dans Setup (Configuration).
  2. Dans Setup (Configuration), saisissez « Apps » (Applications) dans la zone de recherche rapide, puis sélectionnez External Client Apps Manager (Gestionnaire des applications clientes externes).
  3. Sélectionnez New External Client App (Créer une application cliente externe).
  4. Sous Basic Information (Informations de base), remplissez le formulaire comme suit.
    • External Client App Name (Nom de l’application cliente externe) : Trailhead Intro
    • API Name (Nom d’API) : acceptez la valeur proposée.
    • Contact Email (E-mail du contact) : saisissez votre adresse e-mail.
    • Distribution State (État de distribution) : pour développer une application cliente externe pour votre organisation locale, sélectionnez Local. Pour développer une application cliente externe pour la création de packages et la distribution, définissez l’état de distribution sur Packaged (En package).
  1. Sous API (Enable OAuth Settings) (Activer les paramètres OAuth), cochez Enable OAuth (Activer les paramètres OAuth).
  2. Définissez l’URL de rappel sur n’importe quelle chaîne d’URL, réelle ou fictive, par exemple monappexemple://auth/success. Si la saisie automatique offre une suggestion, ne l'acceptez pas. Collez à la place l’URL de rappel.
  3. Sous Available OAuth Scopes (Étendues OAuth disponibles), sélectionnez :
    • Gérer les données des utilisateurs via des API (API)
    • Gérer les données des utilisateurs via des navigateurs Web (Web)
    • Exécuter des requêtes à tout moment (refresh_token, offline_access)
  4. Cliquez sur la flèche d’ajout pour déplacer chaque sélection dans Selected OAuth Scopes (Étendues OAuth sélectionnées). Cet ensemble minimal d'étendues fonctionne correctement pour la plupart des applications Mobile SDK.
  5. Dans la rubrique Security (Sécurité) :
    • Décochez l’option Require Secret for Web Server Flow (Nécessite un secret pour le flux serveur Web).
    • Décochez l’option Require Secret for Refresh Token Flow (Nécessite un secret pour le flux du jeton d’actualisation).
    • (Recommandé) Cochez l’option Issue JSON Web Token (JWT)-based access tokens for named users (Émettre des jetons d’accès basés sur JSON Web Token (JWT) pour des utilisateurs nommés).
  6. Cliquez sur Créer.

Vous connaissez l'architecture et la sécurité Mobile SDK, il est temps de vous exercer avec Mobile SDK. Pour commencer, relevez le défi ci-dessous qui nécessite seulement une organisation Developer Edition ou Trailhead Playground. Nous recommandons ensuite d’obtenir le badge Configuration de vos outils de développeur Mobile SDK.

Ressources

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires