Configurar a autenticação para a edição SAP BTP do ABAP SDK for Google Cloud

Neste documento, descrevemos como autenticar no Google Cloud a partir da edição SAP BTP do ABAP SDK for Google Cloud.

Os aplicativos desenvolvidos com a edição SAP BTP do ABAP SDK for Google Cloud exigem autenticação para se conectar às APIs do Google Cloud.

Para autenticação e autorização para acessar as APIs do Google Cloud, o SDK usa principalmente tokens. Além disso, o SDK também é compatível com chaves de API para autenticação nas APIs do Google Cloud que usam chaves de API. Apenas algumas APIs do Google Cloud usam chaves de API para autenticação. Por exemplo, a Plataforma Google Maps. Leia a documentação de autenticação do serviço ou da API que você quer usar para determinar se é compatível com chaves de API.

Dependendo das APIs do Google Cloud que você precisa acessar, é possível escolher um método apropriado de autenticação. A lista a seguir resume os diferentes métodos de autenticação compatíveis com o SDK:

Autenticação usando tokens por meio da federação de identidade da carga de trabalho

A federação de identidade da carga de trabalho segue a especificação de troca de token do OAuth 2.0. Você fornece uma credencial do seu provedor de identidade (IdP) ao Serviço de token de segurança, que verifica a identidade na credencial e, em seguida, retorna um token de acesso. É possível usar esse token para imitar uma conta de serviço e receber um token de acesso de curta duração. Com o token de acesso de curta duração, é possível chamar qualquer API do Google Cloud a que a conta de serviço tenha acesso.

Para autenticação usando tokens por meio da federação de identidade da carga de trabalho, ative as seguintes APIs do Google Cloud:

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

Para autenticação com tokens usando a federação de identidade da carga de trabalho, as etapas gerais de configuração de alto nível são as seguintes:

  1. No SAP BTP, crie uma instância de serviço de autorização e confiança (XSUAA, na sigla em inglês).
  2. No Google Cloud, crie uma conta de serviço.
  3. No Google Cloud, configure a federação de identidade da carga de trabalho.
  4. No SAP BTP, configure o ABAP SDK for Google Cloud para usar a federação de identidade da carga de trabalho.

Criar uma instância de serviço de autorização e confiança (XSUAA)

Para fornecer os serviços necessários ao aplicativo de back-end, crie uma instância de serviço de autorização e confiança (XSUAA, na sigla em inglês) seguindo as etapas a seguir:

  1. Faça login no cockpit do SAP BTP. Para mais informações, consulte a página da SAP em Acessar o cockpit (em inglês).
  2. Selecione sua subconta.
  3. Crie uma instância de serviço XSUAA:

    1. Acesse Serviços > Marketplace de serviços.
    2. Pesquise e selecione Serviço de gerenciamento de confiança e autorização (XSUAA).
    3. Clique em Criar.
    4. Na caixa de diálogo Nova instância ou assinatura exibida, insira um valor para os seguintes campos:

      • Plano: selecione Aplicativo.
      • Ambiente de tempo de execução: selecione Cloud Foundry.
      • Espaço: selecione o nome de um espaço.
      • Nome da instância: insira um nome para a instância de serviço XSUAA.
    5. Clique em Criar.

  4. Crie uma chave de serviço:

    1. Acesse Instâncias e assinatura > Instâncias.
    2. Selecione a instância de serviço XSUAA que você criou na etapa anterior e clique na guia Chaves de serviço.
    3. Clique em Criar.
    4. Digite o nome da chave de serviço e clique em Criar.
    5. Para a chave de serviço recém-criada, clique no menu Ações () e selecione Ver.
    6. Nas credenciais da chave de serviço, observe o seguinte:

      • url
      • clientid
      • clientsecret

    Você precisa dessas credenciais de chave de serviço ao configurar a autenticação no Google Cloud.

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.

  1. No console do Google Cloud, selecione o projeto em que você quer criar a conta de serviço.

    • 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. Para mais informações, consulte Adicionar a conta de serviço ao projeto do Google Cloud.

  2. Criar uma conta de serviço para autenticação e autorização a fim de acessar as APIs do Google Cloud.

    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.

  3. 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 os papéis predefinidos específicos da API, consulte Referência básica e predefinida dos papéis do IAM.

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

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, acesse 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 de Permissõesdo IAM, clique em Conceder acesso.

  4. Na caixa de diálogo Conceder acesso a 'PROJECT_NAME' que é exibida, 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. Recomendamos a implementação do princípio de 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 a federação de identidade da carga de trabalho

