---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Credenciais OAuth 2.0 para aplicações GitHub - JWT

# Credenciais OAuth 2.0 para aplicações GitHub - JWT {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 8 min. de leitura

Execute as etapas a seguir para integrar seus aplicativos do GitHub usando o token do portador JWT.

Antes de começar

Função necessária:

* oauth_admin em Velocidade de mudança para DevOps.
* Conta de administrador em GitHub.

{#dev-ops-github-apps-oath-jwt__ul_rxd_mpy_jsb}  
Nota:  
Para o GitHub Enterprise Server (instância no local), o OAuth não será compatível se você estiver se conectando usando um MID Server.

## Configure o app GitHub na sua conta GitHub (JWT) {#ariaid-title2}

Crie um app GitHub personalizado de sua conta GitHub para habilitar a autenticação OAuth 2.0 com sua instância ServiceNow.

### Antes de Iniciar

GitHub requisito: GitHub app configurado para integração com ServiceNow

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 [Edifício GitHub Apps](https://developer.github.com/apps/building-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 desenvolvedorAplicações do GitHub.
2. No campo URL da página inicial, insira <kbd class="ph userinput">https://</kbd>\<instance-name\> .service-now.com .
3. No campo URL de retorno de chamada de autorização do usuário, insira <kbd class="ph userinput">https://</kbd>\<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 <kbd class="ph userinput">https://</kbd>\<instance-name\> .service-now.com/api/sn_devops/v2/devops/tool/apps?toolId=\<Tool ID\> , em que ID da ferramenta é o ID da ferramenta GitHub (sys_id) de Velocidade de mudança para DevOps.  
   Nota:  
   Se você estiver criando a ferramenta recentemente e não tiver o ID da ferramenta, poderá inserir a URL do webhook sem o ID da ferramenta e configurá-la posteriormente. Para configurar mais tarde:
   1. Navegue até a página de registro da ferramenta conectada.
   2. Selecione Configurar app GitHube Configurar automaticamente com o token existente.

   {#dev-ops-config-github-acct-jwt__ol_nmg_pk4_ybc}Isso configura a URL do Webhook do app GitHub automaticamente.  
   Você pode obter o ID da ferramenta de uma das seguintes maneiras:
   * Ao se conectar com a ferramenta em Velocidade de mudança para DevOps, o ID da ferramenta está disponível no URL da página. Por exemplo, `https://`\<instance-name\> .service-now.com/.../sn_devops_tool/\<Tool ID\> /... .
   * Você pode copiar a URL do webhook da página de registro da ferramenta \[ GitHub em Velocidade de mudança para DevOps, de ConfigurarConfigurar manualmenteURL do webhook.
   {#dev-ops-config-github-acct-jwt__ul_qbv_2j4_ybc}
7. Deixe os campos restantes em branco (padrão).
8. Na seção Permissões do repositório, defina as seguintes configurações.  

   |-|-|
   | Ação | Somente leitura |
   | Verificações | Somente leitura |
   | Conteúdos | Somente leitura |
   | Implantações | Ler e gravar |
   | Ambientes | Somente leitura |
   | Metadados | Somente leitura |
   | Solicitações de extração | Somente leitura |
   | Segredos | Somente leitura |
   | Webhooks | Ler e gravar Nota: São necessárias permissões de leitura e gravação para configurar webhooks de ServiceNow. |
   [ ]

   {#dev-ops-config-github-acct-jwt__table_j5m_wcs_4mb}  
   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 <kbd class="ph userinput">Sem acesso</kbd> (padrão).
10. Na seção Assinar eventos, selecione a opção Regra de proteção de implantação.
11. Salve as mudanças.
12. Depois de criar o aplicativo GitHub, gere uma nova chave privada e salve-a em sua máquina.
13. 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](https://docs.github.com/en/developers/apps/managing-github-apps/installing-github-apps).
    {#dev-ops-config-github-acct-jwt__substeps_v31_znx_qvb}

## Adicionar ID de cliente à propriedade de DevOps {#ariaid-title3}

Depois de configurar o app GitHub, você deve garantir que o prefixo do ID do cliente (primeiros 3 ou mais caracteres do ID) seja adicionado à propriedade do DevOps: especificador de ID de cliente para o app GitHub.

### Antes de Iniciar

Função necessária: sn_devops.admin

### Procedimento

1. Navegar até EspaçosEspaço de mudança de DevOpsAdministraçãoConfiguração do sistemaPropriedades.
2. Altere o Escopo da aplicação para Modelo de dados do DevOps.
3. Pesquise a propriedade: especificador de ID de cliente para app GitHub \[sn_devops.github_oauth_client_id_specifier\].
4. Insira o prefixo do ID do cliente (primeiros 3 ou mais caracteres do ID) do seu app GitHub na propriedade.
5. Selecione Salvar.

## Gerar o certificado Java KeyStore para GitHub {#ariaid-title4}

Gere um certificado Java KeyStore (JKS) para a autenticação JWT.

### Antes de Iniciar

Função necessária: administrador

### 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.
{#dev-ops-generate-jks-cert-github__steps_jhr_rpr_4mb}

## Anexe o certificado Java KeyStore GitHub à sua instância {#ariaid-title5}

Habilite a autenticação de token de concessão de portador JWT anexando o certificado GitHub Java KeyStore (JKS) válido à sua instância da ServiceNow.

### Antes de Iniciar

Garanta a disponibilidade de um certificado Java KeyStore válido.

Função necessária: administrador

### Procedimento

1. Navegar até TodosDefinição do SistemaCertificados.
2. Selecione Novo.
3. No formulário, preencha os campos.  
   {#dev-ops-attach-jks-cert-github__table_hvh_4tt_xgb__entry__2}

   | Campo | Descrição |
   |-|-|
   | Nome | Nome para identificar exclusivamente o registro. Por exemplo, <kbd class="ph userinput">My GitHub App Certificate</kbd>. |
   | 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. |
   [Tabela 1. Campos do formulário da certificação X.509]

   {#dev-ops-attach-jks-cert-github__table_hvh_4tt_xgb}
4. Selecione o ícone de anexos (ícone de ![anexos]()) e anexe um certificado JKS.
5. Selecione Validar armazenamentos/certificados.
{#dev-ops-attach-jks-cert-github__steps_ifm_5dw_bhb}

## Criar uma chave de assinatura JWT para o certificado GitHub JKS {#ariaid-title6}

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

### Antes de Iniciar

Função necessária: administrador, sn_devops.admin

### Procedimento

1. Navegar até TodosOAuth de SistemaChaves de JWT.
2. Selecione Novo.
3. No formulário, preencha os campos.  
   {#dev-ops-create-jwt-key-github__table_jky_dk5_xgb__entry__2}

   | Campo | Descrição |
   |-|-|
   | Nome | Nome para identificar exclusivamente a chave de assinatura JWT. Por exemplo, <kbd class="ph userinput">Minha chave JWT do app GitHub</kbd>. |
   | Armazenamento de chaves de assinatura | Certificado JKS válido anexado na tarefa anterior. Por exemplo, <kbd class="ph userinput">My GitHub App Certificate</kbd>. |
   | ID de chave | ID exclusiva para identificar qual chave é usada quando várias chaves são usadas para assinar tokens. |
   | Algoritmo de assinatura | Algoritmo para assinar com a chave JWT (dica: RSA 256). |
   | Senha da chave de assinatura | Senha associada à chave de assinatura (dica: a senha do armazenamento de chaves de origem criada anteriormente). |
   | Ativo | Opção para habilitar a chave. |
   [Tabela 2. Campos do formulário de chaves de JWT]

   {#dev-ops-create-jwt-key-github__table_jky_dk5_xgb}
4. Selecione Enviar.
{#dev-ops-create-jwt-key-github__steps_zjg_4tr_4mb}

## Crie um provedor JWT para sua chave de assinatura GitHub {#ariaid-title7}

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

### Antes de Iniciar

Função necessária: administrador, sn_devops.admin

### Procedimento

1. Navegar até TodosOAuth de SistemaProvedores JWT.
2. Selecione Novo.
3. No formulário, preencha os campos.  
   {#dev-ops-create-jwt-prov-github__table_l5g_3m5_xgb__entry__2}

   | Campo | Descrição |
   |-|-|
   | Nome | Nome para identificar o provedor JWT de forma única. Por exemplo, <kbd class="ph userinput">Meu provedor JWT do app GitHub</kbd>. |
   | Intervalo de Vencimento (s) | Número em segundos para definir a vida útil dos tokens do provedor JWT (Dica: você pode deixar como padrão). |
   | Configuração de Assinatura. | Chave de assinatura JWT válida criada anteriormente. Por exemplo, <kbd class="ph userinput">Minha chave JWT do app GitHub</kbd>. |
   [Tabela 3. Campos de formulário do Provedor JWT]

   {#dev-ops-create-jwt-prov-github__table_l5g_3m5_xgb}
4. Clique com o botão direito no cabeçalho do formulário e selecione "Salvar".
5. Insira o ID do appGitHub do app (disponível na seção Sobre da configuração do app \[ GitHub em GitHub ) como o valor da declaração de emissão, na lista relacionada de Declarações padrão.
6. Deixe os valores de auditoria e sub em branco (padrão).
{#dev-ops-create-jwt-prov-github__steps_ung_p5r_4mb}

## Registrar GitHub como um provedor OAuth (JWT) {#ariaid-title8}

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ção necessária: administrador, sn_devops.admin

### Procedimento

1. Navegar até TodosOAuth de SistemaRegistro 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.  
   {#dev-ops-reg-github-oauth-prov-jwt__table_fd2_2xr_4mb__entry__2}

   | Campo | Descrição |
   |-|-|
   | Nome | Nome para identificar exclusivamente o registro. Por exemplo, insira <kbd class="ph userinput">Meu provedor de apps do GitHub</kbd>. |
   | ID de cliente | ID de cliente do app GitHub (dica: disponível na seção Sobre da configuração do app \[ GitHub em GitHub ). |
   | Segredo do cliente | Segredo do cliente do app GitHub (dica: disponível na seção Sobre da configuração do app \[ GitHub em GitHub ). |
   | Script da API OAuth | Opção que permite fazer referência a uma inclusão de script OAuthUtil corrigida. Selecione OAuthDevOpsGitHubJWTHandler. |
   | Tipo de concessão padrão | Tipo de concessão associado ao registro de aplicações. Selecione Portador JWT. |
   | URL de Token | O local do endpoint do token que a instância usa para recuperar e atualizar tokens. Para a versão em nuvem, insira: <kbd class="ph userinput">https://api.github.com/app/installations/</kbd>\<installation_id\> /access_tokens . Para a versão Enterprise, insira: <kbd class="ph userinput">https://</kbd>\<HOST_URL\> /api/v3/app/installations/\<installation_id\> /access_tokens . Para o ID de instalação, acesse a seção Instalar app na configuração do app GitHub no GitHub e selecione o ícone de engrenagem para configurar seu app. O ID de instalação estará no URL da página da web. Por exemplo, https://github.com/settings/installations/\<installation_id\> . |
   [Tabela 4. Campos de formulário de Registro de aplicações]

   {#dev-ops-reg-github-oauth-prov-jwt__table_fd2_2xr_4mb}
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. Abra o perfil padrão criado na lista relacionada Perfis de entidade OAuth.
8. Preencha o campo Provedor JWT com o provedor JWT criado anteriormente e salve o formulário.
9. Navegue até Gerenciamento de chaves \> Políticas de acesso ao módulo \> Tudo.
10. Selecione a política que tem com_snc_platform_security_oauth_glideencrypter como o valor do campo Módulo de criptografia e Inclusão de script: OAuthDevOpsGitHubJWTHandler como o valor do campo Script de destino.
11. Certifique-se de que o campo Resultado esteja definido como Rastrear e salve as mudanças.  
{#dev-ops-reg-github-oauth-prov-jwt__steps_ed2_2xr_4mb}

## Criar um registro de credencial para GitHub Provedor de aplicações (JWT) {#ariaid-title9}

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

### Antes de Iniciar

Função necessária: administrador, sn_devops.admin

### Procedimento

1. Navegar até TodosConexões e CredenciaisCredenciais.
2. Selecione Novo.  
   Que tipo de credenciais você deseja criar? mensagem é exibida.
3. Selecione Credenciais OAuth 2.0.
4. No formulário, preencha os campos.  
   {#dev-ops-create-cred-github-jwt__table_sxv_zgp_gfb__entry__2}

   | Campo | Valor necessário |
   |-|-|
   | Nome | Nome para identificar exclusivamente o registro. Por exemplo, insira <kbd class="ph userinput">Minha credencial do app GitHub</kbd>. |
   | Ativo | Opção para habilitar o registro. |
   | Perfil de Entidade OAuth | Perfil de Entidade OAuth padrão criado no Registro de aplicações. |
   [Tabela 5. Campos de formulário de credenciais do OAuth 2.0]

   {#dev-ops-create-cred-github-jwt__table_sxv_zgp_gfb}
5. Salve o registro.
6. Selecione o link relacionado Obter token OAuth para gerar o token OAuth.
{#dev-ops-create-cred-github-jwt__steps_o5h_52j_qfb}
**Conceitos relacionados**   

* [GitHub Actions configurações](https://servicenow-prod.fluidtopics.net/NezbkYmzFDJgZtlrTKDYwA#github-actions-integration-with-devops "Informações de configuração em GitHub Actions, como segredos, fluxos de trabalho e limitações.")
* [Ações personalizadas do ServiceNow DevOps do mercado do GitHub](https://servicenow-prod.fluidtopics.net/IqmuBEkmGWsWUk9IJZ3shw#servicenow-devops-custom-actions-from-github-marketplace "Use as ações personalizadas do mercado GitHub para coletar dados de verificação do SonarQube, dados de segurança, pausar ou retomar o fluxo de trabalho ou retomar o fluxo de trabalho até que uma solicitação de mudança seja aprovada ou rejeitada em sua instância, ou obter e atualizar detalhes da solicitação de mudança e assim por diante.")  
**Tarefas relacionadas**   

* [Portões de implantação do GitHub para mudança do ServiceNow DevOps](https://servicenow-prod.fluidtopics.net/xGXGTh4b3koe7MAOb2b3wg "Use a capacidade do GitHub Deployment GitHub para decidir se uma nova implantação deve prosseguir ou parar.")

