In diesem Dokument wird beschrieben, wie Sie sich mit Tokens über die Identitätsföderation von Arbeitslasten bei Google Cloud authentifizieren. Mit Identitätsföderation von Arbeitslasten können Sie lokalen oder Multi-Cloud-SAP-Arbeitslasten ohne Verwendung eines Dienstkontoschlüssels Zugriff auf Google Cloud-Ressourcen gewähren. Sie können die Identitätsföderation von Arbeitslasten mit Amazon Web Services (AWS) oder einem beliebigen anderen Identitätsanbieter nutzen, der OpenID Connect (OIDC) unterstützt, wie z. B. Microsoft Azure oder SAML 2.0.
Die Identitätsföderation von Arbeitslasten entspricht der Spezifikation des OAuth 2.0-Tokenaustauschs. Sie geben Anmeldedaten von Ihrem Identitätsanbieter an das Sicherheits-Token-Dienst weiter, der die Identität auf den Anmeldedaten prüft und dann ein föderiertes Token zurückgibt. Sie können mit diesem Token die Identität eines Dienstkontos übernehmen und ein kurzlebiges OAuth 2.0-Zugriffstoken abrufen. Mit diesem Token können Sie alle Google Cloud APIs aufrufen, auf die das Dienstkonto Zugriff hat.
Für die Authentifizierung mit Tokens über Identitätsföderation von Arbeitslasten sind die folgenden allgemeinen Konfigurationsschritte erforderlich:
- Externen IdP vorbereiten.
- Konfigurieren Sie die Identitätsföderation von Arbeitslasten in Google Cloud.
- Erstellen Sie ein Dienstkonto in Google Cloud.
- Erlauben Sie in Google Cloud, dass die externe Arbeitslast die Identität des Dienstkontos übernehmen kann.
- Implementieren Sie im ABAP SDK for Google Cloud ABAP-Code, um Sicherheitstokens von Ihrem IdP abzurufen.
- Konfigurieren Sie den Clientschlüssel im ABAP SDK for Google Cloud.
Die Identitätsföderation von Arbeitslasten wird nicht von allen Google Cloud-Produkten unterstützt. Sehen Sie sich vor dem Einrichten der Authentifizierung mit Identitätsföderation von Arbeitslasten die Liste der unterstützten Produkte und Einschränkungen an. Weitere Informationen finden Sie unter Mitarbeiteridentitätsföderation: Unterstützte Produkte und Einschränkungen.
Externen IdP vorbereiten
Sie müssen Ihren IdP so vorbereiten, dass Ihre SAP-Arbeitslast Anmeldedaten abrufen kann, die gegen ein Google OAuth 2.0-Sicherheitstoken ausgetauscht werden können.
Führen Sie die folgenden Schritte je nach IdP aus, um Ihren externen IdP vorzubereiten:
- Wenn Sie AWS oder Azure als IdP nutzen, folgen Sie der Anleitung Externen IdP vorbereiten.
- Wenn Sie andere IdPs nutzen, folgen Sie der Anleitung Externen IdP vorbereiten.
Identitätsföderation von Arbeitslasten konfigurieren
Konfigurieren Sie in Google Cloud den Workload Identity-Pool und die Anbieter.
Sie konfigurieren einen Identitätspool, also eine Entität, mit der Sie externe Identitäten verwalten können. Außerdem konfigurieren Sie einen Workload Identity-Poolanbieter, der eine Entität ist, die eine Beziehung zwischen Google Cloud und Ihrem IdP beschreibt.
Führen Sie zum Konfigurieren der Identitätsföderation von Arbeitslasten die folgenden Schritte je nach externem IdP aus:
- Wenn Sie AWS oder Azure als IdP verwenden, folgen Sie der Anleitung zum Erstellen des Workload Identity-Pools und des Anbieters.
- Wenn Sie andere IdPs verwenden, folgen Sie der Anleitung zum Erstellen des Workload Identity-Pools und des Anbieters.
Notieren Sie sich Folgendes:
- Projektnummer: die Projektnummer des Google Cloud-Projekts, in dem Sie den Workload Identity-Pool erstellt haben.
- Pool-ID: Eine eindeutige ID, die den Workload Identity-Pool identifiziert.
- Anbieter-ID: Eine ID, die den Anbieter des Workload Identity-Pools identifiziert.
Sie benötigen sie für die Konfiguration des ABAP SDK-Clientschlüssels.
Dienstkonto erstellen
Erstellen Sie in der Google Cloud Console ein dediziertes IAM-Dienstkonto für den Zugriff auf Google Cloud APIs. Dieses Dienstkonto muss ein Hauptkonto in dem Google Cloud-Projekt sein, das die Google Cloud APIs enthält, die Sie mit dem SDK nutzen möchten.
Aktivieren Sie in der Google Cloud Console die IAM Service Account Credentials API, die Security Token Service API und alle anderen unterstützten APIs, auf Sie mit dem SDK zugreifen möchten.
Informationen zum Aktivieren von Google Cloud APIs finden Sie unter APIs aktivieren.
Erstellen Sie ein Dienstkonto, das die Arbeitslast darstellt.
Gewähren Sie dem Dienstkonto die erforderlichen IAM-Rollen, um auf die API-Funktionen zuzugreifen. Um die Rollenanforderung für Google Cloud APIs zu verstehen, lesen Sie die einzelne API-Dokumentation und folgen Sie dem Prinzip der geringsten Berechtigung. Weitere Informationen zu API-spezifischen vordefinierten Rollen finden Sie unter IAM-Rollen für Google Cloud APIs finden.
Externer Arbeitslast erlauben, die Identität des Dienstkontos zu übernehmen
Führen Sie die folgenden Schritte je nach externem IdP aus, damit die externe Arbeitslast die Identität des Dienstkontos übernehmen kann:
- Wenn Sie AWS oder Azure als IdP verwenden, folgen Sie der Anleitung, um der externen Arbeitslast zu erlauben, die Identität des Dienstkontos zu übernehmen.
- Wenn Sie andere IdPs verwenden, folgen Sie der Anleitung, um der externen Arbeitslast zu erlauben, die Identität des Dienstkontos zu übernehmen.
ABAP-Code implementieren, um Sicherheitstoken von Ihrem IdP abzurufen
Das ABAP SDK for Google Cloud bietet eine abstrakte Klasse /GOOG/CL_AUTH_WIF_BASE
mit der Logik zum Abrufen von OAuth 2.0-Sicherheitstokens aus dem Security Token Service und OAuth 2.0-Zugriffstokens aus der IAM Service Account Credentials API. Als Entwickler müssen Sie in Ihrem Namespace eine untergeordnete Klasse erstellen, die von der abstrakten Klasse /GOOG/CL_AUTH_WIF_BASE
übernimmt.
Zum Aufrufen von Cloud Functions aus dem ABAP SDK for Google Cloud mithilfe der Identitätsföderation von Arbeitslasten bietet das SDK eine weitere abstrakte Klasse /GOOG/CL_AUTH_WIF_ID_TOKEN
. Wenn Sie die Authentifizierung mithilfe der Identitätsföderation von Arbeitslasten einrichten, müssen Sie in Ihrem Namespace eine weitere untergeordnete Klasse erstellen, die von der abstrakten Klasse /GOOG/CL_AUTH_WIF_ID_TOKEN
übernimmt. Sie geben diese untergeordnete Klasse im Feld Autorisierungsklasse an, während Sie den Clientschlüssel zum Aufrufen von Cloud Functions konfigurieren.
Implementieren Sie die Methode GET_EXT_IDP_TOKEN
in der untergeordneten Klasse und schreiben Sie die Logik, um das Sicherheitstoken von Ihrem IdP abzurufen. Füllen Sie die folgenden Felder aus:
CV_TOKEN
ist das von Ihrem IdP abgerufene Token im Formatstring
.CV_TOKEN_TYPE
ist der Typ des Sicherheitstokens, das von Ihrem IdP abgerufen wurde. Folgende Tokentypen werden unterstützt:urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
Die in CV_TOKEN
und CV_TOKEN_TYPE
eingegebenen Werte werden dann von Methoden der abstrakten Klasse /GOOG/CL_AUTH_WIF_BASE
verwendet, um das in den API-Aufrufen verwendet, endgültige OAuth 2.0-Token auszutauschen und abzurufen.
Das folgende Beispiel zeigt die Beispielimplementierungen der Methode GET_EXT_IDP_TOKEN
für andere Cloud-Anbieter wie AWS und Azure.
AWS
Azure
Clientschlüssel konfigurieren
-
Führen Sie in der SAP-GUI den Transaktionscode
/GOOG/SDK_IMG
aus.Alternativ können Sie den Transaktionscode
SPRO
ausführen und dann auf SAP-Referenz-IMG klicken. - Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Klicken Sie auf Neue Einträge.
Geben Sie Werte für die folgenden Felder ein:
Feld Beschreibung Google Cloud-Schlüsselname Geben Sie einen Namen für die Konfiguration des Clientschlüssels an. Name des Google Cloud-Dienstkontos Geben Sie den Namen des Dienstkontos im E-Mail-Adressformat an, das im Schritt Dienstkonto erstellen für den Zugriff auf Google Cloud APIs erstellt wurde. Beispiel: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
.Google Cloud-Bereich Lassen Sie dieses Feld leer. Google Cloud-Projekt-ID Geben Sie die ID des Google Cloud-Projekts an, in dem Sie den Workload Identity-Pool erstellt haben. Befehlsname Lassen Sie dieses Feld leer. Autorisierungsklasse Geben Sie die untergeordnete Klasse an, die die Implementierung der Klasse /GOOG/CL_AUTH_WIF_BASE
enthält. Weitere Informationen finden Sie unter ABAP-Code zum Abrufen von Sicherheitstokens von Ihrem IdP implementieren.Token-Caching Lassen Sie dieses Feld leer. Sekunden bis Tokenaktualisierung Lassen Sie dieses Feld leer. Autorisierungsparameter 1 Geben Sie die Workload Identity-Pool-ID an. Autorisierungsparameter 2 Geben Sie die ID des Workload Identity-Anbieters an. Speichern Sie den Eintrag.
Support kontaktieren
Wenn Sie Hilfe bei der Behebung von Problemen mit dem ABAP SDK für Google Cloud benötigen, gehen Sie so vor:
Weitere Informationen finden Sie im Leitfaden zur Fehlerbehebung für ABAP SDK für Google Cloud.
In den Cloud-Foren können Sie Ihre Fragen stellen und über die ABAP SDK für Google Cloud mit der Community sprechen.
Erfassen Sie alle verfügbaren Diagnoseinformationen und wenden Sie sich an Cloud Customer Care. Informationen zur Kontaktaufnahme mit Customer Care finden Sie unter Support für SAP in Google Cloud.