Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Bei der API authentifizieren

Auf dieser Seite wird erläutert, wie Sie Anfragen an die Cloud Healthcare API autorisieren.

Dienstkonto-Schlüsseldatei abrufen

So erstellen Sie ein Dienstkonto und laden eine Schlüsseldatei herunter:

Cloud Console

Erstellen Sie ein Dienstkonto:

  1. Wechseln Sie in der Cloud Console zur Seite Dienstkonto erstellen.

    Zur Seite „Dienstkonto erstellen“
  2. Wählen Sie ein Projekt aus.
  3. Geben Sie im Feld Dienstkontoname einen Namen ein. In der Cloud Console wird das Feld Dienstkonto-ID anhand dieses Namens ausgefüllt.

    Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

  4. Klicken Sie auf Erstellen.
  5. Klicken Sie auf das Feld Rolle auswählen.

    Klicken Sie unter Schnellzugriff auf Einfach und dann auf Inhaber.

  6. Klicken Sie auf Weiter.
  7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

    Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

Dienstkontoschlüssel erstellen

  1. Klicken Sie in der Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
  2. Klicken Sie auf Schlüssel.
  3. Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
  4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
  5. Klicken Sie auf Schließen.

Befehlszeile

Sie können die folgenden Befehle mithilfe des Cloud SDK auf Ihrem lokalen Computer oder in Cloud Shell ausführen.

  1. Erstellen Sie das Dienstkonto. Ersetzen Sie NAME mit einem Namen für das Dienstkonto.

    gcloud iam service-accounts create NAME
  2. Gewähren Sie dem Dienstkonto Berechtigungen. Geben Sie für PROJECT_ID Ihre Projekt-ID an.

    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/owner"
  3. Erstellen Sie die Schlüsseldatei. Geben Sie für FILE_NAME einen Namen für die Schlüsseldatei an.

    gcloud iam service-accounts keys create FILE_NAME.json --iam-account=NAME@PROJECT_ID.iam.gserviceaccount.com

Anmeldedaten für Ihre Anwendung bereitstellen

Die Cloud Healthcare API kann sprachspezifische Google-Clientbibliotheken verwenden, um Anwendungen zu authentifizieren und Aufrufe an Google Cloud zu tätigen. Mit der Google API-Clientbibliothek für Python können Sie beispielsweise ein Dienstobjekt mit Ihren Anmeldedaten erstellen und anschließend aufrufen.

Sie können Anmeldedaten automatisch oder manuell bereitstellen. Die automatische Bereitstellung von Anmeldedaten ist beim Testen und Experimentieren hilfreich, kann jedoch erschweren, welche Anmeldedaten Ihre Anwendung verwendet. Alternativ können Sie die Anmeldedaten manuell angeben.

Umgebungsvariablen festlegen

Sie können Anmeldedaten zur Authentifizierung für Ihren Anwendungscode oder Ihre Befehle angeben. Legen Sie hierfür die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den Dateipfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält.

Wenn Sie Ihre Anwendung in Compute Engine, Google Kubernetes Engine (GKE) oder App Engine ausführen, müssen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS nur festlegen, wenn Sie ein Dienstkonto verwenden, das nicht das Standarddienstkonto ist, das von diesen Diensten bereitgestellt wird.

In den folgenden Beispielen wird gezeigt, wie Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen:

curl

Wenn Sie curl verwenden, führen Sie den folgenden Befehl aus. Geben Sie für PATH den Dateipfad der JSON-Datei an, die Ihren Dienstkontoschlüssel enthält, und für FILE_NAME den Dateinamen. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable erneut festlegen.

export GOOGLE_APPLICATION_CREDENTIALS=PATH/FILE_NAME

Beispiel:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account.json"

PowerShell

Wenn Sie Windows PowerShell verwenden, führen Sie den folgenden Befehl aus. Geben Sie für PATH den Dateipfad der JSON-Datei an, die Ihren Dienstkontoschlüssel enthält, und für FILE_NAME den Dateinamen. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable erneut festlegen.

