RequestAuthAPI – Scoped

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Die RequestAuthAPI()- API stellt Methoden zum Anwenden einer Signatur auf eine REST-Anforderung bereit.

    Generieren Sie ausgehende Signieranforderungen mit diesen APIs in der folgenden Reihenfolge:
    1. HttpRequestData: Erstellen Sie die API-Anforderung.
    2. AuthCredential: Erstellen Sie ein Anmeldeinformationsobjekt, oder aktualisieren Sie ein vorhandenes. Verwenden Sie die Anmeldeinformationen, um die Anforderung über die RequestAuthAPI -Klasse zu signieren.
    3. RequestAuthAPI: Signiert die Anforderung und gibt ein HttpRequestAuthedData-Objekt zurück.
    4. HttpRequestAuthedData: Informationen zur signierten Anforderung abrufen.
    5. 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.

    Tabelle : 1. Parameter
    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.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    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.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 5. Ergebnisse
    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.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    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.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 9. Ergebnisse
    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'); ​
    }