S'authentifier à l'aide de jetons Web JSON

Ce document explique comment configurer l'authentification pour accéder aux API Google Cloud lorsque votre système SAP s'exécute sur un hôte sur site, sur un autre fournisseur cloud, dans un autre environnement extérieur à Google Cloud ou sur un hôte géré par SAP via le programme SAP RISE. Pour l'authentification à Google Cloud, vous utilisez des jetons Web JSON (JWT) signés Google Cloud pour obtenir des jetons d'accès depuis Google Cloud.

Les étapes de configuration de haut niveau sont les suivantes :

Créer un compte de service pour la récupération de jeton basée sur JWT

Pour l'authentification basée sur JWT à Google Cloud, le SDK ABAP pour Google Cloud nécessite un compte de service IAM.

Créer un compte de service

Créez un compte de service et attribuez-lui le rôle IAM Service Account Token Creator.

Pour créer un compte de service, suivez les étapes suivantes :

  1. Dans la console Google Cloud, créez un compte de service IAM pour la récupération de jeton basée sur JWT.

    Accéder à la page "Comptes de service"

    Pour en savoir plus sur la création d'un compte de service, consultez la page Créer un compte de service.

  2. Attribuez le rôle Service Account Token Creator au compte de service. Pour savoir comment procéder, consultez la section Attribuer un rôle unique.

Créer une clé de compte de service

Vous devez créer une clé de compte de service P12 pour le compte de service utilisé pour la récupération de jeton basée sur JWT.

Pour créer une clé de compte de service, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Comptes de service d'IAM et administration.

    Accéder à la page "Comptes de service"

  2. Sélectionnez votre projet Google Cloud.

  3. Cliquez sur l'adresse e-mail du compte de service que vous avez créé pour la récupération de jeton basée sur JWT dans la section précédente, Créer un compte de service.

  4. Sous le nom du compte de service, cliquez sur l'onglet Clés.

  5. Cliquez sur le menu déroulant Ajouter une clé, puis sélectionnez Créer une clé pour créer une clé de compte de service.

  6. Acceptez P12 comme type de clé, puis cliquez sur Créer.

    Une clé privée est téléchargée sur votre ordinateur.

  7. Notez le mot de passe du fichier de clé privée, notasecret.

    Indiquez la clé privée et le mot de passe à votre administrateur SAP pour importer la clé privée dans STRUST, comme décrit dans la section Importer la clé de compte de service dans STRUST.

Spécifier le compte de service pour la signature JWT

Si vous avez créé le compte de service pour la signature JWT dans un projet différent de celui contenant les API Google Cloud, vous devez spécifier le compte de service sur le système hôte SAP.

Si vous avez créé le compte de service dans le même projet qui contient les API Google Cloud, vous pouvez ignorer cette étape.

Pour spécifier le compte de service pour la signature JWT, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

    Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

  2. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer les paramètres.

  3. Cliquez sur Nouvelles entrées.

  4. Dans le champ Nom du paramètre, saisissez JWT_SERVC_ACCT. La description du paramètre est renseignée automatiquement.

  5. Dans le champ Valeur de paramètre, saisissez le nom du compte de service.

  6. Enregistrez la nouvelle entrée.

Configurer les paramètres de sécurité Google Cloud sur le système hôte SAP

Pour activer la signature JWT pour le compte de service que vous avez créé pour la récupération de jeton basée sur JWT, vous devez configurer les paramètres de sécurité de Google Cloud sur le système hôte SAP.

Créer une nouvelle application de stockage et de transfert sécurisés (SSF)

Chaque entrée SSFAPPLIC vous permet d'enregistrer une seule clé de compte de service. Pour enregistrer des clés de compte de service pour plusieurs projets, vous devez créer plusieurs entrées SSFAPPLIC en suivant les mêmes étapes.

