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 |
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=mypasswordInsérez ces identifiants dans la POST.
| 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
|
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.
|
