Fluxo de concessão de código de autorização OAuth

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • O fluxo de concessão de código de autorização permite que um usuário acesse um recurso autenticando diretamente com um servidor OAuth que confie no recurso, em contraste com a autenticação com credenciais de nome de usuário/senha.

    Esta implementação do fluxo de código de autorização OAuth permite o acesso a um recurso via REST. A estrutura do código de autorização obtém o token de acesso por meio do URL autorizado que o usuário configura em vez de exigir que o usuário insira um nome de usuário/senha. O nome de usuário/senha nunca são expostos ao cliente que está solicitando acesso ao recurso.

    Uma instância da ServiceNow como o servidor de autorização

    O servidor OAuth normalmente é um servidor de autorização de terceiros. Você também pode especificar uma instância da ServiceNow como o servidor de autorização que emite os tokens para o fluxo de código de autorização.

    O usuário responsável pelo recurso restrito deve autorizar o acesso. O usuário também pode revogar o token de acesso emitido a qualquer momento para encerrar o acesso.

    Processo de fluxo de concessão de código de autorização

    O processo de fluxo de concessão do código de autorização consiste nestas três etapas:

    Na etapa um, a aplicação cliente ou site inicia uma chamada de REST API na forma de uma solicitação GET para a instância por meio do agente do usuário. Normalmente, a chamada REST é iniciada quando o usuário final clica em um botão ou link na aplicação cliente ou site para solicitar um token de acesso. Na aplicação cliente, o usuário final também precisa especificar o URL de autorização, o URL do token, o ID de cliente e o segredo do cliente. Para obter uma explicação desses itens, consulte as descrições dos campos neste tópico: Usar um provedor OAuth de terceiros. Se o cliente solicitar um tipo de concessão, o usuário final deverá selecionar o Código de autorização.

    Exemplo de solicitação GET da aplicação cliente para a instância:
    https://myinstance.service-now.com/oauth_auth.do?response_type=code&redirect_uri={the_redirect_url}&client_id={the_client_identifier}
    Nota:
    O response_type deve ser um código para usar o fluxo de concessão de código OAuth padrão.
    O usuário final deve permitir o acesso manualmente ao recurso restrito na instância. Na implementação da ServiceNow, o usuário final deve estar conectado à instância. A instância exibe ao usuário final uma página de IU que tem botões Permitir e Negar.

    O item ao qual a aplicação cliente está realmente solicitando o token é o registro da aplicação do provedor OAuth que você criou, também conhecido como endpoint de autorização (consulte Usar um provedor OAuth de terceiros). O código de autenticação é enviado do endpoint de autorização para o cliente. Ele não vai para o cliente diretamente, mas para o URL de redirecionamento que você especifica no formulário de endpoint de autorização. Este URL também é conhecido como URL de retorno de chamada. Você pode obter este URL na aplicação cliente ou no site.

    Exemplo de resposta da instância para a aplicação cliente, fornecendo um código de autorização:
    https/http://{callbackURL}?code={the actual auth code}

    Agora que a aplicação cliente tem o código de autorização, o cliente usa o código para solicitar o token de acesso. O código de autorização prova que houve consentimento do usuário na etapa 1.

    Exemplo de solicitação POST da aplicação cliente para a instância da ServiceNow que fornece o código de autenticação e solicita o token de acesso:
    https://myinstance.service-now.com/oauth_token.do?grant_type=authorization_code&code={the auth code}&redirect_uri={the_same_redirect_url}&client_id={the_same_client_identifier}&client_secret={client_secret_value}

    O endpoint na instância retorna um token de acesso e um token de atualização. O token de atualização pode ser usado para solicitar tokens de acesso adicionais.

    Você pode gerenciar os tokens, incluindo a revogação do token, na instância. Consulte Gerenciar tokens OAuth.

    A aplicação cliente usa o token de acesso para autenticar a REST API. Depois de autenticar a aplicação cliente, a REST API retorna os dados solicitados em uma carga JSON.

    Exemplo de solicitação GET para a carga JSON de dados para a tabela Incidente [incidente]:
    https://myinstance.service-now.com/api/now/table/incident?access_token={the_token}
    Nota:
    O sistema também é compatível com Concessões implícitas do OAuth, também conhecidas como fluxo de código de concessão implícito.

    Suporte à integração

    O fluxo do código de autorização é compatível com as seguintes integrações na instância:
    • Multi-SSO
    • SAML 2.0 Atualização 1
    • Autenticação multifator

    A interface para celular também é compatível.