Per utilizzare Watson Machine Learning con la libreria client Python o con l'API REST, devi eseguire l'autenticazione per proteggere il tuo lavoro. Scopri i diversi modi per autenticare e come applicarli al servizio di tua scelta.
Utilizzi IBM Cloud® Identity and Access Management (IAM) per effettuare richieste autenticate ai servizi IBM Watson™ pubblici. Con le politiche di accesso IAM, puoi assegnarti l'accesso a più di una risorsa da una sola chiave. Inoltre, un utente, un ID servizio e un'istanza del servizio possono contenere più chiavi API.
Panoramica della sicurezza
Fare riferimento alla sezione che descrive le proprie necessità di sicurezza.
Credenziali di autenticazione
Questi termini si riferiscono ai requisiti di sicurezza descritti in questo argomento.
- Le chiavi API ti consentono di autenticarti facilmente quando stai utilizzando il client o le API Python e possono essere utilizzate tra più servizi. Le chiavi API sono considerate riservate perché vengono utilizzate per concedere l'accesso. Considera tutte le chiavi API come una password perché chiunque con la tua chiave API può accedere al servizio.
- Un token IAM è un token di autenticazione richiesto per accedere ai servizi IBM Cloud . Puoi generare un token utilizzando la tua chiave API nella richiesta token. Per i dettagli sull'utilizzo dei token IAM, fai riferimento a Autenticazione all'API Watson Machine Learning.
Per autenticare un servizio tramite la relativa API, passa le tue credenziali all'API. Puoi passare un token bearer in un'intestazione di autorizzazione o una chiave API.
Generazione di una chiave API
Per generare una chiave API dal tuo account utente IBM Cloud , vai a Gestisci accesso e utenti - Chiavi API e crea o seleziona una chiave API per il tuo account utente.
Puoi anche generare e ruotare le chiavi API da Profile and settings> User API key. Per ulteriori informazioni, vedi Gestione della chiave API utente.
Autentica con un token IAM
I token IAM sono credenziali di sicurezza temporanee valide per 60 minuti. Quando un token scade, ne viene generato uno nuovo. I token possono essere utili per l'accesso temporaneo alle risorse. Per ulteriori informazioni, vedi Generazione di un token IAM IBM Cloud utilizzando una chiave API.
Ottenimento di un token di livello del servizio
È anche possibile eseguire l'autenticazione con un token di livello di servizio. Per generare un token di livello di servizio:
- Fai riferimento alle istruzioni IBM Cloud per creare un ID servizio.
- Genera una chiave API per tale ID servizio.
- Aprire lo spazio in cui si prevede di conservare gli asset distribuibili.
- Nella scheda Controllo accesso , aggiungere l'ID servizio e assegnare un ruolo di accesso Admin o Editor.
È possibile utilizzare il token del livello di servizio con le richieste di calcolo del punteggio API.
Interfacce
Client Python
Fai riferimento a: watsonx.ai Python
Per creare un'istanza dell'oggetto client watsonx.ai Python , devi passare le credenziali al client API Watson Machine Learning .
wml_credentials = {
"apikey":"123456789",
"url": " https://HIJKL"
}
from ibm_watson_machine_learning import APIClient
wml_client = APIClient(wml_credentials)
Anche se non fornisci esplicitamente un instance_id
, verrà prelevato dallo spazio associato o dal progetto per scopi di fatturazione. Per i dettagli sui piani e la fatturazione per i servizi Watson Machine Learning , fai riferimento ai pianiWatson Machine Learning e all'utilizzo del runtime.
Fai riferimento a notebook di esempio per esempi su come autenticare e calcolare il punteggio di un modello utilizzando il client Python .
API REST
Fai riferimento a Watson Machine Learning REST API
Per utilizzare l'API REST Watson Machine Learning , devi ottenere un token IBM Cloud Identity and Access Management (IAM). In questo esempio, fornisci la chiave API al posto della chiave di esempio.
Esempio 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"
Il token IAM ottenuto deve essere preceduto dalla parola Bearer
e passato nell'intestazione di autorizzazione per le chiamate API.
Esempio di 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"]
Esempio di 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"];
} );
Argomento principale: Gestione delle distribuzioni predittive