Para receber as permissões necessárias para configurar a federação de identidade da carga de trabalho, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Para configurar a federação de identidade da carga de trabalho, siga as etapas:

  1. No console do Google Cloud, acesse a página Novo provedor de carga de trabalho e pool.

    Acessar "Novo provedor de carga de trabalho" e "Pool"

  2. Na seção Criar um pool de identidades, insira um valor para os seguintes campos:

    • Nome: o nome do pool. O nome também é usado como o ID do pool. Não será possível alterar o ID do pool posteriormente.
    • Descrição: texto que descreve a finalidade do pool.
  3. Clique em Continuar.

  4. Em Adicionar um provedor ao pool, adicione as configurações do provedor:

    1. No campo Selecionar um provedor, escolha OpenID Connect (OIDC).
    2. Digite os seguintes detalhes do provedor:

      • Em Nome do provedor, digite um nome para o provedor.
      • Issuer(URL): digite o URL das credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA. Anexe /oauth/token ao URL.
      • Público-alvo: selecione Público-alvo permitido e insira o ID do cliente usando as credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
  5. Clique em Continuar.

  6. Em Configurar atributos do provedor, no campo OIDC 1, digite assertion.sub.

  7. Clique em Salvar.

  8. Anote o seguinte:

    • ID do pool
    • Código do provedor

    Você precisa desses IDs ao configurar a autenticação no app Fiori de configuração do SDK.

Permitir que identidades externas representem a conta de serviço

Para representar contas de serviço de cargas de trabalho federadas, conceda o Usuário de identidade da carga de trabalho (roles/iam.workloadIdentityUser) na conta de serviço. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Para permitir que identidades externas representem uma conta de serviço, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Selecione o pool de identidade da carga de trabalho que você criou na seção Configurar a federação de identidade da carga de trabalho.

  3. Para conceder acesso ao pool de identidades da carga de trabalho, clique em Conceder acesso.

  4. Na lista Conta de serviço, selecione a conta que tem acesso às APIs do Google Cloud. Se você usa várias contas de serviço, adicione todas elas aqui.

  5. No campo Nome do atributo, selecione Assunto.

  6. No campo Valor do atributo, insira o ID do cliente baseado nas credenciais da chave de serviço anotadas quando você criou a instância de serviço XSUAA.

  7. Clique em Salvar.

  8. Na caixa de diálogo Configurar seu aplicativo exibida, clique em Dispensar.

Configurar o ABAP SDK for Google Cloud para usar a federação de identidade da carga de trabalho

Crie artefatos de gerenciamento de comunicação usando os aplicativos de gerenciamento de comunicação (em inglês) da SAP.

Para criar artefatos de gerenciamento de comunicação para autenticação usando o serviço XSUAA e a federação de identidade da carga de trabalho, use o cenário de comunicação /GOOG/COM_SDK_WIF que acompanha o ABAP SDK for Google Cloud.

