---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# RequestAuthAPI - com escopo

# RequestAuthAPI - com escopo {#ariaid-title1}

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

A RequestAuthAPI fornece métodos para aplicar uma assinatura a uma solicitação REST.  
Gere solicitações de assinatura de saída usando essas APIs na seguinte ordem:

1. HttpRequestData: crie a solicitação de API.
2. AuthCredential: crie um objeto de credencial ou atualize um existente. Use a credencial para assinar a solicitação por meio da classe RequestAuthAPI.
3. RequestAuthAPI: assine a solicitação e retorne um objeto HttpRequestAuthedData.
4. HttpRequestAuthedData: obtenha informações sobre a solicitação assinada.
5. GlideHTTPRequest: envia a solicitação assinada.
{#RequestAuthAPI__ol_gvv_22t_tjb}

Antes de usar essas APIs, você deve [configurar um algoritmo de autenticação](https://www.servicenow.com/docs/access?context=configure-authentication-algorithm&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US) para assinar a solicitação e associá-la à credencial usada para autenticar a solicitação.

Use esta API em scripts com escopo com o identificador de namespace `sn_auth`.

## RequestAuthAPI - RequestAuthAPI (dados do objeto, credencial do objeto) {#ariaid-title2}

Instancia um objeto RequestAuthAPI usando uma solicitação REST e uma credencial.
{#RequestAuthAPI-RequestAuthAPI_O_O__table_htv_rvv_5jb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| dados | Objeto | Objeto HttpRequestData que contém a solicitação REST não assinada. Use a classe HttpRequestData para criar este objeto. Consulte [API HttpRequestData](https://servicenow-prod.fluidtopics.net/tfEL6PjB7NFDFX4eS~bXCw#HttpRequestDataAPI "A API HttpRequestData fornece métodos para criar e manipular uma solicitação REST antes de aplicar uma assinatura e enviá-la para um endpoint."). |
| credencial | Objeto | Objeto que representa um registro da tabela Credentials \[discovery_credentials\]. Recupere este objeto usando a classe AuthCredential. Consulte [API AuthCredential](https://servicenow-prod.fluidtopics.net/ylh3B1_vOAJuHJ2LlePWAw#AuthCredentialAPI "A API AuthCredential() fornece métodos que permitem criar credenciais para uma solicitação REST."). |
[Tabela 1. Parâmetros]

{#RequestAuthAPI-RequestAuthAPI_O_O__table_htv_rvv_5jb}  

    // Define the HttpRequestData object
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod("PUT");
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
     
     // Get a credential record
    var credential = new sn_cc.StandardCredentialsProvider().getAuthCredentialByID("88772d0d40990010f8772fdd9ebc8075");
     
    // Instantiate a RequestAuthAPI object
    var signingAPI = new sn_auth.RequestAuthAPI(httpRequestData, credential);

## RequestAuthAPI - generateAuth() {#ariaid-title3}

Assina o objeto HttpRequestData e retorna um objeto HttpRequestAuthedData a ser usado para enviar a solicitação REST.
{#RequestAuthAPI-generateAuth__table_uhw_sy4_5jb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 2. Parâmetros]

{#RequestAuthAPI-generateAuth__table_uhw_sy4_5jb} {#RequestAuthAPI-generateAuth__table_vhw_sy4_5jb__entry__2}

| Tipo | Descrição |
|-|-|
| HttpRequestAuthedData | Objeto. Dados a serem usados para obter informações sobre o resultado assinado. Use os métodos na classe HttpRequestAuthedData para interagir com o resultado assinado. Consulte [API HttpRequestAuthedData](https://servicenow-prod.fluidtopics.net/ZvYAKiAE9~ewplMh4o__nw#HttpRequestAuthedDataAPI "A API HttpRequestAuthedData() fornece métodos para acessar e definir valores em uma solicitação REST ou SOAP assinada."). |
[Tabela 3. Retorna]

{#RequestAuthAPI-generateAuth__table_vhw_sy4_5jb}  
Este exemplo cria uma solicitação e obtém um registro de credencial para passar para a API RequestAuthAPI. O método generateAuth() assina a solicitação.

    // Define the HttpRequestData object
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod("PUT");
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
     
    // Get a credential record
    gs.info( "date:" + httpRequestData.getDate() );
    var credential = new sn_cc.StandardCredentialsProvider().getAuthCredentialByID("5b61c16f73533300f662cff8faf6a74b");
     
    // Create the RequestAuthAPI object and sign the request
    var signingAPI = new sn_auth.RequestAuthAPI(httpRequestData, credential);
    var output = signingAPI.generateAuth();
     
## RequestAuthAPI -- getAuthCredential() {#ariaid-title4}

Retorna o registro de credencial usado para assinar a solicitação.
{#RequestAuthAPI-getAuthCredential__table_pfm_ny4_5jb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 4. Parâmetros]

{#RequestAuthAPI-getAuthCredential__table_pfm_ny4_5jb} {#RequestAuthAPI-getAuthCredential__table_qfm_ny4_5jb__entry__2}

| Tipo | Descrição |
|-|-|
| AuthCredential | Objeto. Dados a serem usados para obter informações sobre o registro de credencial usado para assinar a solicitação. Use os métodos na classe AuthCredential para interagir com a credencial. Consulte [API AuthCredential](https://servicenow-prod.fluidtopics.net/ylh3B1_vOAJuHJ2LlePWAw#AuthCredentialAPI "A API AuthCredential() fornece métodos que permitem criar credenciais para uma solicitação REST."). |
[Tabela 5. Retorna]

{#RequestAuthAPI-getAuthCredential__table_qfm_ny4_5jb}  

    // Define the HttpRequestData object
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod("PUT");
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
     
    // Get a credential record
    var credential = new sn_cc.StandardCredentialsProvider().getAuthCredentialByID("5b61c16f73533300f662cff8faf6a74b");
     
    // Return the AuthCredential object
    var signingAPI = new sn_auth.RequestAuthAPI(httpRequestData, credential);
    var signingCredential = signingAPI.getAuthCredential();

## RequestAuthAPI -- getHttpRequestData() {#ariaid-title5}

Retorna o objeto HttpRequestData que foi usado para instanciar a classe RequestAuthAPI.
{#RequestAuthAPI-getHttpRequestData__table_hp2_ly4_5jb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 6. Parâmetros]

{#RequestAuthAPI-getHttpRequestData__table_hp2_ly4_5jb} {#RequestAuthAPI-getHttpRequestData__table_ip2_ly4_5jb__entry__2}

| Tipo | Descrição |
|-|-|
| HttpRequestData | Objeto. Contém a solicitação REST não assinada. Use os métodos na classe HttpRequestData para interagir com a solicitação. Consulte [API HttpRequestData](https://servicenow-prod.fluidtopics.net/tfEL6PjB7NFDFX4eS~bXCw#HttpRequestDataAPI "A API HttpRequestData fornece métodos para criar e manipular uma solicitação REST antes de aplicar uma assinatura e enviá-la para um endpoint."). |
[Tabela 7. Retorna]

{#RequestAuthAPI-getHttpRequestData__table_ip2_ly4_5jb}  

    // Define the HttpRequestData object
    var endpoint= "https://third-party-endpoint";
    var httpRequestData = new sn_auth.HttpRequestData();
    httpRequestData.setEndpoint(endpoint);
    httpRequestData.setService('s3');
    httpRequestData.setRegion('us-east-1');
    httpRequestData.setHttpMethod("PUT");
    var content = "Action=SendMessage&MessageBody=This is a test message";
    httpRequestData.setContent(content);
    httpRequestData.addHeader('x-amz-acl' , 'public-read' );
     
     // Get a credential record
    var credential = new sn_cc.StandardCredentialsProvider().getAuthCredentialByID("88772d0d40990010f8772fdd9ebc8075");
     
    // Return the HttpRequestData object
    var signingAPI = new sn_auth.RequestAuthAPI(httpRequestData, credential);
    var unsignedRequest = signingAPI.getHttpRequestData();
     
    gs.info("Endpoint is: " + unsignedRequest.getEndpoint());

Saída:

    Endpoint is: https://third-party-endpoint

## RequestAuthAPI - reinicializarAuthCredential() {#ariaid-title6}

Gera um token de privilégio temporário e limitado que você pode usar para fornecer aos usuários confiáveis credenciais de segurança temporárias para controlar recursos de terceiros.
Para usar este método, o serviço de terceiros deve incluir uma API ou SDK que processe e gerencie tokens de acesso limitado.
{#RequestAuthAPI-resetAuthCredential__table_rxd_qy4_5jb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 8. Parâmetros]

{#RequestAuthAPI-resetAuthCredential__table_rxd_qy4_5jb} {#RequestAuthAPI-resetAuthCredential__table_sxd_qy4_5jb__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 9. Retorna]

{#RequestAuthAPI-resetAuthCredential__table_sxd_qy4_5jb}  

    // Creates a temporary token 
    function(authAPI) {​
        var requestData = authAPI.getHttpRequestData();​
        var credential= authAPI.getAuthCredential();​
        credential.setAttribute('Action', 'aws_sessionToken');​  
        authAPI.resetAuthCredential();	

        //Returns status information
        var status = credential.getAttribute('credential_reset_status'); ​
    }


