Loading
Identification de vos utilisateurs et gestion de l’accès
Flux nom d'utilisateur-mot de passe OAuth 2.0 pour des situations particulières

Flux nom d'utilisateur-mot de passe OAuth 2.0 pour des situations particulières

Vous pouvez utiliser le flux nom d'utilisateur-mot de passe pour autoriser un client via une application connectée qui contient déjà les identifiants de l'utilisateur. Nous recommandons toutefois d'éviter ce flux, car il transmet les identifiants dans les deux sens. Utilisez-le uniquement lorsque la confiance est élevée entre le propriétaire de la ressource et le client, le client est une application interne, Salesforce héberge les données et si d'autres types d'autorisation ne sont pas disponibles. Dans ces situations, définissez des autorisations utilisateur afin de limiter l'accès et de protéger les identifiants stockés contre tout accès non autorisé.

Éditions requises

Disponible avec : Salesforce Classic et Lightning Experience
Disponible avec : Toutes les éditions
Important
Important Pour plus de sécurité, nous recommandons d'utiliser le flux du serveur Web OAuth 2.0 avec la Clé de vérification pour l'échange de code (PKCE) ou le flux d'identifiants clients OAuth 2.0 à la place du flux nom d'utilisateur-mot de passe. Nous recommandons également d'empêcher toutes les applications connectées d'utiliser le flux nom d'utilisateur-mot de passe. Pour les étapes d'utilisation du flux serveur Web, consultez Flux du serveur Web OAuth 2.0 pour l'intégration de l'application Web. Pour les étapes d'utilisation du flux d'identifiants clients, consultez Flux d'identifiants clients OAuth 2.0 pour l'intégration serveur-à-serveur. Pour les étapes de blocage du flux nom d'utilisateur-mot de passe, consultez Blocage des flux d'autorisation pour renforcer la sécurité.

Le flux nom d'utilisateur-mot de passe génère des jetons d'accès sous forme d'ID de session Salesforce qui ne peuvent pas être introspectés. Les jetons d'accès sont temporaires. Par conséquent, les applications connectées qui utilisent ce flux ne sont pas affichées dans la page Utilisation d'applications connectées OAuth, même s'ils ont une session active. Ce flux ne prend pas en charge les étendues ni les jetons d'actualisation. Les sites Experience Cloud ne prennent pas en charge le flux nom d'utilisateur-mot de passe OAuth 2.0.

Les principales étapes du flux nom d'utilisateur-mot de passe sont indiquées ci-dessous.

  • L'application connectée demande un jeton d'accès en envoyant les identifiants de connexion de l'utilisateur au point de terminaison de jeton Salesforce.
  • Après avoir vérifié la requête, Salesforce accorde un jeton accès à l'application connectée.
  • L'application connectée utiliser le jeton accès pour accéder aux données protégées au nom de l'utilisateur.

Demander un jeton d'accès

Pour demander un jeton d'accès, l'application connectée envoie le nom d'utilisateur et le mot de passe de l'utilisateur en tant que requête POST hors plage au point de terminaison de jeton Salesforce. Cette requête POST est un exemple.

grant_type=password&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571&
username=testuser@salesforce.com&
password=mypassword

Insérez ces identifiants dans la POST.

Important
Important Lors du développement d'intégrations OAuth, transmettez toujours des informations confidentielles dans le corps d'une requête POST ou dans un en-tête de requête. N'utilisez pas les paramètres GET dans la chaîne de requête URL pour transmettre des informations confidentielles. Les informations confidentielles comprennent, sans s'y limiter, les noms d'utilisateur, les mots de passe, les jetons OAuth, les secrets clients et toute information d'identification personnelle. Pour plus d'informations sur les meilleures pratiques de sécurité, consultez Stockage des données confidentielles dans le Secure Coding Guide.
Paramètre Description
grant_type Le type d'autorisation d'accès OAuth 2.0 que demande l'application connectée. La valeur doit être password pour ce flux.
client_id La clé consommateur de l'application connectée. Pour accéder à la clé consommateur, dans le Gestionnaire d'applications, recherchez l'application connectée, puis sélectionnez Afficher dans la liste déroulante. Cliquez ensuite sur Gérer les détails du consommateur. Vous pouvez être invité à confirmer votre identité avant d'être autorisé à afficher la clé consommateur.
client_secret Le secret consommateur de l'application connectée. Pour accéder au secret consommateur, dans le Gestionnaire d'applications, recherchez l'application connectée, puis sélectionnez Afficher dans la liste déroulante. Cliquez ensuite sur Gérer les détails du consommateur. Vous pouvez être invité à confirmer votre identité avant d'être autorisé à afficher le secret consommateur.
username Le nom d'utilisateur de l'utilisateur que l'application connectée imite.
password

Le mot de passe de l'utilisateur que l'application connectée imite.

Lors de l'utilisation du flux nom d'utilisateur-mot de passe avec une API, créez un champ, dans l'écran de connexion avec le nom d'utilisateur et le mot de passe, dans lequel les utilisateurs peuvent saisir leur jeton de sécurité. Le jeton de sécurité est une clé générée automatiquement qui doit être ajoutée à la fin du mot de passe pour la connexion à Salesforce à partir d'un réseau non fiable. Concaténez le mot de passe et le jeton en transmettant la requête pour authentification.

format

S'il n'est pas inclus dans l'en-tête de la requête, vous pouvez spécifier le format de retour attendu. Le paramètre format est prioritaire sur l'en-tête l'en-tête de demande. Les formats suivants sont pris en charge :

  • urlencoded
  • json (par défaut)
  • xml

Salesforce accorde un jeton accès

Une fois la demande vérifiée, Salesforce envoie une réponse au client.

Voici un exemple de réponse :

{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448832702",
"instance_url":"https://yourInstance.salesforce.com/",
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=",
"access_token":"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW19ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs",
"token_type":"Bearer"}

Les paramètres suivants sont inclus dans le corps de la réponse.

Paramètre Description
id Une URL d'identité qui peut être utilisée pour identifier l'utilisateur et pour demander plus d'informations sur l'utilisateur. Consultez URL d'identité.
issued_at Horodatage indiquant à quel moment la signature a été créée, en millisecondes.
instance_url Une URL indiquant l'instance de l'organisation de l'utilisateur. Par exemple : https://yourInstance.salesforce.com/.
signature La signature HMAC-SHA256 codée en Base64 signée par le client_secret. La signature peut inclure l'ID et issued_at value concaténés, que vous pouvez utiliser afin de vérifier si l'URL d'identité a changé depuis que le serveur l'a envoyée.
access_token Le jeton OAuth utilisé par une application connectée pour demander l'accès à une ressource protégée au nom de l'application cliente. Des autorisations supplémentaires sous forme d'étendues peuvent accompagner le jeton d'accès.
token_type Un type de jeton Bearer, utilisé pour toutes les réponses qui incluent un jeton d'accès.
Remarque
Remarque Cette réponse n'envoie pas de jeton d'actualisation.
 
Chargement
Salesforce Help | Article