0 / 0
Go back to the English version of the documentation
Uwierzytelnianie dla dostępu programowego

Uwierzytelnianie dla dostępu programowego

Aby korzystać z usługi Watson Machine Learning z biblioteką klienta Python lub interfejsem API REST, należy uwierzytelnić się w celu zabezpieczenia pracy. Dowiedz się więcej o różnych sposobach uwierzytelniania i sposobach ich stosowania do wybranych usług.

Produkt IBM Cloud® Identity and Access Management (IAM) służy do tworzenia uwierzytelnionych żądań do publicznych usług IBM Watson™ . Za pomocą strategii dostępu IAM można przypisać dostęp do więcej niż jednego zasobu z jednego klucza. Dodatkowo, użytkownik, identyfikator usługi i instancja usługi mogą zawierać wiele kluczy interfejsu API.

przegląd zabezpieczeń

Zapoznaj się z sekcją, która opisuje Twoje potrzeby związane z bezpieczeństwem.

Referencje uwierzytelniające

Warunki te odnoszą się do wymagań bezpieczeństwa opisanych w tym temacie.

  • Klucze interfejsu API umożliwiają łatwe uwierzytelnianie w przypadku korzystania z klienta Python lub interfejsów API, które mogą być używane w wielu usługach. Klucze API są traktowane jako poufne, ponieważ są używane do nadawania dostępu. Wszystkie klucze API należy traktować tak, jak hasło, ponieważ każdy, kto ma klucz API, może uzyskać dostęp do usługi.
  • Znacznik IAM jest znacznikiem uwierzytelniania, który jest wymagany do uzyskania dostępu do usług IBM Cloud . Znacznik można wygenerować przy użyciu klucza API w żądaniu znacznika. Szczegółowe informacje na temat używania znaczników IAM można znaleźć w sekcji Uwierzytelnianie przy użyciu interfejsu API Watson Machine Learning.

Aby uwierzytelnić się w usłudze za pośrednictwem interfejsu API, przekaz swoje dane uwierzytelniające do interfejsu API. Znacznik nośnika można przekazać w nagłówku autoryzacji lub w kluczu interfejsu API.

Generowanie klucza API

Aby wygenerować klucz interfejsu API na podstawie konta użytkownika IBM Cloud , należy przejść do strony Manage access and users-API Keys (Zarządzaj dostępem i użytkownikami interfejsu API), a następnie utworzyć lub wybrać klucz interfejsu API dla konta użytkownika.

Uwierzytelnij za pomocą znacznika IAM

Tokeny IAM są tymczasowymi referencjami zabezpieczeń, które są ważne przez 60 minut. Gdy token utraci ważność, zostanie wygenerowany nowy. Tokeny mogą być przydatne do tymczasowego dostępu do zasobów. Więcej informacji na ten temat zawiera sekcja Generowanie znacznika IAM IBM Cloud przy użyciu klucza API.

Pobieranie tokenu poziomu usług

Możliwe jest również uwierzytelnianie za pomocą znacznika na poziomie usługi. Aby wygenerować znacznik na poziomie usługi:

  1. Zapoznaj się z instrukcjami w sekcji IBM Cloud w sekcji Tworzenie identyfikatora usługi.
  2. Wygeneruj klucz interfejsu API dla tego identyfikatora usługi.
  3. Otwórz obszar, w którym planowane jest zachowanie zasobów aplikacyjnych do wdrożenia.
  4. Na karcie Kontrola dostępu dodaj identyfikator usługi i przypisz mu rolę dostępu Administrator lub Edytujący.

Za pomocą znacznika na poziomie usług można korzystać z żądań oceniania interfejsu API.

Interfejsy

 

Klient Python

Zapoznaj się z: Watson Machine Learning Python client odsyłacz zewnętrzny

Aby utworzyć instancję obiektu klienta Watson Machine Learning Python , należy przekazać swoje referencje do klienta API Watson Machine Learning .

wml_credentials = {
                  "apikey":"123456789",
                  "url": " https://HIJKL"
}
from ibm_watson_machine_learning import APIClient
wml_client = APIClient(wml_credentials)
Uwaga:

Nawet jeśli użytkownik nie udostępnia jawnego instance_id, będzie on pobierany z powiązanego obszaru lub projektu do celów fakturowania. Szczegółowe informacje na temat planów i rozliczeń dla usług Watson Machine Learning można znaleźć w sekcji Watson Machine Learning planów i użycia środowiska wykonawczego.

Przykłady dotyczące uwierzytelniania, a następnie oceny modelu przy użyciu klienta Python można znaleźć w sekcji przykładowej podręczniki .

Interfejs REST API

Patrz: Watson Machine Learning REST API odsyłacz zewnętrzny

Aby korzystać z interfejsu REST API usługi Watson Machine Learning , należy uzyskać znacznik IBM Cloud Identity and Access Management (IAM). W tym przykładzie należy podać klucz interfejsu API w miejscu, w którym znajduje się przykład.

Przykład 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"

Uzyskany znacznik IAM musi być poprzedzony słowem Bearer, a przekazany w nagłówku Authorization dla wywołań funkcji API.

Przykład 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"]

Przykład dla 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"];
} );

Temat nadrzędny: Zarządzanie wdrożeniami predykcyjnymi

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more