Autenticar usando JSON Web Tokens

Nesta seção, mostramos como configurar a autenticação para acessar as APIs do Google Cloud quando o sistema SAP está sendo executado em um host no local, em outro provedor de nuvem ou em outro ambiente fora do Google Cloud ou gerenciado pela SAP com o programa SAP RISE. Para autenticação no Google Cloud, use os JSON Web Tokens (JWT) assinados pelo Google Cloud para receber tokens de acesso do Google Cloud.

As etapas de configuração de nível alto são as seguintes:

Criar uma conta de serviço para recuperação de tokens baseada em JWT

Para a autenticação baseada em JWT para o Google Cloud, o ABAP SDK for Google Cloud precisa de uma conta de serviço do IAM.

Crie uma conta de serviço

Crie uma conta de serviço e conceda o papel do IAM Service Account Token Creator a ela.

Para criar uma conta de serviço, execute os seguintes passos:

  1. No console do Google Cloud, crie uma conta de serviço do IAM para recuperação de tokens com base em JWT.

    Acesse as Contas de serviço

    Para mais informações sobre como criar uma conta de serviço, consulte Criar uma conta de serviço.

  2. Conceda o papel Service Account Token Creator à conta de serviço. Para mais instruções, consulte Conceder um único papel.

Criar uma chave de conta de serviço

É necessário criar uma chave de conta de serviço P12 para a conta de serviço usada na recuperação de tokens baseados em JWT.

Para criar uma chave da conta de serviço, conclua estas etapas:

  1. No Console do Google Cloud, acesse a página Contas de serviço do IAM e do administrador.

    Acessar Contas de serviço

  2. Selecione seu projeto do Google Cloud.

  3. Clique no endereço de e-mail da conta de serviço que você criou para a recuperação de token baseado em JWT na seção anterior, Criar uma conta de serviço.

  4. No nome da conta de serviço, clique na guia Chaves.

  5. Clique no menu suspenso Adicionar chave e selecione Criar nova chave para criar uma chave de conta de serviço.

  6. Aceite P12 como o tipo de chave e clique em Criar.

    Uma chave privada é salva no seu computador.

  7. Anote a senha do arquivo da chave privada notasecret.

    Forneça a chave privada e a senha ao administrador SAP para importar a chave privada para STRUST, conforme descrito em Importar a chave da conta de serviço para STRUST.

Especifique a conta de serviço para a assinatura JWT

Se você tiver criado a conta de serviço para login JWT em um projeto diferente do projeto que contém as APIs do Google Cloud, será necessário especificar a conta de serviço no sistema host SAP.

Se você criou a conta de serviço no mesmo projeto que contém as APIs do Google Cloud, pule esta etapa.

Para especificar a conta de serviço para a assinatura JWT, siga estas etapas:

  1. Na GUI do SAP, execute o código de transação /GOOG/SDK_IMG.

    Como alternativa, execute o código da transação SPRO e clique em IMG de referência do SAP.

  2. Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar parâmetros.

  3. Clique em Novas entradas.

  4. No campo Nome do parâmetro, insira JWT_SERVC_ACCT. A descrição do parâmetro é preenchida automaticamente.

  5. No campo Valor do parâmetro, digite o nome da conta de serviço.

  6. Salve a nova entrada.

Definir as configurações de segurança do Google Cloud no sistema host da SAP

Para ativar a assinatura JWT para a conta de serviço que você criou para a recuperação de token baseada em JWT, defina as configurações de segurança do Google Cloud no sistema host do SAP.

Criar um novo aplicativo de armazenamento seguro e encaminhamento (SSF, na sigla em inglês)

Cada entrada SSFAPPLIC permite salvar uma única chave de conta de serviço. Para salvar as chaves de contas de serviço em vários projetos, é preciso criar várias entradas SSFAPPLIC seguindo as mesmas etapas.

