Pour utiliser Watson Machine Learning avec la bibliothèque client Python ou l'API REST, vous devez vous authentifier pour sécuriser votre travail. Découvrez les différentes façons de vous authentifier et comment les appliquer au service de votre choix.
Vous utilisez IBM Cloud® Identity and Access Management (IAM) pour émettre des demandes authentifiées aux services IBM Watson™ publics. 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.
Présentation de la sécurité
Reportez-vous à la section qui décrit vos besoins en matière de sécurité.
Données d'authentification
Ces termes sont liés aux exigences en matière de sécurité décrites dans cette rubrique.
- Les clés d'API vous permettent de vous authentifier facilement lorsque vous utilisez le client ou les API Python et peuvent être utilisées sur plusieurs services. Les clés d'API sont considérées comme confidentielles car elles sont utilisées pour accorder l'accès. Traitez toutes les clés d'API comme un mot de passe car toute personne disposant de votre clé d'API peut accéder à votre service.
- Un jeton IAM est un jeton d'authentification requis pour accéder aux services IBM Cloud . Vous pouvez générer un jeton en utilisant votre clé d'API dans la demande de jeton. Pour plus de détails sur l'utilisation des jetons IAM, voir Authentification auprès de l'API Watson Machine Learning.
Pour vous authentifier auprès d'un service via son API, communiquez vos données d'identification à l'API. Vous pouvez envoyer un jeton bearer dans un en-tête d'autorisation ou une clé d'API.
Génération d'une clé d'API
Pour générer une clé d'API à partir de votre compte utilisateur IBM Cloud, accédez à Gérer l'accès et les utilisateurs - Clés API et créez ou sélectionnez une clé d'API pour votre compte utilisateur.
Vous pouvez également générer et faire pivoter des clés d'API à partir de Profil et paramètres > Clé d'API utilisateur. Pour plus d'informations, voir Gestion de la clé d'API utilisateur.
Authentification avec un jeton IAM
Les jetons IAM sont des données d'identification de sécurité temporaires qui sont valables pendant 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.
Obtention d'un jeton de niveau de service
Vous pouvez également vous authentifier à l'aide d'un jeton de niveau de service. Pour générer un jeton de niveau de service :
- Reportez-vous aux instructions IBM Cloud pour la création d'un ID de service.
- Générez une clé d'API pour cet ID de service.
- Ouvrez l'espace dans lequel vous prévoyez de conserver vos actifs déployables.
- Dans l'onglet Contrôle d'accès, ajoutez l'ID de service et attribuez un rôle d'accès d'administrateur ou d'éditeur.
Vous pouvez utiliser le jeton de niveau de service avec vos demandes d'évaluation d'API.
Interfaces
Client Python
Voir: watsonx.ai Python client
Pour créer une instance de l'objet client watsonx.ai Python , vous devez transmettre vos données d'identification au client API Watson Machine Learning .
wml_credentials = {
"apikey":"123456789",
"url": " https://HIJKL"
}
from ibm_watson_machine_learning import APIClient
wml_client = APIClient(wml_credentials)
Même si vous ne fournissez pas explicitement un instance_id
, il sera prélevé dans l'espace ou le projet associé à des fins de facturation. Pour plus de détails sur les plans et la facturation des services Watson Machine Learning , voir Plans et utilisation de l'environnement d'exécutionWatson Machine Learning.
Voir les exemples de bloc-notes pour des exemples d'authentification, puis d'évaluation d'un modèle à l'aide du client Python .
API REST
Voir: Watson Machine Learning REST API
Pour utiliser l'API REST Watson Machine Learning , vous devez obtenir un jeton IBM Cloud Identity and Access Management (IAM). Dans cet exemple, vous devez fournir votre clé d'API à la place de l'exemple de clé.
Exemple cURL
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=123456789" \
"https://iam.cloud.ibm.com/identity/token"
Le jeton IAM obtenu doit être préfixé avec le mot Bearer
et transmis dans l'en-tête d'autorisation pour les appels d'API.
Exemple Python
import requests
# Paste your Watson Machine Learning service apikey here
apikey = "123456789"
# Get an IAM token from IBM Cloud
url = "https://iam.cloud.ibm.com/identity/token"
headers = { "Content-Type" : "application/x-www-form-urlencoded" }
data = "apikey=" + apikey + "&grant_type=urn:ibm:params:oauth:grant-type:apikey"
response = requests.post( url, headers=headers, data=data, auth=apikey )
iam_token = response.json()["access_token"]
Exemple Node.js
var btoa = require( "btoa" );
var request = require( 'request' );
// Paste your Watson Machine Learning service apikey here
var apikey = "123456789";
// Use this code as written to get an access token from IBM Cloud REST API
//
var IBM_Cloud_IAM_uid = "bx";
var IBM_Cloud_IAM_pwd = "bx";
var options = { url : "https://iam.cloud.ibm.com/identity/token",
headers : { "Content-Type" : "application/x-www-form-urlencoded",
"Authorization" : "Basic " + btoa( IBM_Cloud_IAM_uid + ":" + IBM_Cloud_IAM_pwd ) },
body : "apikey=" + apikey + "&grant_type=urn:ibm:params:oauth:grant-type:apikey" };
request.post( options, function( error, response, body )
{
var iam_token = JSON.parse( body )["access_token"];
} );
Rubrique parent: Gestion des déploiements prédictifs