Em seguida, use o app Fiori de configuração do SDK para criar um mapa de comunicação. No mapa de comunicação, defina uma chave de cliente exclusiva que será usada no programa ABAP para autenticação no Google Cloud.

  1. Acesse a plataforma de lançamento do SAP Fiori do sistema BTP ABAP em que o ABAP SDK for Google Cloud está instalado.
  2. Acesse Todos os espaços > Administração > Gerenciamento da comunicação.
  3. Crie um sistema de comunicação:
    1. Abra o app Communication Systems.
    2. Clique em Novo.
    3. Na caixa de diálogo New Communication System, insira um valor para os seguintes campos:
      • ID do sistema: digite um ID do sistema.
      • Nome do sistema: digite um nome para o sistema.
    4. Clique em Criar.
    5. No campo Nome do host, insira o URL sem https:// das credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
    6. No campo Porta, digite 443.
    7. Na guia Usuários para comunicação de saída, clique em Adicionar.
    8. Forneça os seguintes detalhes:
      • Método de autenticação: selecione Nome de usuário e senha.
      • Nome de usuário/ID do cliente: insira o ID do cliente baseado nas credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
      • Senha: insira a chave secreta do cliente usando as credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
    9. Clique em Salvar.
  4. Crie um acordo de comunicação:

    1. Abra o app Communication Arrangement.
    2. Clique em Novo.
    3. Na caixa de diálogo New Communication Arrangement que é exibida, insira um valor para os seguintes campos:

      • Cenário: selecione Autenticação usando a federação de identidade da carga de trabalho (/GOOG/COM_SDK_WIF).
      • Nome do acordo: insira um nome para o acordo de comunicação.
    4. Clique em Criar.

    5. Para o acordo de comunicação No campo que é exibido, no campo Sistema de comunicação, selecione o sistema de comunicação que você criou na etapa anterior.

    6. Forneça os seguintes detalhes na seção Configurar a federação de identidade da carga de trabalho:

      • ID do pool de federação da identidade da carga de trabalho: insira o ID do pool de federação de identidade da carga de trabalho.
      • ID do provedor de federação de identidade da carga de trabalho: insira o ID do provedor da federação de identidade da carga de trabalho.
    7. Em Serviços de saída, no campo Caminho, digite /oauth/token.

    8. Clique em Salvar.

  5. Crie uma chave de cliente e um mapa de comunicação:

    1. Acesse o espaço que contém os apps Fiori para configuração do SDK.
    2. Abra o app SDK do Google: configuração principal.
    3. Clique em Criar.
    4. Na caixa de diálogo Criar que é exibida, insira o nome da chave de cliente.
    5. Clique em Continuar.
    6. Forneça os seguintes detalhes:
      • Conta de serviço: insira a conta de serviço que tem acesso às APIs do Google Cloud.
      • ID do projeto: insira o ID do projeto do Google Cloud. Para informações sobre o ID do projeto, consulte Identificar projetos.
      • Número do projeto: insira o número do projeto do Google Cloud. Para informações sobre o número do projeto, consulte Identificar projetos.
      • Tipo de autenticação: selecione W (federação de identidade da carga de trabalho).
    7. No mapa de comunicação exibido, no campo Acordo de comunicação, selecione o tipo de comunicação que você criou na etapa anterior.
    8. Clique em Criar. Uma caixa de diálogo é exibida, confirmando que você concorda em usar o ABAP SDK for Google Cloud de acordo com os termos padrão do Google Cloud.
    9. Para validar a configuração da autenticação, clique em Verificar conexão. Uma marca de seleção verde em uma entrada indica que a configuração foi bem-sucedida. Em caso de erros, acesse a página de solução de problemas para conferir orientações sobre como resolver erros comuns.

Autenticação usando a chave de API armazenada no Secret Manager

Ao usar chaves de API para autenticação no Google Cloud, é possível armazená-las com segurança usando o serviço Secret Manager do Google Cloud.

Para autenticação usando a chave de API armazenada no Secret Manager, ative as seguintes APIs do Google Cloud:

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

Para receber as permissões necessárias para configurar o Secret Manager e a federação de identidade da carga de trabalho, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para autenticação usando a chave de API armazenada no Secret Manager, as etapas de configuração de alto nível são as seguintes:

  1. No SAP BTP, crie uma instância de serviço de autorização e confiança (XSUAA, na sigla em inglês).
  2. No Google Cloud, crie uma conta de serviço.
  3. No Google Cloud, configure a federação de identidade da carga de trabalho.
  4. No Google Cloud, crie uma chave de API.
  5. No Google Cloud, crie uma chave secreta e armazene a chave de API.
  6. No SAP BTP, configure o ABAP SDK for Google Cloud para usar a chave de API do Secret Manager.

Ao autenticar usando uma chave de API armazenada no Secret Manager, é possível reutilizar a instância de serviço, a conta de serviço e o provedor e o pool de federação de identidade da carga de trabalho XSUAA criados para autenticação usando tokens.

crie uma chave de API

Para autenticação usando a chave de API, você precisa criar uma chave de API. Uma string da chave de API é uma string criptografada. Por exemplo, AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. O ABAP SDK for Google Cloud usa a string da chave de API na solicitação HTTP para autenticar com segurança ao chamar uma API do Google Cloud.

O Google Cloud oferece várias maneiras de criar chaves de API.

Para criar chaves de API usando o console do Google Cloud, siga estas etapas:

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

    Ir para Credenciais

  2. Clique em Criar credenciais e, em seguida, selecione a chave de API no menu.

    • A caixa de diálogo Chave de API criada exibe a string da chave de API. Copie a string da chave e guarde-a com segurança. Você precisa dessa chave de API para configurar a autenticação no Google Cloud.

    • Por padrão, as chaves de API não têm restrições. Recomendamos que você restrinja as chaves de API selecionando as APIs em que essa chave pode ser usada. Para mais informações sobre como adicionar restrições de API, consulte Adicionar restrições de API.

