Wenn Sie Watson Machine Learning mit der Python -Clientbibliothek oder der REST-API verwenden möchten, müssen Sie sich authentifizieren, um Ihre Arbeit zu schützen. Im Folgenden werden die verschiedenen Authentifizierungsmöglichkeiten und deren Anwendung auf den gewünschten Service erläutert.
Sie verwenden IBM Cloud® Identity and Access Management (IAM), um authentifizierte Anforderungen für öffentliche IBM Watson™-Services abzusetzen. Mithilfe von IAM-Zugriffsrichtlinien können Sie auf Basis eines einzigen Schlüssels Zugriff auf mehrere Ressourcen zuweisen. Darüber hinaus können ein Benutzer, eine Service-ID und eine Serviceinstanz mehrere API-Schlüssel enthalten.
Sicherheitsübersicht
Sehen Sie sich den entsprechenden Abschnitt für Ihre Sicherheitsanforderungen an.
Authentifizierungsnachweise
Im Zusammenhang mit den in diesem Abschnitt beschriebenen Sicherheitsanforderungen sind die folgenden Begriffe wichtig.
- API-Schlüssel ermöglichen Ihnen die einfache Authentifizierung, wenn Sie den Python -Client oder APIs verwenden, und können über mehrere Services hinweg verwendet werden. API-Schlüssel gelten als vertraulich, da sie verwendet werden, um Zugriff zu erteilen. Behandeln Sie alle API-Schlüssel wie ein Kennwort, da jeder Benutzer mit Ihrem API-Schlüssel auf Ihren Service zugreifen kann.
- Ein IAM-Token ist ein Authentifizierungstoken, das für den Zugriff auf IBM Cloud -Services erforderlich ist. Sie können ein Token mithilfe Ihres API-Schlüssels in der Tokenanforderung generieren. Details zur Verwendung von IAM-Tokens finden Sie unter Authentifizierung bei der Watson Machine Learning -API.
Für eine Authentifizierung bei einem Service über dessen API müssen Sie Ihre Berechtigungsnachweise an die API übermitteln. Sie können entweder ein Trägertoken in einem Berechtigungsheader oder einen API-Schlüssel übergeben.
API-Schlüssel generieren
Wenn Sie einen API-Schlüssel in Ihrem IBM Cloud-Benutzerkonto generieren möchten, rufen Sie Zugriff und Benutzer verwalten - API-Schlüssel auf und erstellen Sie einen API-Schlüssel für Ihr Benutzerkonto oder wählen Sie einen API-Schlüssel für Ihr Benutzerkonto aus.
Sie können API-Schlüssel auch über Profil und Einstellungen > Benutzer-API-Schlüsselgenerieren und turnusmäßig wechseln. Weitere Informationen finden Sie unter Benutzer-API-Schlüssel verwalten.
Mit einem IAM-Token authentifizieren
Bei IAM-Tokens handelt es sich um temporäre Sicherheitsberechtigungsnachweise, die 60 Minuten lang gültig sind. Wenn ein Token abläuft, generieren Sie ein neues Token. Tokens können für den temporären Zugriff auf Ressourcen nützlich sein. Weitere Informationen finden Sie in IBM Cloud IAM-Token mithilfe eines API-Schlüssels generieren.
Service-Level-Token abrufen
Sie können für die Authentifizierung auch ein Service-Level-Token verwenden. Gehen Sie wie folgt vor, um ein Service-Level-Token zu generieren:
- Lesen Sie die IBM Cloud-Anweisungen für das Erstellen einer Service-ID.
- Generieren Sie einen API-Schlüssel für diese Service-ID.
- Öffnen Sie den Bereich, in dem Sie Ihre bereitstellbaren Assets aufbewahren wollen.
- Fügen Sie die Service-ID auf der Registerkarte Zugriffssteuerung hinzu und weisen Sie die Zugriffsrolle Administrator oder Bearbeiter zu.
Sie können das Service-Level-Token für Ihre API-Scoring-Anforderungen verwenden.
Schnittstellen
Python-Client
Siehe watsonx.ai Python -Client .
Um eine Instanz des Python -Clientobjekts watsonx.ai zu erstellen, müssen Sie Ihre Berechtigungsnachweise an den Watson Machine Learning -API-Client übergeben.
wml_credentials = {
"apikey":"123456789",
"url": " https://HIJKL"
}
from ibm_watson_machine_learning import APIClient
wml_client = APIClient(wml_credentials)
Auch wenn Sie einen instance_id
nicht explizit angeben, wird er zu Abrechnungszwecken aus dem zugeordneten Bereich oder Projekt übernommen. Details zu Plänen und Abrechnung für Watson Machine Learning -Services finden Sie unter Pläne und Laufzeitnutzung fürWatson Machine Learning.
In Beispielnotebooks finden Sie Beispiele für die Authentifizierung und das anschließende Scoring eines Modells mithilfe des Python -Clients.
REST-API
Siehe Watson Machine Learning -REST-API
Um die REST-API Watson Machine Learning verwenden zu können, müssen Sie ein IBM Cloud Identity and Access Management (IAM) -Token anfordern. In diesem Beispiel geben Sie Ihren API-Schlüssel anstelle des Beispielschlüssels an.
cURL-Beispiel
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"
Das abgerufene IAM-Token muss das Wort Bearer
als Präfix haben und im Berechtigungsheader für API-Aufrufe übergeben werden.
Python-Beispiel
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"]
Node.js-Beispiel
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"];
} );
Übergeordnetes Thema: Vorhersagebereitstellungen verwalten