RequestAuthAPI - 범위 지정됨

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기9분
  • RequestAuthAPI() API는 REST 요청에 서명을 적용하는 메서드를 제공합니다.

    다음 순서로 이 API를 사용하여 아웃바운드 서명 요청을 생성합니다.
    1. HttpRequestData: API 요청을 빌드합니다.
    2. AuthCredential: 자격 증명 개체를 만들거나 기존 개체를 업데이트합니다. 자격 증명을 사용하여 RequestAuthAPI 클래스를 통해 요청에 서명합니다.
    3. RequestAuthAPI: 요청에 서명하고 HttpRequestAuthedData 개체를 반환합니다.
    4. HttpRequestAuthedData: 서명된 요청에 대한 정보를 가져옵니다.
    5. GlideHTTPRequest: 서명된 요청을 보냅니다.

    이러한 API를 사용하기 전에 인증 알고리즘을 구성 하여 요청에 서명하고 요청을 인증하는 데 사용되는 자격 증명과 연결해야 합니다.

    sn_auth 네임스페이스 식별자를 사용하여 범위가 지정된 스크립트에서 이 API를 사용합니다.

    RequestAuthAPI - RequestAuthAPI(객체 데이터, 객체 자격 증명)

    REST 요청 및 자격 증명을 사용하여 RequestAuthAPI 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    데이터 객체 HttpRequestData 서명되지 않은 REST 요청을 포함하는 객체입니다. HttpRequestData 클래스를 사용하여 이 개체를 빌드합니다. HttpRequestData API를 참조하세요.
    자격 증명 객체 자격 증명 [discovery_credentials] 테이블의 기록을 나타내는 객체입니다. AuthCredential 클래스를 사용하여 이 개체를 검색합니다. AuthCredential API를 참조하세요.
    // 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()

    HttpRequestData 개체에 서명하고 REST 요청을 보내는 데 사용할 HttpRequestAuthedData 개체를 반환합니다.

    표 2. 매개변수
    이름 유형 설명
    없음
    표 3. 반환
    유형 설명
    HttpRequestAuthedData 개체. 서명된 결과에 대한 정보를 얻는 데 사용할 데이터입니다. HttpRequestAuthedData 클래스의 메서드를 사용하여 서명된 결과와 상호 작용합니다. HttpRequestAuthedData API를 참조하세요.

    이 예제에서는 요청을 생성하고 RequestAuthAPI API에 전달할 자격 증명 레코드를 가져옵니다. 그런 다음 generateAuth() 메서드가 요청에 서명합니다.

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

    요청 서명에 사용된 자격 증명 기록을 반환합니다.

    표 4. 매개변수
    이름 유형 설명
    없음
    표 5. 반환
    유형 설명
    인증 자격 증명 개체. 요청 서명에 사용되는 자격 증명 기록에 대한 정보를 얻는 데 사용할 데이터입니다. AuthCredential 클래스의 메서드를 사용하여 자격 증명과 상호 작용합니다. AuthCredential API를 참조하세요.
    // 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()

    RequestAuthAPI 클래스를 인스턴스화하는 데 사용된 HttpRequestData 개체를 반환합니다.

    표 6. 매개변수
    이름 유형 설명
    없음
    표 7. 반환
    유형 설명
    HttpRequestData (영문) 개체. 서명되지 않은 REST 요청을 포함합니다. HttpRequestData 클래스의 메서드를 사용하여 요청과 상호 작용합니다. HttpRequestData API를 참조하세요.
    // 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());

    출력:

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

    RequestAuthAPI - resetAuthCredential()

    신뢰할 수 있는 사용자에게 타사 리소스를 제어할 수 있는 임시 보안 자격 증명을 제공하는 데 사용할 수 있는 제한된 임시 권한 토큰을 생성합니다.

    이 방법을 사용하려면 타사 서비스에 제한된 액세스 토큰을 처리하고 관리하는 API 또는 SDK가 포함되어야 합니다.

    표 8. 매개변수
    이름 유형 설명
    없음
    표 9. 반환
    유형 설명
    void
    // 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'); ​
    }