Para criar uma nova entrada na tabela SSFAPPLIC, siga estas etapas:

  1. Na GUI do SAP, insira o código da transação SE16.
  2. No campo Nome da tabela, insira SSFAPPLIC e crie uma nova entrada.
  3. No campo APPLIC, insira um nome para seu aplicativo SSF, como ZG_JWT.
  4. Com exceção dos campos B_INCCERTS, B_DETACHED, B_ASKPWD e B_DISTRIB, selecione todos os outros campos.
  5. No campo DESCRIPT, insira JWT Signature for GCP.
  6. Salve a nova entrada.

    Essa entrada se torna um novo nó na transação STRUST, em que você importa a chave da conta de serviço.

Ativar o nó STRUST

Use a transação SSFA para ativar o nó STRUST para JWT Signature for GCP.

Para ativar o nó STRUST, siga estas etapas:

  1. Na GUI do SAP, insira o código da transação SSFA.
  2. Clique em Novas entradas.
  3. Na lista suspensa Application SSF, selecione JWT Signature for GCP. É a nova entrada que você criou na tabela SSFAPPLIC.

    Os parâmetros SSF específicos do aplicativo são preenchidos automaticamente.

  4. Salve a nova entrada.

    Um novo nó SSF JWT Signature for GCP está ativado na transação STRUST.

Importar a chave da conta de serviço para o STRUST

Para importar a chave da conta de serviço para STRUST, siga estas etapas:

  1. Na GUI do SAP, insira o código da transação STRUST.

    Verifique se o novo nó na transação STRUST é SSF JWT Signature for GCP.

  2. Importe o arquivo de chave privada:

    1. Selecione PSE > Importar na barra de menus.
    2. Dependendo do sistema SAP, selecione a chave privada apropriada:
      • SAP S/4HANA
        1. Selecione a chave privada P12.
        2. Digite a senha do arquivo notasecret e clique em OK.
      • SAP ECC
        1. Selecione a chave privada PSE. É necessário converter a chave privada P12 que você salvou anteriormente em uma chave privada PSE. Para mais informações sobre como converter uma chave P12 em uma chave PSE, consulte Converter chave P12 em chave PSE.
        2. Insira o PIN do arquivo que você criou durante a conversão da chave privada de P12 para PSE e clique em OK.
  3. Selecione PSE > Salvar como.

  4. Selecione SSF Application e, no campo de entrada correspondente, selecione o novo nó SSF Application criado em Create a new Secure Store and Forward Application (SSF).

  5. Salve a nova entrada.

    A chave de serviço está anexada ao nó do aplicativo SSF SSF JWT Signature for GCP.

Converter a chave privada P12 em uma chave PS

Se o sistema SAP é o SAP NetWeaver 7.0x (SAP ECC), é necessário converter a chave P12 em uma chave PSE.

Para converter a chave P12 em uma chave PSE, siga estas etapas:

  1. Acesse o caminho:

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

    Substitua SID pelo ID do sistema SAP.

  2. Execute o comando a seguir depois de substituir os marcadores:

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    Substitua:

    • PSE_PATH_AND_FILE_NAME: especifique o caminho e o nome do arquivo PSE.
    • P12_PATH_AND_FILE_NAME: especifique o caminho e o nome do arquivo da chave P12.
  3. Digite a senha do arquivo de chave privada P12, notasecret.

  4. Crie um novo PIN para a chave privada PSE e insira o PIN novamente.

  5. Anote o PIN. Ele será necessário ao importar o arquivo da chave privada do PSE para STRUST.

Para informações da SAP sobre como converter uma chave P12 em uma chave P12, consulte o seguinte:

Ativar as APIs do Google Cloud

No Console do Google Cloud, ative a API IAM Service Account Credentials no projeto do Google Cloud que requer autenticação. Além da API IAM Service Account Credentials, você precisa ativar outras APIs compatíveis que pretende acessar usando o SDK.

Acessar a biblioteca de APIs

Para informações sobre como ativar as APIs do Google Cloud, consulte Como ativar APIs.

Criar uma conta de serviço para autorização de acesso às APIs do Google Cloud

