Autenticar com JSON Web Tokens

Neste documento, mostramos como configurar a autenticação para acessar Google Cloud quando o sistema SAP está sendo executado em um host no local, em outro provedor de nuvem ou em outro ambiente fora de Google Cloudou gerenciado pela SAP com o programa SAP RISE.

Para autenticação no Google Cloud, use os JSON Web Tokens (JWT) assinados pelo Google Cloudpara receber tokens de acesso do Google Cloud. As etapas de configuração de nível alto são as seguintes:

  1. Ative as Google Cloud APIs.
  2. Criar uma conta de serviço para recuperação de tokens baseada em JWT
    1. Conceda à conta de serviço o papel do IAM necessário para criar tokens.
    2. Crie uma chave de conta de serviço (P12).
    3. Ative a assinatura JWT para a conta de serviço no host do SAP LT Replication Server.
  3. Defina as configurações de segurança para Google Cloud no host do SAP LT Replication Server.
    1. Crie um novo aplicativo SSF e ative o nó STRUST para o aplicativo SSF.
    2. Importe a chave da conta de serviço para o STRUST.
  4. Crie outra conta de serviço para autorização.
    1. Conceda à conta de serviço os papéis do IAM necessários para acessar o BigQuery.
    2. Adicione a conta de serviço do BigQuery Connector para SAP ao projeto de destino.
  5. crie um conjunto de dados do BigQuery;
  6. Configure certificados TLS/SSL e HTTPS.
  7. Especificar as configurações de acesso em /GOOG/CLIENT_KEY.
    1. Configure novos destinos de RFC.

Ativar as APIs Google Cloud

No projeto Google Cloud , ative as APIs Google Cloud necessárias.

  • Para a replicação de CDC pelo Pub/Sub, ative as seguintes APIs:

    • API Pub/Sub
    • API BigQuery
    • API IAM Service Account Credentials
  • Para a replicação de dados de streaming, ative as seguintes APIs:

    • API BigQuery
    • API IAM Service Account Credentials

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

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

Para a autenticação baseada em JWT para Google Cloud, o BigQuery Connector para SAP precisa de uma conta de serviço do IAM.

Criar uma conta de serviço

Para criar uma conta de serviço para recuperação de token baseado em JWT, siga estas etapas:

  1. No console Google Cloud , acesse a página Contas de serviço do IAM & Admin.

    Acesse as Contas de serviço

  2. Se solicitado, selecione o projeto do Google Cloud .

  3. Clique em Criar conta de serviço.

  4. Especifique um nome para a conta de serviço e, opcionalmente, uma descrição.

  5. Clique em Criar e continuar.

  6. No painel Conceder a essa conta de serviço acesso ao projeto, selecione o papel Criador do token da conta de serviço.

  7. Clique em Continuar.

  8. Conceda aos outros usuários acesso à conta de serviço, conforme adequado.

  9. Clique em Concluído. A conta de serviço aparece na lista de contas de serviço do projeto Google Cloud .

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 Google Cloud , acesse a página Contas de serviço do IAM & Admin.

    Acesse as Contas de serviço

  2. Selecionar o projeto 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 em 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.

Ativar a assinatura JWT para a conta de serviço no host do SAP LT Replication Server.

Para ativar a assinatura JWT para a conta de serviço que você criou para a recuperação de token baseada em JWT, é necessário adicionar o parâmetro JWT_SERVC_ACCT à tabela /GOOG/BQ_PARAM e configurar a conta de serviço.

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

  1. Na GUI do SAP, insira a transação /GOOG/SLT_SETTINGS precedida por /n:

    /n/GOOG/SLT_SETTINGS
  2. No menu suspenso Tabela de configurações na tela de inicialização da transação /GOOG/SLT_SETTINGS, selecione Parâmetros.

  3. Clique no ícone Executar. A tela Manutenção de configurações do BigQuery: parâmetros é exibida.

  4. Clique no ícone Inserir linha.

  5. Na linha exibida, especifique as seguintes configurações:

    1. No campo Nome do parâmetro, insira JWT_SERVC_ACCT. A descrição do parâmetro é preenchida automaticamente.
    2. No campo Valor do parâmetro, insira o 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
  6. Clique em Save.

    Os atributos são armazenados como um registro na tabela de configuração /GOOG/BQ_PARAM e os campos Alterado por, Alterado em e Alterado às são preenchidos automaticamente.