$env:GOOGLE_APPLICATION_CREDENTIALS="PATH/FILE_NAME"

Beispiel:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service_account.json"

Nachdem Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festgelegt haben, können die Standardanmeldedaten für Anwendungen Ihre Anmeldedaten implizit ermitteln.

Anmeldedaten automatisch finden

Google API-Clientbibliotheken verwenden Standardanmeldedaten für Anwendungen, um die Anmeldedaten Ihrer Anwendung automatisch zu finden.

Wenn Sie in Ihrem Code eine Clientbibliothek verwenden, überprüft die Clientbibliothek Ihre Anmeldedaten in folgender Reihenfolge:

  1. ADC prüft, ob die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festgelegt ist. Ist dies der Fall, wird die Dienstkontodatei, auf die die Variable verweist, für die Anmeldedaten verwendet. Unter Umgebungsvariablen festlegen wird beschrieben, wie die Umgebungsvariable festgelegt wird.
  2. Wenn die Umgebungsvariable nicht festgelegt ist, verwendet ADC das von Compute Engine, Google Kubernetes Engine (GKE) oder App Engine bereitgestellte Standarddienstkonto, wenn Ihre Anwendung auf einem dieser Dienste ausgeführt wird.

Wenn die Anmeldedaten weder im ersten noch im zweiten Schritt ermittelt werden können, tritt ein Fehler auf.

Das folgende Codebeispiel zeigt die Verwendung von ADC. Im Beispiel werden die Anmeldedaten der Anwendung nicht explizit angegeben. ADC kann die Anmeldedaten jedoch implizit finden und in der Variablen auth speichern, solange die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festgelegt ist oder die Anwendung in Compute Engine, GKE oder App Engine ausgeführt wird.

Node.js

Verwendet die Node.js-Clientbibliothek.

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const createDataset = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  const parent = `projects/${projectId}/locations/${cloudRegion}`;
  const request = {parent, datasetId};

  await healthcare.projects.locations.datasets.create(request);
  console.log(`Created dataset: ${datasetId}`);
};

createDataset();

Dienstkonto-Anmeldedaten manuell abrufen und bereitstellen

Sie können Anmeldedaten für Dienstkonten manuell erstellen und abrufen und diese dann im Code an Ihre Anwendung übergeben. Weitere Informationen finden Sie unter Dienstkonto-Anmeldedaten manuell abrufen und bereitstellen.

Dienstkontoautorisierung mit JSON Web Tokens (JWTs)

Sie können autorisierte Aufrufe an die Cloud Healthcare API durchführen, die OAuth 2.0 nicht verwenden. Verwenden Sie dazu ein signiertes JSON Web Token (JWT) direkt als Inhabertoken anstelle eines OAuth 2.0-Zugriffstokens. Die Cloud Healthcare API erfordert keine bestimmte Methode zur Tokengenerierung. Eine Sammlung von Hilfsclient-Bibliotheken finden Sie auf JWT.io. Wenn Sie ein signiertes JWT verwenden, können Sie vermeiden, eine Netzwerkanfrage an den Autorisierungsserver von Google zu senden, bevor Sie einen API-Aufruf durchführen.

Wenn Sie ein JWT verwenden, geben Sie https://healthcare.googleapis.com/ im Feld aud an.

Folgen Sie der Anleitung unter Addendum: Dienstkontoautorisierung ohne OAuth, um Aufrufe an die Cloud Healthcare API mithilfe eines JWT anstelle eines Zugriffstokens zu autorisieren.

Das von Ihnen erstellte JWT sollte folgendem Beispiel ähneln:

   {
     "alg": "RS256",
     "typ": "JWT",
     "kid": "PRIVATE_KEY_ID"
   }
   .
   {
     "iss": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
     "sub": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
     "aud": "https://healthcare.googleapis.com/",
     "iat": CURRENT_UNIX_TIME,
     "exp": EXPIRATION_TIME
   }
   

Nächste Schritte