RequestAuthAPI – Umfang
Die RequestAuthAPI Stellt Methoden zum Anwenden einer Signatur auf eine REST-Anforderung bereit.
- HttpRequestData : API-Anforderung erstellen.
- Anmeldeinformationen : Erstellen Sie ein Anmeldeinformationsobjekt, oder aktualisieren Sie ein vorhandenes. Verwenden Sie die Anmeldeinformationen, um die Anforderung über zu signieren RequestAuthAPI Klasse.
- 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 dies tun Konfigurieren Sie einen Authentifizierungsalgorithmus Um die Anforderung zu signieren und den Anmeldeinformationen zuzuordnen, die zur Authentifizierung der Anforderung verwendet werden.
Verwenden Sie diese API in bereichsbezogenen Skripts mit sn_auth Namespace-Bezeichner.
RequestAuthAPI: RequestAuthAPI (Objektdaten, Objektanmeldeinformationen)
Instanziiert ein RequestAuthAPI-Objekt mithilfe einer REST-Anforderung und einer Anmeldeinformation.
| Name | Typ | Beschreibung |
|---|---|---|
| data | Objekt | HttpRequestData-Objekt, das die nicht signierte REST-Anforderung enthält. Verwenden Sie HttpRequestData Klasse zum Erstellen dieses Objekts. Siehe HttpRequestData-API . |
| Anmeldeinformationen | Objekt | Objekt, das einen Datensatz aus der Tabelle „Anmeldeinformationen“ [Discovery_credentials] darstellt. Rufen Sie dieses Objekt mit ab Anmeldeinformationen Klasse. Siehe Authentifizierungs-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 der REST-Anforderung verwendet werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| HttpRequestAuthedData | Objekt. Daten, die zum Abrufen von Informationen zum signierten Ergebnis verwendet werden sollen. Verwenden Sie die Methoden in HttpRequestAuthedData Klasse, die mit dem signierten Ergebnis interagieren soll. Siehe HttpRequestAuthedData-API . |
Dieses Beispiel erstellt eine Anforderung und ruft einen Anmeldeinformationsdatensatz ab, der an übergeben werden soll RequestAuthAPI API. Die GenerateAuth() Methode 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 wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Anmeldeinformationen | Objekt. Daten, die zum Abrufen von Informationen zum Anmeldeinformationsdatensatz verwendet werden sollen, der zum Signieren der Anforderung verwendet wird. Verwenden Sie die Methoden in Anmeldeinformationen Klasse, die mit den Anmeldeinformationen interagiert werden soll. Siehe Authentifizierungs-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 von verwendet wurde RequestAuthAPI Klasse.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| HttpRequestData | Objekt. Enthält die nicht signierte REST-Anforderung. Verwenden Sie die Methoden in HttpRequestData Klasse, die mit der Anforderung interagiert werden soll. Siehe 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, das Sie verwenden können, um vertrauenswürdigen Anwendern temporäre Sicherheitsanmeldeinformationen zur Steuerung von Drittparteiressourcen bereitzustellen.
Zur Verwendung dieser Methode muss der Drittpartei-Service eine API oder ein SDK enthalten, die Token mit eingeschränktem 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');
}