Definir as configurações de segurança para Google Cloud no host do SAP LT Replication Server

Esta seção descreve como configurar as definições de segurança para Google Cloud no host do SAP LT Replication Server, o que envolve criar uma entrada de aplicativo SSF e importar a chave da conta de serviço para STRUST.

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

Na tabela SSFAPPLIC, a entrada ZG_JWT é importada como parte do transporte do BigQuery Connector para SAP. Caso a entrada ZG_JWT não seja importada, crie uma nova com o nome ZG_JWT usando a transação SE16.

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, digite 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 a 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.

    A captura de tela a seguir mostra os parâmetros SSF específicos do aplicativo que são preenchidos automaticamente pelo SAP.

    Parâmetros SSF específicos do aplicativo

  4. Salve a nova entrada.

    Um novo nó SSF JWT Signature for GCP está ativado na transação STRUST. Agora você importa a chave da conta de serviço para esse nó.

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 tipo do sistema de origem, selecione a chave privada adequada:
      • S4/HANA
        1. Selecione a chave privada P12.
        2. Digite a senha do arquivo notasecret e clique em OK.
      • 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 o botão de opção Aplicativo SSF e, no campo correspondente, selecione o novo nó do aplicativo SSF criado em Criar um aplicativo de armazenamento de segurança e encaminhamento (SSF, na sigla em inglês).

  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 de origem é 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:

Criar uma conta de serviço para autorização

A seção descreve o processo de criação de uma conta de serviço para autorização e configuração de certificados TLS/SSL para comunicação segura.

Criar uma conta de serviço

BigQuery Connector para SAP precisa de uma conta de serviço do IAM para autenticação e autorização para acessar recursos do Google Cloud .

Essa conta de serviço precisa ser a principal no projeto Google Cloud que contém as APIs Google Cloud ativadas. Se você criar a conta de serviço no mesmo projeto que as APIs Google Cloud , ela será adicionada como principal automaticamente ao projeto.

Se você criar a conta de serviço em um projeto diferente daquele que contém as APIs Google Cloud ativadas, será necessário adicionar a conta de serviço ao projeto das APIs Google Cloud ativadas em uma etapa extra.

Para criar uma conta de serviço, faça o seguinte:

  1. No console Google Cloud , acesse a página Contas de serviço do IAM & Admin.

    Acesse as Contas de serviço

  2. Se solicitado, selecione o projeto do Google Cloud .

  3. Clique em Criar conta de serviço.

  4. Especifique um nome para a conta de serviço e, opcionalmente, uma descrição.

  5. Clique em Criar e continuar.

  6. Se você estiver criando a conta de serviço no mesmo projeto que as APIs Google Cloud ativadas, no painel Conceder a essa conta de serviço acesso ao projeto, selecione os papéis conforme apropriado:

    Para a replicação de CDC pelo Pub/Sub, selecione os seguintes papéis:

    • Editor do Pub/Sub
    • Editor de dados do BigQuery
    • Usuário de jobs do BigQuery

    Para replicação de dados de streaming, selecione as seguintes funções:

    • Editor de dados do BigQuery
    • Usuário de jobs do BigQuery

    Se você estiver criando a conta de serviço em um projeto diferente daquele em que as APIs do Google Cloud estão ativadas, não conceda papéis a essa conta.

  7. Clique em Continuar.

  8. Conceda aos outros usuários acesso à conta de serviço, conforme adequado.

  9. Clique em Concluído. A conta de serviço aparece na lista de contas de serviço do projeto.

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