Criar um secret e armazenar a chave de API

  1. No console do Google Cloud, acesse a página Secret Manager.

    Acessar o Secret Manager

  2. Clique em Criar secret.

  3. Na página Criar secret, em Nome, insira um nome para o secret. O nome do secret pode conter letras maiúsculas e minúsculas, numerais, hifens e sublinhados. O comprimento máximo permitido para um nome é de 255 caracteres.

  4. No campo Valor da chave secreta, insira a chave de API que você criou na seção Criar uma chave de API.

  5. Clique em Criar secret. O conteúdo do secret é armazenado em uma versão do secret.

  6. Clique no nome do secret que você criou.

  7. Na guia Versões exibida, observe o seguinte:

    • Nome do secret
    • Versão

    Você precisa desses detalhes do secret ao configurar a autenticação no Google Cloud.

Configurar o ABAP SDK for Google Cloud para usar a chave de API do Secret Manager

Crie artefatos de gerenciamento de comunicação usando os aplicativos de gerenciamento de comunicação (em inglês) da SAP.

Para criar artefatos de gerenciamento de comunicação para autenticação usando o serviço XSUAA e a federação de identidade da carga de trabalho, use o cenário de comunicação /GOOG/COM_SDK_APIKSM que acompanha o ABAP SDK for Google Cloud.

Em seguida, use o app Fiori de configuração do SDK para criar um mapa de comunicação. No mapa de comunicação, defina uma chave de cliente exclusiva que será usada no programa ABAP para autenticação no Google Cloud.

  1. Acesse a plataforma de lançamento do SAP Fiori do sistema BTP ABAP em que o ABAP SDK for Google Cloud está instalado.
  2. Acesse Todos os espaços > Administração > Gerenciamento da comunicação.
  3. Crie um sistema de comunicação:
    1. Abra o app Communication Systems.
    2. Clique em Novo.
    3. Na caixa de diálogo New Communication System, insira um valor para os seguintes campos:
      • ID do sistema: digite um ID do sistema.
      • Nome do sistema: digite um nome para o sistema.
    4. Clique em Criar.
    5. No campo Nome do host, insira o URL sem https:// das credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
    6. No campo Porta, digite 443.
    7. Na guia Usuários para comunicação de saída, clique em Adicionar.
    8. Forneça os seguintes detalhes:
      • Método de autenticação: selecione Nome de usuário e senha.
      • Nome de usuário/ID do cliente: insira o ID do cliente baseado nas credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
      • Senha: insira a chave secreta do cliente usando as credenciais da chave de serviço que você anotou quando criou a instância de serviço XSUAA.
    9. Clique em Salvar.
  4. Crie um acordo de comunicação:

    1. Abra o app Communication Arrangement.
    2. Clique em Novo.
    3. Na caixa de diálogo Novo acordo de comunicação que é exibida, insira os seguintes detalhes:

      • Cenário: selecione Autenticação usando a chave de API com o Secret Manager (/GOOG/COM_SDK_APIKSM).
      • Nome do acordo: insira um nome para o acordo de comunicação.
    4. Clique em Criar.

    5. Para o acordo de comunicação No campo que é exibido, no campo Sistema de comunicação, selecione o sistema de comunicação que você criou na etapa anterior.

    6. Em Propriedades adicionais, forneça um valor para as seguintes propriedades:

    7. Em Serviços de saída, no campo Caminho, digite /oauth/token.

    8. Clique em Salvar.

  5. Crie uma chave de cliente e um mapa de comunicação:

    1. Acesse o espaço que contém os apps Fiori para configuração do SDK.
    2. Abra o app SDK do Google: configuração principal.
    3. Clique em Criar.
    4. Na caixa de diálogo Criar que é exibida, insira o nome da chave de cliente.
    5. Clique em Continuar.
    6. Forneça os seguintes detalhes:

      • Conta de serviço: insira a conta de serviço que tem acesso às APIs do Google Cloud.
      • ID do projeto: insira o ID do projeto do Google Cloud. Para informações sobre o ID do projeto, consulte Identificar projetos.
      • Número do projeto: insira o número do projeto do Google Cloud. Para informações sobre o número do projeto, consulte Identificar projetos.
      • Tipo de autenticação: selecione V (Chave de API usando o Secret Manager).
    7. No mapa de comunicação exibido, no campo Acordo de comunicação, selecione o acordo de comunicação que você criou na etapa anterior.

    8. Clique em Criar. Uma caixa de diálogo é exibida, confirmando que você concorda em usar o ABAP SDK for Google Cloud de acordo com os termos padrão do Google Cloud.

    9. Para validar a configuração da autenticação, clique em Verificar conexão. Uma marca de seleção verde em uma entrada indica que a configuração foi bem-sucedida. Em caso de erros, acesse a página de solução de problemas para conferir orientações sobre como resolver erros comuns.

Receber suporte

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