Pour créer une entrée dans la table SSFAPPLIC, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, saisissez le code de transaction SE16.
  2. Dans le champ Nom de la table, saisissez SSFAPPLIC, puis créez une entrée.
  3. Dans le champ APPLIC, saisissez le nom de votre application SSF (par exemple, ZG_JWT).
  4. À l'exception des champs B_INCCERTS, B_DETACHED, B_ASKPWD et B_DISTRIB, sélectionnez tous les autres champs.
  5. Dans le champ DESCRIPT, saisissez JWT Signature for GCP.
  6. Enregistrez la nouvelle entrée.

    Cette entrée devient un nouveau nœud dans la transaction STRUST, où vous importez la clé du compte de service.

Activer le nœud STRUST

Utilisez la transaction SSFA pour activer le nœud STRUST pour JWT Signature for GCP.

Pour activer le nœud STRUST, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, saisissez le code de transaction SSFA.
  2. Cliquez sur Nouvelles entrées.
  3. Dans la liste déroulante Application SSF, sélectionnez JWT Signature for GCP. Il s'agit de la nouvelle entrée que vous avez créée dans la table SSFAPPLIC.

    Les paramètres SSF spécifiques à l'application sont renseignés automatiquement.

  4. Enregistrez la nouvelle entrée.

    Un nouveau nœud SSF JWT Signature for GCP est activé dans la transaction STRUST.

Importer la clé de compte de service dans STRUST

Pour importer la clé de compte de service dans STRUST, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, saisissez le code de transaction STRUST.

    Vérifiez que le nouveau nœud dans la transaction STRUST est SSF JWT Signature for GCP.

  2. Importez le fichier de clé privée :

    1. Sélectionnez PSE > Importer dans la barre de menu.
    2. Selon votre système SAP, sélectionnez la clé privée appropriée :
      • SAP S/4HANA
        1. Sélectionnez la clé privée P12.
        2. Saisissez le mot de passe du fichier notasecret, puis cliquez sur OK.
      • SAP ECC
        1. Sélectionnez la clé privée PSE. Vous devez convertir la clé privée P12 que vous avez téléchargée précédemment en clé privée PSE. Pour en savoir plus sur la conversion d'une clé P12 en clé PSE, consultez la section Convertir une clé P12 en clé PSE.
        2. Saisissez le code d'identification du fichier que vous avez créé lors de la conversion de la clé privée P12 en clé privée PSE, puis cliquez sur OK.
  3. Sélectionnez PSE > Enregistrer sous.

  4. Sélectionnez Application SSF, puis, dans le champs de saisie correspondant, sélectionnez le nouveau nœud d'application SSF créé dans la section Créer une application de stockage et de transfert sécurisés (SSF).

  5. Enregistrez la nouvelle entrée.

    La clé de service est associée au nœud d'application SSF SSF JWT Signature for GCP.

Convertir la clé privée P12 en clé PSE

Si votre système SAP SAP NetWeaver 7.0x (SAP ECC), vous devez convertir la clé P12 en clé PSE.

Pour convertir la clé P12 en clé PSE, procédez comme suit :

  1. Accédez au chemin de répertoire suivant :

    /usr/sap/SID/SYS/exe/run/

    Remplacez SID par l'ID du système SAP.

  2. Exécutez la commande suivante après avoir remplacé les espaces réservés :

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    Remplacez les éléments suivants :

    • PSE_PATH_AND_FILE_NAME : spécifiez le chemin d'accès et le nom du fichier PSE.
    • P12_PATH_AND_FILE_NAME : spécifiez le chemin d'accès et le nom du fichier de clé P12.
  3. Saisissez le mot de passe du fichier de clé privée P12, notasecret.

  4. Créez un nouveau code d'identification pour la clé privée PSE, puis saisissez à nouveau votre code.

  5. Notez ce code. Vous devez le fournir lors de l'importation du fichier de clé privée PSE dans STRUST.

Pour en savoir plus sur la conversion d'une clé P12 en clé PSE, consultez les pages suivantes :

Activer les API Google Cloud

Dans la console Google Cloud, activez l'API Service Account Credentials IAM pour votre projet Google Cloud qui nécessite une authentification. Outre l'API Service Account Credentials IAM, vous devez activer toutes les autres API compatibles auxquelles vous prévoyez d'accéder à l'aide du SDK.

