RequestAuthAPI – Scoped
Die RequestAuthAPI()- API stellt Methoden zum Anwenden einer Signatur auf eine REST-Anforderung bereit.
- HttpRequestData: Erstellen Sie die API-Anforderung.
- AuthCredential: Erstellen Sie ein Anmeldeinformationsobjekt, oder aktualisieren Sie ein vorhandenes. Verwenden Sie die Anmeldeinformationen, um die Anforderung über die RequestAuthAPI -Klasse zu signieren.
- RequestAuthAPI: Signiert die Anforderung und gibt ein HttpRequestAuthedData-Objekt zurück.
- HttpRequestAuthedData: Informationen zur signierten Anforderung abrufen.
- GlideHTTPRequest: Senden Sie die signierte Anforderung.
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-Identifier sn_auth.
RequestAuthAPI – RequestAuthAPI(Object data, Object credential)
Instanziiert ein RequestAuthAPI-Objekt mit einer REST-Anforderung und Anmeldeinformationen.
| Name | Typ | Beschreibung |
|---|---|---|
| data | Objekt | HttpRequestData-Objekt, das die REST-Anforderung ohne Signierung enthält. Verwenden Sie die Klasse HttpRequestData, um dieses Objekt zu erstellen. Siehe 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 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 der HttpRequestAuthedData -Klasse, 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 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 wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Auth-Anmeldeinformationen | Objekt Daten, die zum Abrufen von Informationen über den Anmeldeinformationsdatensatz verwendet werden sollen, 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 |
|---|---|
| HTTPRequestData | Objekt Enthält die REST-Anforderung ohne Signierung. Verwenden Sie die Methoden in der HttpRequestData -Klasse, um mit der Anforderung zu interagieren. 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, 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 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');
}