Fluxo de trabalho de concessão do código de autorização

  • Versão de lançamento: Zurich
  • Atualizado 13 de mar. de 2026
  • 6 min. de leitura
  • A concessão de código de autorização OAuth é um fluxo seguro e amplamente usado para aplicativos da Web, móveis ou desktop que acessam dados do usuário com o consentimento do usuário. Ele oferece suporte a clientes privados (usando um segredo de cliente) e clientes públicos (usando PKCE).

    Antes de Iniciar

    Função necessária: oauth_admin, mi_admin, admin

    Por Que e Quando Desempenhar Esta Tarefa

    Esta coleção de tópicos fornece informações sobre como uma aplicação cliente pode usar o fluxo de concessão de código de autorização para obter um token da ServiceNow e fazer chamadas de API com esse token. Clientes privados usam segredo do cliente, enquanto os clientes públicos usam desafio de código PKCE.

    Figura 1. Fluxo de trabalho de autorização
    Fluxo de trabalho de autorização

    Procedimento

    1. Faça login na aplicação cliente.

      O usuário inicia o processo de login na interface da aplicação cliente.

    2. Inicie a solicitação de autorização.

      O cliente redireciona o usuário para o endpoint de autorização da ServiceNow. O método de iniciar a solicitação de autorização depende do tipo de cliente: Público ou Privado.

      Clientes públicos

      Clientes públicos (exemplo: Aplicações móveis ou de página única) não podem armazenar com segurança um segredo do cliente. Portanto, eles devem usar Chave de prova para troca de código (PKCE) para aprimorar a segurança.

      • Na solicitação de autorização, inclua Desafio de código PKCE e especifique método de desafio de código .
      • Durante a solicitação de token, o cliente deve enviar o. verificador de código validar o código de autorização.
      Execute uma solicitação GET para o endpoint de autorização com os seguintes parâmetros:
      Method: GET
      Endpoint: https://<servicenow_base_url>/oauth_auth.do
      Tabela 1. Parâmetros de solicitação de autorização (cliente público - PKCE)
      Parâmetro Necessários Descrição
      response_type Sim Defina o valor como código para iniciar o fluxo do código de autorização.
      client_id Sim O identificador exclusivo da sua aplicação cliente.

      FORMATO: YOUR_CLIENT_ID

      redirect_uri Sim O URI para o qual a ServiceNow envia o código de autorização.

      Exemplo: https://yourapp.com/callback

      code_challenge Sim Hash SHA-256 codificado em base64url do verificador de código. Isso é usado como parte do fluxo de PKCE.
      code_challenge_method Sim Especifica o método de transformação usado para o desafio de código. Definido como S256 .
      scope Opcional Uma lista delimitada por espaços de escopos solicitados.

      Exemplo: incident_read incident_write .

      estado Sim Um valor gerado pelo cliente usado para evitar ataques CSRF. O valor é retornado inalterado no URI de redirecionamento, permitindo que o cliente o valide.
      Nota:
      A partir da versão Madrid, a propriedade do sistema glide.oauth.state.parameter.obrigatório exige o uso do estado Parâmetro nas solicitações OAuth. . estado a propriedade está definida como verdadeiro por padrão, nas novas instâncias, e. opcional em instâncias atualizadas. Em caso de ausente estado a solicitação de autorização falha e o seguinte erro é exibido: Parâmetro de estado ausente na solicitação .
      Clientes privados

      Clientes privados (exemplo: Aplicações do lado do servidor) podem armazenar com segurança um segredo do cliente e não exigem PKCE.

      • A solicitação de autorização é iniciada redirecionando o usuário para o endpoint de autorização. Nenhum segredo do cliente ou desafio de código PKCE é necessário nesta etapa.
      • Durante a solicitação de token, o cliente inclui o. segredo do cliente junto com código de autorização para obter o token de acesso.
      Execute uma solicitação GET para o endpoint de autorização com os seguintes parâmetros:
      Method: GET
      Endpoint: https://<servicenow_base_url>/oauth_auth.do
      Tabela 2. Parâmetros de solicitação de autorização (segredo cliente-cliente privado)
      Parâmetro Necessários Descrição
      response_type Sim Defina o valor como código para iniciar o fluxo do código de autorização.
      client_id Sim O identificador exclusivo da sua aplicação cliente.

      FORMATO: YOUR_CLIENT_ID

      redirect_uri Sim O URI para o qual a ServiceNow envia o código de autorização.

      Exemplo: https://yourapp.com/callback

      scope Opcional Uma lista delimitada por espaços de escopos solicitados.

      Exemplo: incident_read incident_write .

      estado Sim Um valor gerado pelo cliente usado para evitar ataques de CSRF (Cross-Site Request Forgery, falsificação de solicitação entre sites). O valor é retornado inalterado no URI de redirecionamento, permitindo que o cliente o valide.
    3. Faça login e conceda consentimento de acesso à aplicação cliente.
      Faça login em ServiceNow(Ou IdP, se o SSO estiver habilitado) e conceda consentimento de acesso à aplicação cliente.
    4. ServiceNow(Ou IdP, se o SSO estiver habilitado) valida as credenciais e. ServiceNow retorna um código de autorização para o cliente.
      Após a autenticação bem-sucedida, o navegador é redirecionado para redirect_uri e o código de autorização está incluído na cadeia de caracteres de consulta:
      https://yourapp.com/callback?code=AUTH_CODE&state=xyz123
      
    5. Inicie a solicitação de autorização.

      O cliente redireciona o usuário para o endpoint de autorização da ServiceNow para um token de acesso. O método de iniciar a solicitação de autorização depende do tipo de cliente: Público ou Privado.

      Clientes públicos

      Clientes públicos (exemplo: Aplicações móveis ou de página única) não podem armazenar com segurança um segredo do cliente. Portanto, eles devem usar Chave de prova para troca de código (PKCE) para aprimorar a segurança.

      • Na solicitação de autorização, inclua Desafio de código PKCE e especifique método de desafio de código .
      • Durante a solicitação de token, o cliente deve enviar o. verificador de código validar o código de autorização.
      O cliente envia uma solicitação POST para o endpoint de token com os seguintes parâmetros:
      
      Method: POST  
      Endpoint: https://<servicenow_base_url>/oauth_token.do  
      Headers: Content-Type: application/x-www-form-urlencoded
      Tabela 3. Parâmetros de solicitação de token (cliente público-PKCE)
      Parâmetro Necessários Descrição
      grant_type Sim Defina o valor como authorization_code para trocar o código por um token.
      código Sim O código de autorização recebido do endpoint de autorização.
      redirect_uri Sim O URI usado na solicitação de autorização inicial.

      Exemplo: https://yourapp.com/callback

      client_id Sim O identificador exclusivo da sua aplicação cliente.
      code_verifier Sim A cadeia de caracteres original usada para gerar o PKCE code_challenge .
      estado Sim Um valor gerado pelo cliente usado para ajudar a evitar ataques CSRF. O valor é retornado inalterado no URI de redirecionamento, permitindo que o cliente o valide.
      Clientes privados

      Clientes privados (exemplo: Aplicações do lado do servidor) podem armazenar com segurança um segredo do cliente e não exigem PKCE.

      • A solicitação de autorização é iniciada redirecionando o usuário para o endpoint de autorização. Nenhum segredo do cliente ou desafio de código PKCE é necessário nesta etapa.
      • Durante a solicitação de token, o cliente inclui o. segredo do cliente junto com código de autorização para obter o token de acesso.
      Execute uma solicitação POST para o endpoint de autorização com os seguintes parâmetros:
      
      Method: POST 
      Endpoint: https://<servicenow_base_url>/oauth_token.do   
      Headers: Content-Type: application/x-www-form-urlencoded
      Tabela 4. Parâmetros de solicitação de token (segredo cliente-cliente privado)
      Parâmetro Necessários Descrição
      grant_type Sim Defina o valor como authorization_code para trocar o código por um token.
      código Sim O código de autorização recebido do endpoint de autorização.
      redirect_uri Sim O URI usado na solicitação de autorização inicial.

      Exemplo: https://yourapp.com/callback

      client_id Sim O identificador exclusivo da sua aplicação cliente.
      client_secret Sim O segredo do cliente usado para autenticar com o endpoint do token.
      estado Sim Um valor gerado pelo cliente usado para ajudar a evitar ataques CSRF. O valor é retornado inalterado no URI de redirecionamento, permitindo que o cliente o valide.
    6. Acesse ServiceNow APIs com o token de acesso.
      Exemplo:
      Faça uma solicitação GET para as APIs usando o token de acesso. Inclua o token de acesso no Autorização cabeçalho.
      Method: GET
      End Point: https://<servicenow_base_url>/api/now/incident  
      Authorization: Bearer YOUR_ACCESS_TOKEN
    7. Renove o token de acesso se ele tiver expirado.
      Faça uma solicitação POST para atualizar o token de acesso (somente clientes privados) com os seguintes parâmetros:
      
      Method: POST  
      Endpoint: https://<servicenow_base_url>/oauth_token.do  
      Headers: Content-Type: application/x-www-form-urlencoded
      Tabela 5. Atualizar parâmetros de solicitação de token (cliente privado)
      Parâmetro Necessários Descrição
      grant_type Sim Defina o valor como refresh_token para solicitar um novo token de acesso.
      refresh_token Sim O token de atualização emitido anteriormente pelo endpoint do token.
      client_id Sim O identificador exclusivo da sua aplicação cliente.
      client_secret Sim O segredo do cliente usado para autenticar com o endpoint do token.