Authentification auprès des services Watson
Les IBM Watson® services sur IBM Cloud® utilisent IBM Cloud® Identity and Access Management (IAM) pour l'authentification. Les services installés sur IBM Cloud Pak® for Data prennent en charge plus de méthodes. A l'aide des règles d'accès IAM, vous pouvez affecter un accès à plusieurs ressources à partir d'une même clé. En outre, un utilisateur, un ID de service et une instance de service peuvent contenir plusieurs clés d'API.
Transmission des données d'identification
Pour vous authentifier auprès d'un service via son API, communiquez vos données d'identification à l'API. Le mode d'authentification peut varier selon les besoins de sécurité et selon que le service est sur IBM Cloud®ou installé surIBM Cloud Pak® for Data.
Authentification à IBM Cloud
IBM Cloud
L'authentification IBM Cloud® Identity and Access Management (IAM) permet de faire des demandes authentifiées auprès des services IBM Watson® publics. Vous pouvez envoyer un jeton bearer dans un en-tête d'autorisation ou une clé d'API.
-
Authentification avec un jeton IAM
Les jetons IAM sont des données d'identification de sécurité temporaires valides pour une durée maximale de 60 minutes. Lorsqu'un jeton arrive à expiration, vous devez en générer un nouveau. Les jetons peuvent être utiles pour accéder temporairement à des ressources. Pour plus d'informations, voir Génération d'un jeton IAM IBM Cloud à l'aide d'une clé d'API.
La commande
curlsuivante génère un jeton d'accès IAM. Remplacez{apikey}par la valeur de votre clé API.curl -X POST \ -header "Content-Type: application/x-www-form-urlencoded" \ -data "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey={apikey}" \ "https://iam.cloud.ibm.com/identity/token"La réponse inclut une propriété
access_token. Pour authentifier une demande au service, remplacez{access_token}par le jeton de la réponse. Remplacez{url}par la valeur de l'URL de votre instance de service, que vous pouvez trouver en cliquant sur Afficher les données d'identification dans la zone Données d'identification de la page Gérer de votre instance de service.curl -header "Authorization: Bearer {access_token}" \ "{url}/v1/{method}" -
Authentification avec une clé d'API IBM Cloud, une clé d'API d'ID de service ou une clé d'API spécifique au service Remplacez
{url}par la valeur de l'URL de votre instance de service, que vous pouvez trouver en cliquant sur Afficher les données d'identification dans la zone Données d'identification de la page Gérer de votre instance de service.Les clés d'API sont simples à utiliser et n'expirent pas automatiquement. Quiconque possède une clé valide peut accéder à la ressource. Vous pouvez créer des clés d'API séparées pour des applications ou des utilisateurs différents ou pour prendre en charge des scénarios de renouvellement des clés. Vous pouvez révoquer des clés d'API depuis la console sans entraver le fonctionnement des autres clés d'API ou de l'utilisateur.
L'exemple de commande
curlsuivant s'authentifie avec la clé d'APIf5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI.curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \ "{url}/v1/{method}"
Dans les environnements de test et de développement, vous pouvez transmettre directement une clé d'API. Toutefois, pour les utilisations en production, privilégiez le jeton IAM, sauf si vous utilisez les logiciels SDK Watson. La transmission d'une clé d'API peut avoir des conséquences négatives sur les performances, car le service recherche les détails associés à cette clé. Pour plus d'informations, voir Appel des API de service IBM Cloud.
Les logiciels SDK Watson sont compatibles avec les deux méthodes. Pour plus d'informations, voir la section Authentification de la référence d'API de votre service et SDK.
Certains plans de service permettent IBM® Key Protect for IBM Cloud®de contrôler l'accès aux données. Pour plus d'informations, voir Protection des informations sensibles dans votre service Watson.
Authentification à IBM Cloud Pak for Data
IBM Cloud Pak for Data
Vous vous authentifiez auprès du service en transmettant un jeton d'accès à chaque demande. Vous transmettez un jeton au porteur dans un en-tête Authorization pour l'authentification. Il existe plusieurs méthodes pour générer
le jeton, notamment à l'aide d'une clé d'API ou d'un nom d'utilisateur. Pour plus d'informations, voir Génération d'un jeton d'autorisation ou d'une clé d'API.
Pour plus d'informations sur les méthodes d'authentification prises en charge par les logiciels SDK Watson pour les services installés sur IBM Cloud Pak for Data, voir la section Authentification de la référence d'API pour votre service et votre logiciel SDK.
A propos des clés d'API
Trois types de clés d'API sont pris en charge par les services Watson :
-
Clés d'API spécifiques au service
Les clés spécifiques au service sont générées avec le service. Ce type de clé d'API n'a accès qu'à une instance de service spécifique. Pour afficher les clés spécifiques au service, cliquez sur le nom d'un service Watson dans votre liste de ressources.
-
Clés d'API IBM Cloud
Les clés d'API IBM Cloud sont associées à l'identité d'un utilisateur. Seul l'utilisateur qui est associé à la clé peut la supprimer. La même clé d'API IBM Cloud peut être utilisée pour accéder à différents services. Pour plus d'informations sur l'utilisation des clés d'API IBM Cloud, voir Gestion des clés d'API d'utilisateur.
-
Clés d'API d'ID de service
Grâce aux ID de service, les applications qui sont hébergées au sein et en dehors d'IBM Cloud peuvent accéder à vos services. Les clés d'API qui sont associées aux ID de service reçoivent un droit d'accès à l'ID de service. Pour plus d'informations sur les clés d'ID, voir Gestion des clés d'API d'ID de service.
Meilleures pratiques pour les clés d'API
Gardez vos clés d'API en sécurité afin d'éviter tout risque de divulgation des données d'identification qui serait de nature à compromettre votre compte et vos applications. Pour vous aider dans cette démarche, suivez les instructions ci-dessous.
-
Affectez le rôle de service le plus restrictif au niveau d'accès dont vous avez besoin.
Par exemple, affectez le rôle de service
Readerpour les appels provenant de votre application vers les méthodes d'APIGET. Ce rôle est associé à un accès en lecture seule, ce qui signifie que vous ne pouvez pas créer ni modifier des ressources. -
N'imbriquez pas la clé d'API directement dans le code.
Les clés d'API qui sont imbriquées dans le code peuvent être exposées à vos utilisateurs. Au lieu de les imbriquer dans le code, stockez-les dans des variables d'environnement ou dans des fichiers en dehors de votre système de gestion de code source.
-
Ne stockez pas une clé d'API dans des fichiers à l'intérieur du système de gestion de votre code source.
Si vous stockez les clés d'API dans des fichiers, conservez-les à l'extérieur du système de gestion de votre code source. Cette pratique est importante si vous utilisez un système de gestion de code source public tel que GitHub.
-
Régénérez ou renouvelez vos clés d'API.
Créez régulièrement de nouvelles clés, ou renouvelez vos clés existantes. N'oubliez pas de supprimer les clés que vous n'utilisez plus.
Etapes suivantes
- Lire une présentation d'IBM Cloud IAM
- Apprenez à gérer l'accès dansIBM Cloud
- Comprendre les règles, les rôles utilisateur et les permissions
- Savoir comment transmettre des clés d'API et des jetons