A conta de serviço agora está listada como principal na página Permissões do IAM do projeto Google Cloud em que a conta de serviço foi criada.

Adicionar a conta de serviço ao projeto de destino

Se você criou a conta de serviço para o BigQuery Connector para SAP em um projeto diferente do projeto que contém as APIs Google Cloud ativadas, será necessário adicionar a conta de serviço ao projeto de APIs Google Cloud ativadas.

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

Para adicionar uma conta de serviço atual ao projeto do conjunto de dados do BigQuery, conclua as etapas a seguir:

  1. No console Google Cloud , acesse a página IAM.

    Acessar as permissões do IAM

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

    Permissões do projeto "PROJECT_NAME"

    Caso contrário, mude de projeto.

  3. Na página IAM, clique em Adicionar. A caixa de diálogo Adicionar principais à "PROJECT_NAME" será aberta.

  4. Na caixa de diálogo Adicionar principais a "PROJECT_NAME", conclua as seguintes etapas:

    1. No campo Novos principais, especifique o nome da conta de serviço.
    2. No campo Selecionar papel, especifique Editor de dados do BigQuery.
    3. Clique em ADICIONAR OUTRO PAPEL. O campo Selecionar papel é exibido novamente.
    4. No campo Selecionar papel, especifique Usuário de jobs do BigQuery.
    5. Para a replicação de CDC pelo Pub/Sub, repita a etapa anterior e especifique Editor do Pub/Sub.
    6. Clique em Salvar. A conta de serviço aparece na lista de principais do projeto na página IAM.

Criar um conjunto de dados do BigQuery

Para criar um conjunto de dados do BigQuery, sua conta de usuário precisa ter as permissões de IAM adequadas para o BigQuery. Para mais informações, consulte Permissões necessárias.

  1. No console Google Cloud , acesse a página BigQuery:

    Acessar o BigQuery

  2. Ao lado do ID do projeto, clique no ícone Ver ações, e, em seguida, clique em Criar conjunto de dados.

    O diagrama é descrito no texto anterior

  3. No campo ID do conjunto de dados, insira um nome exclusivo. Para mais informações, consulte Nomear conjuntos de dados.

Para mais informações sobre como criar conjuntos de dados do BigQuery, consulte Como criar conjuntos de dados.

Configurar certificados TLS/SSL e HTTPS

A comunicação entre o BigQuery Connector para SAP e os serviços do Google é protegida usando TLS/SSL e HTTPS.

  1. Para se conectar aos serviços do Google, siga as recomendações do Google Trust Services. No mínimo, faça o download de todos os certificados de AC raiz do repositório do Google Trust Services.

    Para garantir que você esteja usando os certificados de CA raiz confiáveis mais recentes, recomendamos atualizar o repositório de certificados raiz do sistema a cada seis meses. O Google anuncia certificados de CA raiz novos e removidos no Google Trust Services. Para receber notificações automáticas, inscreva-se no feed RSS do Google Trust Services.

  2. Na GUI do SAP, use a transação STRUST para importar os certificados da CA raiz para a pasta PSE SSL client SSL Client (Standard).

    Para mais informações da SAP, consulte a Ajuda da SAP: manter a lista de certificações do PSE.

  3. No host do SAP LT Replication Server, confirme se as regras de firewall ou os proxies estão configurados para permitir o tráfego de saída da porta HTTPS para a API BigQuery.

    Especificamente, o SAP LT Replication Server precisa ser capaz de acessar as seguintes APIs Google Cloud :

    • https://bigquery.googleapis.com
    • https://iamcredentials.googleapis.com
    • https://pubsub.googleapis.com

    Se você quiser que o BigQuery Connector para SAP acesse as APIs do Google Cloud usando endpoints do Private Service Connect na rede VPC, será necessário configurar destinos de RFC e especificar os endpoints do Private Service Connect nesses destinos de RFC. Para mais informações, consulte Destinos de RFC.

