RequestAuthAPI : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Die RequestAuthAPI bietet Methoden zum Anwenden einer Signatur auf eine REST-Anforderung.

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

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

    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. 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.

    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, 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
    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.

    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'); ​
    }