S'authentifier à l'aide de jetons d'accès

Ce document explique comment configurer l'authentification pour accéder aux API Google Cloud lorsque votre système SAP est hébergé sur une instance de VM Compute Engine.

Configurer l'authentification

Pour configurer l'authentification, procédez comme suit :

  1. 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.

  2. Dans la console Google Cloud, créez un compte de service IAM pour l'instance de VM hôte.

    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.

  3. 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.

  4. Associez le compte de service à l'instance de VM sur laquelle votre charge de travail SAP est exécutée. Définissez également le niveau d'accès de la VM sur cloud-platform.

    • Si vous spécifiez le compte de service à l'aide de la console Google Cloud, le niveau d'accès de la VM est automatiquement défini sur cloud-platform.
    • Si vous spécifiez le compte de service à l'aide de la Google Cloud CLI ou de l'API Compute Engine, vous devez définir le niveau d'accès aux API sur Allow full access to all Cloud APIs.

      Pour savoir comment procéder, consultez la section Créer une VM et associer le compte de service.

      Après avoir mis à jour le niveau d'accès, redémarrez la VM. Si vous disposez de plusieurs instances de VM pour la même installation SAP, vous devez répéter cette étape sur toutes ces instances de VM.

  5. Dans la console Google Cloud, créez un compte de service IAM dédié pour accéder aux API Google Cloud.

    Accéder à la page "Comptes de service"

    Pour savoir comment procéder, consultez la section Créer un compte de service.

  6. Attribuez 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 documentation de référence sur les rôles IAM de base et prédéfinis.

  7. Si vous avez créé le compte de service dans un projet différent de celui contenant les API Google Cloud, vous devez effectuer des étapes supplémentaires pour configurer le compte de service. Pour en savoir plus, consultez la page Configurer des comptes de service dans un environnement multiprojet.

  8. Dans le système SAP, configurez la clé client :

    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. Par exemple, TEST_PUBSUB.
      Nom du compte de service Google Cloud

      Indiquez le nom du compte de service auquel vous avez autorisé l'accès aux API Google Cloud. Par exemple, sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com.

      Si la VM hôte de votre système SAP contenant le SDK se trouve dans un projet différent de celui sur lequel les API Google Cloud sont activées, spécifiez le compte de service utilisé pour accéder aux API Google Cloud. Pour en savoir plus, consultez la page Configurer des comptes de service dans un environnement multiprojet.

      Champ d'application Google Cloud Spécifiez le niveau d'accès à l'API, https://www.googleapis.com/auth/cloud-platform.
      Identifiant de projet Google Cloud 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_GOOGLE.
      Mise en cache des jetons

      Option qui détermine si les jetons d'accès récupérés depuis Google Cloud sont mis en cache ou non.

      Nous vous recommandons d'activer la mise en cache des jetons après avoir configuré et testé votre connexion à Google Cloud. Pour en savoir plus sur la mise en cache des jetons, consultez la section Activer la mise en cache des jetons.

      Secondes avant actualisation du jeton Durée (en secondes) avant l'expiration d'un jeton d'accès et son actualisation. La valeur par défaut est 3500.
      Paramètre d'autorisation 1 Laissez ce champ vide.
      Paramètre d'autorisation 2 Laissez ce champ vide.
    5. Enregistrez la nouvelle entrée.

  9. Dans le système SAP, créez des destinations RFC pour les API que vous prévoyez d'utiliser à l'aide du SDK ABAP pour Google Cloud.

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

  10. Dans le système SAP, configurez la table de mappage de service pour l'API IAM et les autres API que vous prévoyez d'utiliser à l'aide du SDK ABAP pour Google Cloud.

    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 Pub/Sub API v1.

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

  11. Dans le système SAP, validez la configuration de l'authentification. Pour en savoir plus, consultez la section Valider la configuration de l'authentification.

Configurer des comptes de service dans un environnement multiprojet

La VM hôte de votre système SAP, qui contient le SDK, peut se trouver dans un projet Google Cloud différent de celui sur lequel les API Google Cloud sont activées. Dans ce cas, vous devez configurer des comptes de service avec les rôles IAM requis pour que le SDK puisse accéder aux API depuis les différents projets.

Le tableau suivant montre un exemple de configuration de compte de service pour l'accès aux API multiprojet.

Environnement VM hôte SAP API Google Cloud
Projet Google Cloud project-sap-host project-google-apis
Compte de service attribué à la VM hôte SAP sa-sap-host@project-sap-host.iam.gserviceaccount.com Non disponible
Compte de service permettant d'accéder aux API Google Cloud sa-google-apis@project-sap-host.iam.gserviceaccount.com Non disponible
Rôles IAM du compte de service Dans le projet project-sap-host, attribuez au compte de service le rôle de créateur de jetons du compte de service sa-sap-host@project-sap-host.iam.gserviceaccount.com. Dans le projet project-google-apis, ajoutez le compte de service sa-google-apis@project-sap-host.iam.gserviceaccount.com en tant que compte principal et attribuez au compte de service les rôles appropriés pour se connecter aux API Google Cloud.

Pour configurer les comptes de service, procédez comme suit :

  1. Dans le projet Google Cloud contenant votre VM hôte SAP, attribuez au compte de service de la VM hôte SAP le rôle Service Account Token Creator. Pour plus d'informations sur les étapes, consultez la page Attribuer un rôle unique.
  2. Dans le projet Google Cloud contenant votre VM hôte SAP, créez un compte de service. Spécifiez le nom du compte de service. Vous spécifiez ce nom lorsque vous ajoutez le compte de service en tant que compte principal à l'autre projet contenant les API Google Cloud.
  3. Dans l'autre projet qui contient les API Google Cloud, ajoutez le compte de service en tant que principe et attribuez les rôles appropriés pour vous connecter aux API Google Cloud. Pour ajouter un compte de service au projet Google Cloud qui contient 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 le champ Nouveaux comptes principaux, spécifiez le nom du compte de service.

    5. Dans le champ Sélectionner un rôle, spécifiez un rôle approprié. Par exemple, pour Pub/Sub, pour modifier des sujets et des abonnements, ainsi que l'accès à 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.

    6. 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.

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

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 Résultat 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 :