RequestAuthAPI - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • A API 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.

    Antes de usar essas APIs, você deve configurar um algoritmo de autenticação para assinar a solicitação e associá-lo à 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)

    Instancia um objeto RequestAuthAPI usando uma solicitação REST e uma credencial.

    Tabela 1. Parâmetros
    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.
    credencial Objeto Objeto que representa um registro da tabela Credenciais [discovery_credentials]. Recupere este objeto usando a classe AuthCredential. Consulte API AuthCredential.
    // 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()

    Assina o objeto HttpRequestData e retorna um objeto HttpRequestAuthedData a ser usado para enviar a solicitação REST.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 3. Retorna
    Tipo Descrição
    HttpRequestAuthedData Objeto. Dados a serem usados para obter informações sobre o resultado assinado. Use os métodos da classe HttpRequestAuthedData para interagir com o resultado assinado. Consulte API HttpRequestAuthedData.

    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()

    Retorna o registro de credencial usado para assinar a solicitação.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. Retorna
    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 da classe AuthCredential para interagir com a credencial. Consulte API AuthCredential.
    // 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()

    Retorna o objeto HttpRequestData que foi usado para instanciar a classe RequestAuthAPI.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    HttpRequestData Objeto. Contém a solicitação REST não assinada. Use os métodos da classe HttpRequestData para interagir com a solicitação. Consulte API HttpRequestData.
    // 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 – resetAuthCredential()

    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 processa e gerencia tokens de acesso limitado.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    vazio
    // 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'); ​
    }