Para autenticação e autorização para acessar as APIs do Google Cloud, o SDK do ABAP para o Google Cloud precisa de uma conta de serviço do IAM.

Crie uma conta de serviço

No console do Google Cloud, crie uma conta de serviço do IAM. Essa conta de serviço precisa ser a principal no projeto do Google Cloud que contém as APIs do Google Cloud que você planeja consumir usando o SDK. Se você criar a conta de serviço no mesmo projeto que contém as APIs do Google Cloud, ela será adicionada automaticamente como principal ao projeto.

Se você criar a conta de serviço em um projeto diferente daquele em que as APIs do Google Cloud estão ativadas, será necessário adicionar a conta de serviço a esse projeto em uma etapa adicional.

  1. No Console do Google Cloud, crie uma conta de serviço do IAM para autenticação e autorização para acessar as APIs do Google Cloud.

    Acessar Contas de serviço

    Para mais informações sobre como criar uma conta de serviço, consulte Criar uma conta de serviço.

  2. No Console do Google Cloud, conceda à conta de serviço os papéis do IAM necessários para acessar a funcionalidade da API. Para entender o requisito da função para APIs do Google Cloud, consulte a documentação da API individual e siga o princípio do menor privilégio. Para mais informações sobre papéis predefinidos específicos da API, consulte Encontrar papéis do IAM para APIs do Google Cloud.

  3. Se você criou a conta de serviço em um projeto diferente daquele que contém as APIs do Google Cloud que pretende consumir usando o SDK, anote o nome da conta de serviço. Você especifica o nome ao adicionar a conta de serviço a esse projeto. Para mais informações, consulte Adicionar a conta de serviço ao projeto do Google Cloud.

Adicionar a conta de serviço ao projeto do Google Cloud

Se você criou a conta de serviço do ABAP SDK for Google Cloud em um projeto diferente do projeto que contém as APIs do Google Cloud que você planeja consumir usando o SDK, será necessário adicionar a conta de serviço para o projeto do Google Cloud que contém as APIs do Google Cloud.

Se você criou a conta de serviço no mesmo projeto que contém as APIs do Google Cloud, pule esta etapa.

Para adicionar uma conta de serviço ao projeto do Google Cloud que contém as APIs do Google Cloud, execute as seguintes etapas:

  1. No console do Google Cloud, abra a página de permissões do IAM.

    Acessar as permissões do IAM

  2. Confirme se o nome do projeto que contém as APIs do Google Cloud de destino é exibido próximo à parte superior da página. Exemplo:

    Permissões do projeto "PROJECT_NAME"

    Caso contrário, mude de projeto.

  3. Na página do IAM, clique em Conceder acesso. A caixa de diálogo Conceder acesso a "PROJECT_NAME" será aberta.

  4. Na caixa de diálogo Conceder acesso a "PROJECT_NAME", siga estas etapas:

    1. No campo Novos principais, especifique o nome da conta de serviço.
    2. No campo Selecionar uma função, especifique uma função relevante. Por exemplo, no Pub/Sub, para modificar tópicos e assinaturas, além de acessar para publicar e consumir mensagens, é possível especificar o papel Editor do Pub/Sub (roles/pubsub.editor).

      Para mais detalhes sobre os papéis predefinidos específicos da API, consulte Referência básica e predefinida dos papéis do IAM.

    3. Adicione papéis conforme necessário para o uso da API. Implemente as práticas recomendadas do Google aplicando o princípio do privilégio mínimo.

    4. Clique em Salvar. A conta de serviço aparece na lista de principais do projeto na página IAM.

A conta de serviço agora pode ser usada para acessar as APIs do Google Cloud neste projeto.

Configurar conexão HTTPS

O servidor de aplicativos SAP é necessário para se conectar às APIs do Google Cloud por HTTPS.

No host SAP, confirme se as regras de firewall ou proxies estão configurados para permitir tráfego de saída da porta HTTPS para as APIs do Google Cloud necessárias.