Para mais informações da SAP sobre a configuração do TLS/SSL, consulte a Nota SAP 510007 – Considerações adicionais para configurar o TLS/SSL no Application Server ABAP.

Especificar as configurações de acesso em /GOOG/CLIENT_KEY

Use a transação SM30 para especificar as configurações de acesso a Google Cloud. BigQuery Connector para SAP armazena as configurações como um registro na tabela de configuração personalizada /GOOG/CLIENT_KEY.

Para especificar as configurações de acesso, faça o seguinte:

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

  2. Selecione a tabela de configuração /GOOG/CLIENT_KEY.

  3. Insira valores para os seguintes campos da tabela:

    Campo Tipo de dado Descrição
    Nome String

    Especifique um nome descritivo para a configuração CLIENT_KEY, como BQC_CKEY.

    Um nome de chave de cliente é um identificador exclusivo usado pelo BigQuery Connector para SAP para identificar as configurações de acesso ao Google Cloud.

    Nome da conta de serviço String

    O nome da conta de serviço, em formato de endereço de e-mail, que foi criada para o BigQuery Connector para SAP na etapa Criar uma conta de serviço. Exemplo: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com.

    Escopo String

    O escopo de acesso. Especifique o escopo de acesso da API https://www.googleapis.com/auth/cloud-platform, conforme recomendado pelo Compute Engine.

    ID do projeto String O ID do projeto que contém o conjunto de dados de destino do BigQuery.
    Nome do comando String

    Deixe esse campo em branco.

    Classe de autorização String /GOOG/CL_GCP_AUTH_JWT
    Campo de autorização Não relevante Deixe esse campo em branco.
    Token de atualização em segundos Número inteiro Deixe esse campo em branco.
    Armazenamento de tokens em cache Booleano Deixe esse campo em branco.

Configurar destinos de RFC

Para conectar o BigQuery Connector para SAP ao Google Cloud, recomendamos que você use destinos RFC.

Os destinos de RFC de amostra GOOG_OAUTH2_TOKEN, GOOG_IAMCREDENTIALS e GOOG_BIGQUERY são importados como parte do transporte do BigQuery Connector para SAP.

É necessário criar novos destinos de RFC copiando os destinos de RFC de exemplo.

Para configurar os destinos de RFC, faça o seguinte:

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

  2. (Recomendado) Para criar novos destinos de RFC, copie as amostras de RFC de destino e anote os novos nomes de destino do RFC. Elas serão usadas em etapas posteriores.

    O BigQuery Connector para SAP usa destinos RFC para se conectar às APIs Google Cloud .

    Se você quiser testar a conectividade baseada no destino do RFC, pule esta etapa e use os destinos de RFC de amostra.

  3. Para os destinos de RFC que você criou, faça o seguinte:

    1. Acesse a guia Configurações técnicas e verifique se o campo Número do serviço está definido com o valor 443. Essa é a porta usada pelo destino RFC para uma comunicação segura.

    2. Acesse a guia Logon único e segurança e verifique se o campo Certificado SSL está definido com a opção Cliente SSL DFAULT (padrão).

    3. Também é possível definir configurações de proxy, ativar a compactação do HTTP e especificar endpoints do Private Service Connect.

    4. Salve as alterações.

    5. Para testar a conexão, clique em Teste de conexão.

      É aceitável e esperado uma resposta que contenha 404 Not Found, porque o endpoint especificado no destino RFC corresponde a um serviçoGoogle Cloud , e não a um recurso específico hospedado pelo serviço. Essa resposta indica que o serviço de destino Google Cloud está acessível e que nenhum recurso de destino foi encontrado.

  4. Na GUI do SAP, insira o código da transação SM30.

  5. Na tabela /GOOG/CLIENT_KEY que você criou na seção anterior, anote o valor do campo Nome.

  6. Na tabela /GOOG/SERVIC_MAP, crie entradas com os seguintes valores de campo:

    Nome da chave do Google Cloud Nome do serviço do Google Destino do RFC
    CLIENT_KEY_TABLE_NAME bigquery.googleapis.com Especifique o nome do destino RFC que segmenta o BigQuery. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_BIGQUERY.
    CLIENT_KEY_TABLE_NAME pubsub.googleapis.com Especifique o nome do destino RFC que segmenta o Pub/Sub. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_PUBSUB.
    CLIENT_KEY_TABLE_NAME iamcredentials.googleapis.com Especifique o nome do destino RFC que segmenta o IAM. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_IAMCREDENTIALS.
    CLIENT_KEY_TABLE_NAME googleapis.com/oauth2 Especifique o nome do destino RFC que segmenta o endpoint de token do Google OAuth 2.0, usado para trocar JWTs por tokens de acesso. Se você estiver usando o destino RFC de amostra para testes, especifique GOOG_OAUTH2_TOKEN.

    Substitua CLIENT_KEY_TABLE_NAME pelo nome da chave do cliente que você anotou na etapa anterior.

