RequestAuthAPI - 범위 지정됨
RequestAuthAPI는 REST 요청에 서명을 적용하는 메서드를 제공합니다.
다음 순서로 이러한 API를 사용하여 아웃바운드 서명 요청을 생성합니다.
- HttpRequestData: API 요청을 빌드합니다.
- AuthCredential: 자격 증명 객체를 생성하거나 기존 자격 증명 객체를 업데이트합니다. 자격 증명을 사용하여 RequestAuthAPI 클래스를 통해 요청에 서명합니다.
- RequestAuthAPI: 요청에 서명하고 HttpRequestAuthedData 개체를 반환합니다.
- HttpRequestAuthedData: 서명된 요청에 대한 정보를 가져옵니다.
- GlideHTTPRequest: 서명된 요청을 보냅니다.
이러한 API를 사용하기 전에 요청에 서명하고 요청을 인증하는 데 사용되는 자격 증명과 연결하도록 인증 알고리즘을 구성해야 합니다.
sn_auth 네임스페이스 식별자와 함께 범위가 지정된 스크립트에서 이 API를 사용합니다.
RequestAuthAPI - RequestAuthAPI(객체 데이터, 객체 자격 증명)
REST 요청 및 자격 증명을 사용하여 RequestAuthAPI 객체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 데이터 | 객체 | 서명되지 않은 REST 요청을 포함하는 HttpRequestData 객체입니다. 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 개체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| HttpRequestAuthed데이터 | 객체. 서명된 결과에 대한 정보를 가져오는 데 사용할 데이터입니다. 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()
요청 서명에 사용되는 자격 증명 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| AuthCredential | 객체. 요청 서명에 사용된 자격 증명 기록에 대한 정보를 가져오는 데 사용할 데이터입니다. 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 개체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 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가 포함되어야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 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');
}