Criação de credenciais OAuth 2.0 para aplicações GitHub - JWT para Integrações de vulnerabilidade de aplicação do GitHub

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 10 min. de leitura
  • Execute as etapas a seguir para integrar seus aplicativos GitHub usando o token de portador JWT para o Integrações de vulnerabilidade de aplicação do GitHub.

    Funções necessárias:
    • sn_vul.app_sec_manager e admin para registros em seu Now Platform.
    • Nenhuma função de instância necessária para tarefas na sua conta GitHub.
    • Para obter mais informações sobre o contexto das etapas desta configuração, consulte Protocolo OAuth 2.0.

    Criar e configurar o app GitHub para Integrações de vulnerabilidade de aplicação do GitHub

    Crie um aplicativo GitHub personalizado de sua conta GitHub para ativar a autenticação OAuth 2.0 com seu Integrações de vulnerabilidade de aplicação do GitHub em sua instância.

    Antes de Iniciar

    Função necessária: nenhuma função de instância necessária

    Por Que e Quando Desempenhar Esta Tarefa

    Conclua essas etapas na sua conta GitHub. Confira Prédio GitHub Apps no site do desenvolvedor GitHub para obter instruções sobre como criar e configurar aplicações personalizadas.

    Procedimento

    1. Na sua conta GitHub, crie seu app GitHub navegando até Configurações do desenvolvedor > Aplicações do GitHub.
    2. No campo URL da página inicial, insira https://<instance-name> .service-now.com .
    3. No campo URL de retorno de chamada de autorização do usuário, insira https://<instance-name> .service-now.com/oauth_redirect.do .
    4. Na seção Identificação e autorização de usuários, desmarque o campo Tokens de autorização do usuário expirados.
    5. Na seção Webhook, selecione o campo Ativo.
    6. No campo URL do Webhook, insira https://instance-name>.service-now.com/.
    7. Deixe os campos restantes em branco (padrão).
    8. Na seção Permissões do repositório, defina as seguintes configurações.
      Verificação de código Somente leitura
      Conteúdos Somente leitura
      Propriedades personalizadas Somente leitura
      Alertas do Dependedabot Somente leitura
      Metadado Somente leitura
      Alertas de verificação de segredo Somente leitura
      Nota:
      Se você já estiver usando um app GitHub e atualizar qualquer uma das permissões, deverá revisar e aceitar essas permissões para seu app GitHub. Você pode navegar até seu app e selecionar Configurar > Revisar solicitação > Aceitar novas permissões.
    9. Deixe as permissões restantes como Sem acesso (padrão).
    10. Na seção Assinar eventos, selecione a opção Regra de proteção de implantação.
    11. Clique com o botão direito do mouse no cabeçalho para salvar as mudanças.
    12. Instale o aplicativo GitHub recém-criado nas contas de sua escolha.
      1. Na página de configurações de apps do GitHub, selecione seu app.
      2. Na barra lateral esquerda, selecione Instalar app.
      3. Selecione Instalar ao lado da organização ou da conta pessoal que contém o repositório correto.
      4. Instale o aplicativo em todos os repositórios ou selecione repositórios.
        Para obter mais informações, consulte Instalação de apps do GitHub.
    13. Após a instalação, selecione as configurações (ícone de engrenagem) do seu aplicativo e anote ou anote as informações a seguir.

      Esses detalhes são necessários ao criar o registro da aplicação em sua instância Now Platform.

      • ID da aplicação
      • ID de cliente
      • Segredo do cliente.
      • Observe o token no URL. Este é o ID do token que você insere no URL do token em sua instância.
    14. Role a página para baixo, gere uma nova chave privada e salve-a em sua máquina.

    Gerar o certificado JKS para o Integrações de vulnerabilidade de aplicação do GitHub

    Gere um certificado JKS para a autenticação JWT para o Integrações de vulnerabilidade de aplicação do GitHub.

    Antes de Iniciar

    Você precisa anotar a senha usada para gerar o arquivo .jks (senha do KeyStore).

    Função necessária: sn_vul.app_sec_manager

    Procedimento

    1. Crie um certificado assinado por CA usando a chave privada do app GitHub :
      openssl req -new -x509 -key <file-name>.pem -out <certificate-name>.pem -days 1095
    2. Insira os detalhes necessários.
    3. Crie o arquivo PKCS 12 usando a chave privada do app GitHub e o certificado assinado por CA:
      openssl pkcs12 -export -in <certificate-name>.pem -inkey <file-name>.pem -certfile <certificate-name>.pem -out <PKCS-12-file-name>.p12 
    4. Forneça a senha de exportação.
    5. Crie o arquivo JKS:
      keytool -importkeystore -srckeystore <PKCS-12-file-name>.p12 -srcstoretype pkcs12 -destkeystore <JKS-certificate-filename>.jks -deststoretype JKS
    6. Forneça as senhas do armazenamento de chaves de destino e de origem.

    Anexe o certificado GitHub Java Key Store à sua instância para Integrações de vulnerabilidade de aplicação do GitHub

    Ative a autenticação de token de Concessão de Portador JWT anexando o certificado GitHub Java KeyStore (JKS) válido à sua instância.

    Antes de Iniciar

    Um certificado Java KeyStore válido.

    Função necessária: sn_vul.app_sec_manager

    Procedimento

    1. Navegar até Tudo > Definição do Sistema > Certificados.
    2. Selecione Novo.
    3. No formulário, preencha os campos.
      Tabela 1. Campos do formulário da certificação X.509
      Campo Descrição
      Nome Nome para identificar exclusivamente o registro. Por exemplo, My GitHub App Certificate for AVR.
      Notificar no vencimento Opção para especificar os usuários a serem notificados quando o certificado expirar.
      Aviso emitido antes do vencimento (em dias) Número de dias para enviar uma notificação antes que o certificado expire.
      Ativo Opção para habilitar o certificado.
      Tipo Opção para selecionar o tipo de certificado. Selecione Armazenamento de chaves Java.
      Dias até o vencimento Número de dias até o certificado expirar.
      Senha do armazenamento de chaves Senha associada ao certificado (dica: a senha do KeyStore de destino criada anteriormente).
      Descrição resumida Resumo sobre o certificado.
    4. Selecione o ícone de anexos e anexe um certificado JKS.
    5. Selecione Validar armazenamentos/certificados.
      Uma mensagem de key_store válido é exibida para arquivos de certificado válidos.

    Crie uma chave de assinatura JWT para o GitHub certificado JKS para o Integrações de vulnerabilidade de aplicação do GitHub

    Crie uma chave de assinatura JSON Web Token (JWT) para atribuir ao seu certificado GitHub Java KeyStore.

    Antes de Iniciar

    Funções necessárias:
    • administrador
    • sn_vul.app_sec_manager

    Procedimento

    1. Navegar até Tudo > OAuth de Sistema > Chaves de JWT.
    2. Selecione Novo.
    3. No formulário, preencha os campos.
      Tabela 2. Campos do formulário de chaves de JWT
      Campo Descrição
      Nome Nome para identificar exclusivamente a chave de assinatura JWT. Por exemplo, My GitHub App JWT Key for AVR.
      Armazenamento de chaves de assinatura Selecione o certificado JKS válido que você anexou na tarefa anterior.
      ID de chave Deixe esse campo em branco.
      Algoritmo de assinatura Deixe este valor como RSA 256.
      Senha da chave de assinatura Senha associada à chave de assinatura. Esta é a senha usada para gerar o arquivo JKS.
      Ativo Opção para habilitar a chave.
    4. Clique com o botão direito do mouse em qualquer lugar no cabeçalho cinza da página e selecione Salvar.

    Crie um provedor JWT para sua chave de assinatura GitHub para Integrações de vulnerabilidade de aplicação do GitHub

    Adicione um provedor JWT (JSON Web Token) à sua instância ServiceNow para GitHub.

    Antes de Iniciar

    Funções necessárias:
    • administrador
    • sn_vul.app_sec_manager

    Procedimento

    1. Navegar até Tudo > OAuth de Sistema > Provedores JWT.
    2. Selecione Novo.
    3. No formulário, preencha os campos.
      Tabela 3. Campos de formulário do Provedor JWT
      Campo Descrição
      Nome Nome para identificar o provedor JWT de forma única. Por exemplo, My GitHub App JWT Provider for AVR.
      Intervalo de Vencimento (s) Número em segundos para definir a vida útil dos tokens do provedor JWT. Você pode deixar esta configuração no padrão.
      Configuração de Assinatura Selecione a chave JWT que você criou nas etapas anteriores.
    4. Clique com o botão direito no cabeçalho do formulário e selecione “Salvar”.
    5. Insira seu GitHubApp ID do app para o valor da declaração iss, na lista relacionada Declarações padrão.
      Este é o ID do app GitHub no console GitHub que você criou nas etapas anteriores.
    6. Deixe os valores de auditoria e sub em branco (padrão).
    7. Clique com o botão direito no cabeçalho do formulário e selecione “Salvar”.

    Registrar GitHub como um Provedor OAuth (JWT) para Integrações de vulnerabilidade de aplicação do GitHub

    Use as informações geradas durante a configuração da conta do aplicativo GitHub para registrar GitHub como um provedor OAuth e permitir que a instância solicite tokens OAuth 2.0.

    Antes de Iniciar

    Funções necessárias:
    • administrador
    • sn_vul.app_sec_manager

    Procedimento

    1. Navegar até Tudo > OAuth de Sistema > Registro de aplicações.
    2. Selecione Novo.
      A aplicação Que tipo de OAuth? mensagem é exibida.
    3. Selecione Conectar-se a um provedor OAuth de terceiros.
    4. No formulário, preencha os campos.
      Tabela 4. Campos de formulário de Registro de aplicações
      Campo Descrição
      Nome Nome para identificar exclusivamente o registro. Por exemplo, insira Meu provedor de apps GitHub para AVR.
      ID de cliente ID de cliente da sua aplicação GitHub. O ID de cliente é da aplicação GitHub no console GitHub que você criou nas etapas anteriores. Este ID está disponível na seção Sobre da configuração do aplicativo GitHub em GitHub.
      Acessível Deixe esta configuração em seu valor atual.
      Segredo do cliente Segredo do cliente da sua aplicação GitHub. O segredo do cliente é da aplicação GitHub no console GitHub que você criou nas etapas anteriores. Este ID está disponível na seção Sobre da configuração do aplicativo GitHub em GitHub.
      Ativo Opção para habilitar a chave. Deixe selecionado.
      URL de Autorização Este URL é gerado automaticamente.
      URL de Token O local do endpoint do token que a instância usa para recuperar e atualizar tokens. Insira o token do URL na sua aplicação GitHub. Este é o token exibido no URL depois que o app é instalado em GitHub. Na seção Instalar app na configuração do app GitHub em GitHub, selecione a engrenagem. O token é exibido no URL da página da web.
      Script da API OAuth Opção que permite fazer referência a uma inclusão de script OAuthUtil corrigida. Selecione OAuthGitHubJWTHandler.
      Tipo de concessão padrão Tipo de concessão associado ao registro de aplicações. Selecione Portador JWT.
    5. Deixe o restante dos campos de formulário como padrão.
    6. Clique com o botão direito no cabeçalho do formulário e selecione “Salvar”.
    7. Role até a lista relacionada Perfis de entidade OAuth, selecione-a e abra o perfil padrão que foi criado na lista.
    8. Preencha o campo Provedor JWT com o provedor JWT criado anteriormente e salve o formulário.
    9. Retorne ao arquivo de registro da aplicação e salve-o.
    10. Navegar até Gestão de chave > Políticas de Acesso ao Módulo > Tudo.
    11. Selecione a política para que com_snc_platform_security_oauth_glideencrypter seja exibido como o valor do campo Módulo de criptografia e OAuthGitHubJWTHandler seja a Inclusão de script no campo Script de destino.

      Na imagem a seguir, o com_snc_platform_security_oauth_glideencrypter é selecionado como o valor do campo Módulo de criptografia. O campo Tabela Script exibe a tabela Inclusão de script [sys_script_include] e o valor do campo Script de destino é OAuthGitHubJWTHandler.

      Campo do módulo de criptografia com inclusão de script OAuthGitHubJWTHandler

    12. Selecione Atualizar.

      Tipo: script e resultado: rastrear

      Conforme mostrado na imagem anterior, o valor no campo Nome da política muda e os campos Tabela de script e Script de destino não são mais exibidos.
    13. Verifique se o campo Resultado está definido como Rastrear e salve suas mudanças.

    Criar credenciais e conexões para o Integrações de vulnerabilidade de aplicação do GitHub

    Crie um registro de credencial para o provedor de aplicações GitHub criado anteriormente para autorizar ações.

    Antes de Iniciar

    Funções necessárias:
    • administrador
    • sn_vul.app_sec_manager

    Procedimento

    1. Navegar até Credenciais e conexões > Credenciais.
    2. Selecione Novo.
    3. Selecione Credenciais OAuth 2.0.
    4. Selecione Novo e preencha os campos.
      CampoDescrição
      Nome Nome exclusivo do registro.
      Aplica-se a Selecione as credenciais do OAuth 2.0 na lista.
      Perfil de Entidade OAuth Selecione o ícone de pesquisa e localize o perfil de entidade que você criou nas etapas anteriores.
      Outros campos Deixe esses campos em seus padrões.
    5. Clique com o botão direito do mouse em qualquer lugar no cabeçalho da página e selecione Salvar.
      A lista Credenciais é exibida.
    6. Abra o registro que você acabou de criar e selecione o link relacionado Obter token OAuth.
      É exibida uma mensagem informando que o token OAuth foi importado com sucesso.
    7. Navegar até Credenciais e conexões > Conexões.
    8. Selecione Novo.
    9. Selecione Conexão HTTP(s).
    10. Selecione Novo e preencha os campos.
      CampoDescrição
      Nome Nome do registro.
      Aplicação Somente leitura.
      Alias primário (opcional) Selecione o ícone de pesquisa e escolha um na lista.
      Tipo Conexão e credencial.
      Tipo de conexão HTTP.
      Suporte a várias conexões ativas (opcional) Desativado.
      Política de nova tentativa padrão Política de Repetição de HTTP Padrão
      Modelo de configuração Deixe em branco.
    11. Selecione Enviar.
      A lista Aliases de conexões e credenciais é exibida.
    12. Abra seu registro e, na guia da lista relacionada a Conexões, selecione Novo e preencha os campos no registro de Conexão HTTP.
      CampoDescrição
      Nome Nome do registro.
      Ativo Ativado.
      Credencial Selecione o registro de credencial que você criou nas etapas anteriores.
      Alias de conexão Seu registro é exibido.
      Construtor de URL Desativado.
      URL de conexão

      Este é o URL base: https://api.github.com para Enterprise. O no local é o URL do endpoint do GitHub.

      Usar MID Server (opcional) O MID Server é necessário para o no local. É opcional para Enterprise.
      Tempo limite de conexão Insira um valor.
    13. Selecione Enviar.
      A lista Aliases de conexões e credenciais é exibida. Agora você está pronto para concluir as etapas para Configure o Integrações de vulnerabilidade de aplicação do GitHub. No campo Conexão, insira as credenciais criadas nas etapas anteriores.