Definir as configurações de proxy

Ao usar destinos RFC para se conectar ao Google Cloud, você pode encaminhar a comunicação do BigQuery Connector para SAP pelo servidor proxy que você estiver usando no ambiente SAP.

Se você não quiser usar um servidor proxy ou não tiver um no ambiente SAP, pule esta etapa.

Para definir as configurações do servidor proxy para o BigQuery Connector for SAP, siga estas etapas:

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

  2. Selecione o destino RFC que segmenta o IAM.

  3. Acesse a guia Configurações técnicas e insira os valores dos campos na seção Opções de proxy HTTP.

  4. Repita a etapa anterior para o destino do RFC que segmenta o BigQuery.

Ativar compactação HTTP

Ao usar destinos RFC para se conectar ao Google Cloud, é possível ativar a compactação HTTP.

Se não quiser ativar essa funcionalidade, pule esta etapa.

Para ativar a compactação HTTP, faça o seguinte:

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

  2. Selecione o destino RFC que segmenta o BigQuery.

  3. Acesse a guia Opções especiais.

  4. No campo Versão HTTP, selecione HTTP 1.1.

  5. No campo Compactação, selecione um valor apropriado.

    Para informações sobre as opções de compactação, consulte a Nota SAP 1037677: a compactação HTTP compacta apenas alguns documentos.

Especificar endpoints do Private Service Connect

Se você quiser que o BigQuery Connector para SAP use endpoints do Private Service Connect para permitir o consumo particular do BigQuery e do IAM, será necessário criar esses endpoints no projeto do Google Cloud e especificá-los nos respectivos destinos RFC.

Se você quiser que o BigQuery Connector para SAP continue usando os endpoints de API públicos padrão para se conectar ao BigQuery e ao IAM, ignore esta etapa.

Para configurar o BigQuery Connector para SAP para usar os endpoints do Private Service Connect, faça o seguinte:

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

  2. Verifique se você criou novos destinos de RFC para o BigQuery e o IAM. Para instruções sobre como criar esses destinos de RFC, consulte Configurar destinos de RFC.

  3. Selecione o destino do RFC que segmenta o BigQuery e faça o seguinte:

    1. Acesse a guia Configurações técnicas.

    2. No campo Host de destino, insira o nome do endpoint do Private Service Connect que você criou para acessar o BigQuery.

    3. Acesse a guia Login e segurança.

    4. No campo Número do serviço, verifique se o valor 443 está especificado.

    5. No campo Certificado SSL, verifique se a opção Cliente SSL DFAULT (padrão) está selecionada.

  4. Selecione o destino RFC que segmenta o IAM e faça o seguinte:

    1. Acesse a guia Configurações técnicas.

    2. No campo Host de destino, insira o nome do endpoint do Private Service Connect que você criou para acessar o IAM.

    3. Acesse a guia Login e segurança.

    4. No campo Número do serviço, verifique se o valor 443 está especificado.

    5. No campo Certificado SSL, verifique se a opção Cliente SSL DFAULT (padrão) está selecionada.

A seguir