Accéder à la bibliothèque d'API

Pour en savoir plus sur l'activation des API Google Cloud, consultez la page Activer des API.

Créer un compte de service pour autoriser l'accès aux API Google Cloud

Pour l'authentification et l'autorisation d'accès aux API Google Cloud, le SDK ABAP pour Google Cloud nécessite un compte de service IAM.

Créer un compte de service

Dans la console Google Cloud, créez un compte de service IAM. Ce compte de service doit être un compte principal dans le projet Google Cloud contenant les API Google Cloud que vous prévoyez d'utiliser à l'aide du SDK. Si vous créez le compte de service dans le même projet qui contient les API Google Cloud, le compte de service est automatiquement ajouté en tant que compte principal au projet.

Si vous créez le compte de service dans un projet autre que celui dans lequel les API Google Cloud sont activées, vous devez ajouter le compte de service à ce projet lors d'une étape supplémentaire.

  1. Dans la console Google Cloud, créez un compte de service IAM pour l'authentification et l'autorisation d'accès aux API Google Cloud.

    Accéder à la page "Comptes de service"

    Pour en savoir plus sur la création d'un compte de service, consultez la page Créer un compte de service.

  2. Dans la console Google Cloud, accordez au compte de service les rôles IAM requis pour accéder aux fonctionnalités de l'API. Pour comprendre les exigences de rôle pour les API Google Cloud, consultez la documentation de l'API concernée et suivez le principe du moindre privilège. Pour en savoir plus sur les rôles prédéfinis spécifiques à l'API, consultez la page Rechercher des rôles IAM pour les API Google Cloud.

  3. Si vous avez créé le compte de service dans un projet différent de celui contenant les API Google Cloud que vous prévoyez d'utiliser à l'aide du SDK, notez le nom du compte de service. Ce nom doit être spécifié lors de l'ajout du compte de service à ce projet. Pour en savoir plus, consultez la section Ajouter le compte de service au projet Google Cloud.

Ajouter le compte de service au projet Google Cloud

Si vous avez créé le compte de service du SDK ABAP pour Google Cloud dans un projet autre que le projet contenant les API Google Cloud que vous prévoyez d'utiliser à l'aide du SDK, vous devez ajouter le compte de service au projet Google Cloud contenant les API Google Cloud.

Si vous avez créé le compte de service dans le même projet qui contient les API Google Cloud, vous pouvez ignorer cette étape.

Pour ajouter un compte de service existant au projet Google Cloud contenant les API Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page "Autorisations IAM".

    Accéder à la page "Autorisations IAM"

  2. Vérifiez que le nom du projet contenant les API Google Cloud cibles s'affiche bien en haut de la page. Exemple :

    Autorisations pour le projet "PROJECT_NAME"

    Si ce n'est pas le cas, changez de projet.

  3. Sur la page IAM, cliquez sur Accorder l'accès. La boîte de dialogue Accorder l'accès à "PROJECT_NAME" s'ouvre.

  4. Dans la boîte de dialogue Accorder l'accès à "PROJECT_NAME", procédez comme suit :

    1. Dans le champ Nouveaux comptes principaux, spécifiez le nom du compte de service.
    2. Dans le champ Sélectionner un rôle, spécifiez un rôle approprié. Par exemple, pour Pub/Sub, pour modifier les sujets et les abonnements, ainsi que pour accéder à la publication et à la consultation de messages, vous pouvez spécifier le rôle "Éditeur Pub/Sub" (roles/pubsub.editor).

      Pour en savoir plus sur les rôles prédéfinis spécifiques à l'API, consultez la documentation de référence sur les rôles IAM de base et prédéfinis.

    3. Ajoutez des rôles supplémentaires selon vos besoins pour l'utilisation de l'API. Mettez en œuvre les bonnes pratiques recommandées par Google en appliquant le principe du moindre privilège.

    4. Cliquez sur Enregistrer. Le compte de service apparaît dans la liste des comptes principaux du projet sur la page IAM.