Especificamente, seu sistema SAP precisa ser capaz de acessar os seguintes endpoints da API:

  • https://iamcredentials.googleapis.com
  • Endpoints para as APIs que você quer consumir usando o SDK.

Criar configurações do SAP

Para a autenticação baseada em JWT, crie as configurações SAP necessárias.

Especificar as configurações de acesso na tabela de chaves do cliente

Para especificar as configurações de acesso, siga estas etapas:

  1. Na GUI do SAP, execute o código de transação /GOOG/SDK_IMG.

    Como alternativa, execute o código da transação SPRO e clique em IMG de referência do SAP.

  2. Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar chave do cliente.

  3. Clique em Novas entradas.

  4. Insira valores nos campos a seguir:

    Campo Descrição
    Nome da chave do Google Cloud Especifique um nome da configuração da chave do cliente.
    Nome da conta de serviço do Google Cloud

    Especifique o nome da conta de serviço, no formato de endereço de e-mail, que foi criado para o ABAP SDK for Google Cloud na etapa Criar uma conta de serviço. Por exemplo: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com.

    Escopo do Google Cloud Especifique o escopo de acesso, https://www.googleapis.com/auth/cloud-platform.
    ID do projeto Especifique o ID do projeto do Google Cloud que contém suas APIs de destino.
    Nome do comando Deixe esse campo em branco.
    Classe de autorização Especifique a classe de autorização, /GOOG/CL_AUTH_JWT.
    Campo de autorização Deixe esse campo em branco.
    Token de atualização em segundos Deixe esse campo em branco.
    Parâmetro de autorização 1 Especifique o nome do aplicativo SSF criado na seção Crie um novo aplicativo Secure Store and Forward (SSF).
  5. Salve a nova entrada.

Criar novos destinos de RFC

Crie destinos RFC para a API IAM e outras APIs que você planeja consumir usando o ABAP SDK for Google Cloud, por exemplo, a API Pub/Sub v1.

Nome do destino do RFC Observações
ZGOOG_IAMCREDENTIALS Este destino do RFC é destinado à API do IAM.
ZGOOG_OAUTH2_TOKEN Este destino da RFC é destinado ao endpoint do Google Cloud para autenticação baseada em token.
ZGOOG_PUBSUB_V1 Este destino RFC segmenta a API Pub/Sub.

Para informações sobre como criar destinos de RFC, consulte Destinos de RFC.

Especificar destinos RFC na tabela de mapeamento de serviço

Na tabela de mapeamento de serviços, especifique os destinos RFC para a API IAM e outras APIs que você planeja consumir usando o SDK ABAP para Google Cloud.

Para especificar os destinos de RFC, siga estas etapas:

  1. Na GUI do SAP, execute o código de transação /GOOG/SDK_IMG.

    Como alternativa, execute o código da transação SPRO e clique em IMG de referência do SAP.

  2. Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar mapeamento de serviços.

  3. Clique em Novas entradas.

  4. Especifique destinos RFC para a API IAM e outras APIs, por exemplo:

    Nome Nome do serviço Destino do RFC
    Nome da chave do Google Cloud iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Nome da chave do Google Cloud googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Nome da chave do Google Cloud pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. Salve a nova entrada.

Validar a configuração da autenticação

Para validar a configuração da autenticação, execute as seguintes etapas:

  1. Na GUI do SAP, execute o código de transação /GOOG/SDK_IMG.

    Como alternativa, execute o código da transação SPRO e clique em IMG de referência do SAP.

  2. Clique em ABAP SDK for Google Cloud > Utilitários > Validar configuração de autenticação.

  3. Insira o nome da chave do cliente.

  4. Clique em Executar para verificar se o fluxo geral foi configurado.

    Uma marca de seleção verde na coluna Result indica que todas as etapas de configuração foram concluídas com êxito.

Receber suporte

Se você precisar de ajuda para resolver problemas com o ABAP SDK for Google Cloud, faça o seguinte: