RequestAuthAPI : Bereichsbezogen
Die RequestAuthAPI bietet Methoden zum Anwenden einer Signatur auf eine REST-Anforderung.
- HttpRequestData: API-Anforderung erstellen.
- AuthCredential: Erstellen Sie ein Anmeldeinformationsobjekt, oder aktualisieren Sie ein vorhandenes Objekt. Verwenden Sie die Anmeldeinformationen, um die Anforderung über die RequestAuthAPI -Klasse zu signieren.
- RequestAuthAPI: Signieren Sie die Anforderung und geben Sie ein HttpRequestAuthedData-Objekt zurück.
- HttpRequestAuthedData: Ruft Informationen zur signierten Anforderung ab.
- GlideHTTPRequest: Signierte Anforderung senden.
Bevor Sie diese APIs verwenden, müssen Sie einen Authentifizierungsalgorithmus konfigurieren, um die Anforderung zu signieren und den Anmeldeinformationen zuzuordnen, die zur Authentifizierung der Anforderung verwendet werden.
Verwenden Sie diese API in bereichsbezogenen Skripts mit dem Namespace-Bezeichner sn_auth.
RequestAuthAPI: RequestAuthAPI (Objektdaten, Objektanmeldeinformationen)
Instanziiert ein RequestAuthAPI-Objekt mithilfe einer REST-Anforderung und von Anmeldeinformationen.
| Name | Typ | Beschreibung |
|---|---|---|
| data | Objekt | HttpRequestData-Objekt, das die nicht signierte REST-Anforderung enthält. Verwenden Sie die Klasse HttpRequestData, um dieses Objekt zu erstellen. Weitere Informationen finden Sie unter HttpRequestData-API. |
| Anmeldeinformationen | Objekt | Objekt, das einen Datensatz aus der Tabelle „Anmeldeinformationen“ [discovery_credentials] darstellt. Rufen Sie dieses Objekt mit der AuthCredential -Klasse ab. Weitere Informationen finden Sie unter 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()
Signiert das HttpRequestData-Objekt und gibt ein HttpRequestAuthedData-Objekt zurück, das zum Senden in der REST-Anforderung verwendet wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| HttpRequestAuthedData | Objekt. Daten, die zum Abrufen von Informationen zum signierten Ergebnis verwendet werden. Verwenden Sie die Methoden in der Klasse „HttpRequestAuthedData“, um mit dem signierten Ergebnis zu interagieren. Siehe HttpRequestAuthedData-API. |
In diesem Beispiel wird eine Anforderung erstellt und ein Anmeldeinformationsdatensatz abgerufen, der an die RequestAuthAPI- API übergeben wird. Die Methode „ generateAuth() “ signiert dann die Anforderung.
// 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()
Gibt den Anmeldeinformationsdatensatz zurück, der zum Signieren der Anforderung verwendet wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Auth-Anmeldeinformationen | Objekt. Daten, die zum Abrufen von Informationen über den Anmeldeinformationsdatensatz verwendet werden, der zum Signieren der Anforderung verwendet wird. Verwenden Sie die Methoden in der AuthCredential -Klasse, um mit den Anmeldeinformationen zu interagieren. Weitere Informationen finden Sie unter 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()
Gibt das HttpRequestData-Objekt zurück, das zum Instanziieren der RequestAuthAPI -Klasse verwendet wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| HTTPAnforderungsdaten | Objekt. Enthält die nicht signierte REST-Anforderung. Verwenden Sie die Methoden in der Klasse HttpRequestData, um mit der Anforderung zu interagieren. Weitere Informationen finden Sie unter 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());
Ausgabe:
Endpoint is: https://third-party-endpoint
RequestAuthAPI – ResetAuthCredential()
Generiert ein temporäres Token mit eingeschränkten Berechtigungen, mit dem Sie vertrauenswürdigen Benutzern temporäre Sicherheitsanmeldeinformationen zur Steuerung von Drittparteiressourcen bereitstellen können.
Zur Verwendung dieser Methode muss der Drittanbieterservice eine API oder ein SDK enthalten, die Token für eingeschränkten Zugriff verarbeitet und verwaltet.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| 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');
}