Le compte de service permet désormais d'accéder aux API Google Cloud de ce projet.

Configurer la connexion HTTPS

Le serveur d'applications SAP est requis pour se connecter aux API Google Cloud via HTTPS.

Sur l'hôte SAP, vérifiez que les règles ou les proxys sont configurés pour autoriser le trafic sortant du port HTTPS vers les API Google Cloud requises.

Plus précisément, votre système SAP doit pouvoir accéder aux points de terminaison d'API suivants :

  • https://iamcredentials.googleapis.com
  • Les points de terminaison des API que vous souhaitez utiliser à l'aide du SDK.

Créer des configurations SAP

Pour l'authentification basée sur JWT, créez les configurations SAP requises.

Spécifier les paramètres d'accès dans la table de clés client

Pour spécifier les paramètres d'accès, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

    Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

  2. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer la clé client.

  3. Cliquez sur Nouvelles entrées.

  4. Renseignez les champs suivants :

    Champ Description
    Nom de la clé Google Cloud Spécifiez un nom de configuration de clé client.
    Nom du compte de service Google Cloud

    Spécifiez le nom du compte de service (au format d'adresse e-mail) créé pour le SDK ABAP pour Google Cloud à l'étape Créer un compte de service. Exemple : sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com

    Champ d'application Google Cloud Spécifiez le champ d'application d'accès, https://www.googleapis.com/auth/cloud-platform.
    ID du projet Spécifiez l'ID du projet Google Cloud qui contient vos API cibles.
    Nom de la commande Laissez ce champ vide.
    Classe d'autorisation Spécifiez la classe d'autorisation, /GOOG/CL_AUTH_JWT.
    Champ d'autorisation Laissez ce champ vide.
    Secondes avant actualisation du jeton Laissez ce champ vide.
    Paramètre d'autorisation 1 Spécifiez le nom de l'application SSF que vous avez créée dans la section Créer une nouvelle application de stockage et de transfert sécurisés (SSF).
  5. Enregistrez la nouvelle entrée.

Créer des destinations RFC.

Créez des destinations RFC pour l'API IAM et les autres API que vous prévoyez d'utiliser à l'aide du SDK ABAP pour Google Cloud, par exemple l'API Pub/Sub v1.

Nom de la destination RFC Remarques
ZGOOG_IAMCREDENTIALS Cette destination RFC cible l'API Cloud IAM.
ZGOOG_OAUTH2_TOKEN Cette destination RFC cible le point de terminaison Google Cloud pour l'authentification basée sur des jetons.
ZGOOG_PUBSUB_V1 Cette destination RFC cible l'API Pub/Sub.

Pour en savoir plus sur la création de destinations RFC, consultez la section Destinations RFC.

Spécifier les destinations RFC dans la table de mappage des services

Dans le tableau de mappage des services, spécifiez les destinations RFC pour l'API IAM et les autres API que vous prévoyez d'utiliser à l'aide du SDK ABAP pour Google Cloud.

Pour spécifier les destinations RFC, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

    Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

  2. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.

  3. Cliquez sur Nouvelles entrées.

  4. Spécifiez les destinations RFC pour l'API IAM et d'autres API, par exemple :

    Nom Nom du service Destination RFC
    Nom de la clé Google Cloud iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Nom de la clé Google Cloud googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Nom de la clé Google Cloud pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. Enregistrez la nouvelle entrée.

Valider la configuration de l'authentification

Pour valider la configuration d'authentification, procédez comme suit :

  1. Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction /GOOG/SDK_IMG.

    Vous pouvez également exécuter le code de transaction SPRO, puis cliquer sur SAP Reference IMG (IMG de référence SAP).

  2. Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > Valider la configuration de l'authentification.

  3. Saisissez le nom de la clé client.

  4. Cliquez sur Exécuter pour vérifier si le flux global est correctement configuré.

    Une coche verte dans la colonne État indique que toutes les étapes de configuration ont été effectuées.

Obtenir de l'aide

Procédez comme suit si vous avez besoin d'aide pour résoudre les problèmes liés au SDK ABAP pour Google Cloud :