Authentifizierung bei Watson-Services
IBM Watson®-Services für die IBM Cloud®-Verwendung von IBM Cloud® Identity and Access Management (IAM) für die Authentifizierung. Services, die unter IBM Cloud Pak® for Data installiert sind, unterstützt mehr Methoden. 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.
Berechtigungsnachweise übergeben
Für eine Authentifizierung bei einem Service über dessen API müssen Sie Ihre Berechtigungsnachweise an die API übermitteln. Die Art der Authentifizierung kann variieren; sie hängt von den Sicherheitsanforderungen ab und davon, ob der Service unter IBM Cloud® oder unter IBM Cloud Pak® for Data installiert ist.
Authentifizierung bei IBM Cloud
IBM Cloud
Mit IBM Cloud® Identity and Access Management (IAM) können Sie authentifizierte Anforderungen an öffentliche IBM Watson®-Services senden. Sie können entweder ein Trägertoken in einem Berechtigungsheader oder einen API-Schlüssel übergeben.
-
Authentifizieren Sie sich mit einem IAM-Token.
IAM-Token sind temporäre Sicherheitsberechtigungsnachweise, die für bis zu 60 Minuten 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 im Abschnitt zur Generierung eines IBM Cloud IAM-Token mithilfe eines API-Schlüssels.
Der folgende
curl-Befehl generiert ein IAM-Zugriffstoken. Ersetzen Sie{apikey}durch den Wert Ihres API-Schlüssels.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"Die Antwort enthält die Eigenschaft
access_token. Wenn Sie eine Anforderung für den Service authentifizieren möchten, ersetzen Sie{access_token}durch das Token aus der Antwort. Ersetzen Sie{url}durch den Wert der URL für Ihre Serviceinstanz, den Sie durch Klicken auf Berechtigungsnachweise anzeigen im Feld Berechtigungsnachweise auf der Seite Verwalten für Ihre Serviceinstanz ermitteln können.curl -header "Authorization: Bearer {access_token}" \ "{url}/v1/{method}" -
Authentifizieren Sie sich mit einem IBM Cloud-API-Schlüssel, einem Service-ID-API-Schlüssel oder einem servicespezifischen API-Schlüssel. Ersetzen Sie
{url}durch den Wert der URL für Ihre Serviceinstanz, den Sie durch Klicken auf Berechtigungsnachweise anzeigen im Feld Berechtigungsnachweise auf der Seite Verwalten für Ihre Serviceinstanz ermitteln können.Die Verwendung von API-Schlüsseln ist einfach und sie laufen nicht automatisch ab. Jeder Benutzer mit einem gültigen Schlüssel kann auf die Ressource zugreifen. Sie können separate API-Schlüssel für verschiedene Benutzer oder verschiedene Anwendungen bzw. für die Unterstützung von Schlüsselrotationsszenarios erstellen. Es ist möglich, API-Schlüssel über die Konsole zu widerrufen, ohne andere API-Schlüssel oder den Benutzer zu beeinträchtigen.
Der folgende Beispielbefehl
curlwird mit dem API-Schlüsself5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRIauthentifiziert.curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \ "{url}/v1/{method}"
Zu Test- und Entwicklungszwecken können Sie einen API-Schlüssel direkt übergeben. Verwenden Sie jedoch für die produktive Nutzung ein IAM-Token, es sei denn, Sie verwenden die Watson-SDKs. Bei der Übergabe eines API-Schlüssels sucht der Service nach den API-Schlüsseldetails; daher kann die Leistung beeinträchtigt werden. Weitere Informationen finden Sie im Abschnitt zum Aufrufen von IBM Cloud-Service-APIs.
Die Watson-SDKs unterstützen beide Methoden. Weitere Informationen finden Sie im Abschnitt Authentifizierung der API-Referenz für Ihren Service und SDK.
Einige Servicepläne unterstützen IBM® Key Protect for IBM Cloud® für den Zugriff auf die Daten. Weitere Informationen finden Sie im Abschnitt zum Schutz sensibler Informationen in Ihrem Watson-Service.
Authentifizierung bei IBM Cloud Pak for Data
IBM Cloud Pak for Data
Sie authentifizieren sich am Service bei jeder Anforderung durch Übergeben eines Zugriffstokens. Sie übergeben ein Bearer-Token im Header Authorization, um sich zu authentifizieren. Es gibt verschiedene Methoden zum Generieren
des Tokens, unter anderem die Verwendung eines API-Schlüssels oder eines Benutzernamens. Weitere Informationen finden Sie unter Berechtigungstoken oder API-Schlüssel generieren.
Weitere Informationen zu Authentifizierungsmethoden, die von den Watson -SDKs für Services unterstützt werden, die auf IBM Cloud Pak for Datainstalliert sind, finden Sie im Abschnitt Authentifizierung der API-Referenz für Ihren Service und SDK.
Informationen zu API-Schlüsseln
Drei Typen von API-Schlüsseln werden von Watson-Services unterstützt:
-
Servicespezifische API-Schlüssel
Servicespezifische Schlüssel werden mit dem Service erstellt. Mit dieser Art von API-Schlüssel besteht nur Zugriff auf eine bestimmte Serviceinstanz. Um servicespezifische Schlüssel anzuzeigen, klicken Sie auf den Namen eines Watson -Service in Ihrer Ressourcenliste.
-
IBM Cloud-API-Schlüssel
IBM Cloud-API-Schlüssel werden der Identität eines Benutzers zugeordnet. Nur der Benutzer, der dem Schlüssel zugeordnet ist, kann ihn löschen. Ein und derselbe IBM Cloud-API-Schlüssel kann für den Zugriff auf verschiedene Services verwendet werden. Weitere Informationen zur Arbeit mit IBM Cloud-API-Schlüsseln finden Sie im Abschnitt zur Verwaltung von Benutzer-API-Schlüsseln.
-
API-Schlüssel für Service-IDs
Service-IDs ermöglichen den Zugriff auf Ihre IBM Cloud-Services durch Anwendungen, die sowohl innerhalb als auch außerhalb von IBM Cloud gehostet werden. API-Schlüsseln, denen Service-IDs zugeordnet sind, wird der Zugriff erteilt, der dieser Service-ID zugeordnet ist. Weitere Informationen zu Service-ID-Schlüsseln finden Sie im Abschnitt zur Verwaltung von API-Schlüsseln für Service-IDs.
Bewährte Verfahren für API-Schlüssel
Schützen Sie Ihre API-Schlüssel, um das Risiko zu reduzieren, dass Berechtigungsnachweise, die Ihr Konto und Ihre Anwendungen beeinträchtigen, öffentlich zugänglich gemacht werden. Beachten Sie für die Sicherheit Ihrer API-Schlüssel die folgenden Richtlinien.
-
Weisen Sie die restriktivste Servicerolle zu, die für die erforderliche Zugriffsebene verwendet werden kann.
Weisen Sie beispielsweise die Servicerolle
Readerfür Aufrufe Ihrer Anwendung an die API-Methoden des TypsGETzu. Diese Rolle hat nur Lesezugriff, sodass Ressourcen nicht erstellt oder bearbeitet werden können. -
Integrieren Sie den API-Schlüssel nicht direkt in den Code.
API-Schlüssel, die in Code integriert sind, könnten für Benutzer zugänglich gemacht werden. Anstatt die API-Schlüssel in Code zu integrieren, sollten Sie sie entweder in Umgebungsvariablen speichern oder in Dateien, die sich außerhalb Ihres Quellcodesteuersystems befinden.
-
Speichern Sie einen API-Schlüssel nicht in Dateien innerhalb des Quellcodesteuersystems Ihrer Anwendung.
Wenn Sie API-Schlüssel in Dateien speichern, stellen Sie sicher, dass sich die Dateien außerhalb des Quellcodes Ihrer Anwendung befinden. Diese Vorgehensweise ist wichtig, wenn Sie ein öffentliches Quellcodeverwaltungssystem wie GitHub verwenden.
-
Generieren Sie die API-Schlüssel neu oder wechseln Sie sie turnusmäßig.
Erstellen Sie in regelmäßigen Abständen neue Schlüssel oder wechseln Sie sie turnusmäßig. Vergessen Sie auch nicht, Schlüssel zu löschen, die Sie nicht mehr verwenden.
Nächste Schritte
- Übersicht zu IBM Cloud IAM
- Informationen zum Verwalten des Zugriffs finden Sie in IBM Cloud
- Details zu Richtlinien, Benutzerrollen und Berechtigungen
- Informationen zur Vorgehensweise beim Übergeben von API-Schlüsseln und Tokens