Verwenden der Claris-ID für die externe Authentifizierung

Wenn Sie FileMaker Data API, FileMaker Admin API oder OData API mit FileMaker Cloud verwenden möchten, müssen Sie sich mit Ihrem Claris-ID Konto (keinem externen IdP-Konto) authentifizieren. FileMaker Cloud verwendet Amazon Cognito für die externe Authentifizierung.

Amazon Cognito verwaltet Benutzer über Benutzerpools, die Dienste wie Anmeldung, Authentifizierung mit Identitätsdienstleistern, Benutzerverzeichnisse und Profilmanagement sowie Sicherheitsüberwachung anbieten. (Weitere Informationen finden Sie unter Amazon Cognito User Pools.)

So authentifizieren Sie sich mit Claris-ID:

  1. Rufen Sie Werte für die Parameter UserPoolId und ClientId ab.

    Amazon Cognito erfordert eine UserPoolId und eine ClientId, um Benutzer zu authentifizieren. FileMaker Cloud bietet den folgenden Endpunkt:

    https://www.ifmcloud.com/endpoint/userpool/2.2.0.my.claris.com.json

    Der Endpunkt gibt die folgenden Ergebnisse zurück:

    {
        "errcode":"Ok",
        "errmessage":null,
        "data":{
            "Region": "us-west-2",
            "UserPool_ID":"us-west-2_NqkuZcXQY",
            "Client_ID":"4l9rvl4mv5es1eep1qe97cautn",
            "API_Host": "api-cp-global.ifmcloud.com/2-2",
            "FCC_Host": "console.claris.com"
        },
        "csrid":null
    }

    Hinweis  Die zurückgegebenen Werte Region und API_Host werden nicht für die Authentifizierung verwendet.

  2. Verwenden Sie das Amazon Cognito Identity SDK for JavaScript, um einen Benutzer über Amazon Cognito zu authentifizieren. (Weitere Informationen finden Sie unter Amazon Cognito Identity SDK for JavaScript.) Verwenden Sie das Beispiel unten in Ihrem JavaScript-Code, um Werte für den Claris-ID Token (Claris_ID_token) und den Claris-ID Refresh-Token (Claris_ID_refresh_token) abzurufen.

    Der Claris-ID Token wird für die Authentifizierung verwendet, wenn Sie FileMaker Data API, FileMaker Admin API oder OData API verwenden, und ist eine Stunde lang gültig. Der Claris-ID Refresh-Token ermöglicht Scripts, weiter ausgeführt zu werden, nachdem der Claris-ID Token abgelaufen ist, und ist ein Jahr lang gültig.

Hinweise 

  • Um FileMaker API-Aufrufe mit FileMaker Cloud zu verwenden, müssen Sie sich zunächst mit Ihrem Claris-ID Konto authentifizieren und die erforderlichen Sitzungs-Tokens abrufen. Die Tokens sind eine Stunde lang gültig. Wenn seit der letzten Claris-ID Authentifizierung mehr als eine Stunde vergangen ist, können API-Aufrufe mit einem 401-Fehler fehlschlagen. Um das Problem zu beheben, authentifizieren Sie sich erneut mit dem Claris-ID Konto und rufen Sie neue Sitzungs-Tokens ab.

Beispiel:

In diesem Beispiel:

  • Die Werte UserPool_ID und Client_ID von oben werden verwendet.

  • Geben Sie für username und password den Claris-ID Benutzernamen und das Passwort ein.

  • Die vier Zeilen, die mit mfaRequired beginnen, werden nur benötigt, wenn die Multi-Faktor-Authentifizierung (MFA) für Claris ID aktiviert ist.

  • Der Code basiert auf Beispielen, die von Amazon zur Verfügung gestellt wurden (siehe Zugriff auf Ihre Benutzerpools mit dem Amazon Cognito Identity SDK für JavaScript.)

Beispielcode:

var authenticationData = {
    Benutzername : 'username',
    Passwort : 'password',
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
var poolData = {
    UserPoolId : 'us-west-2_NqkuZcXQY',
    ClientId : '4l9rvl4mv5es1eep1qe97cautn'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
    Benutzername : 'username',
    Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {
        var Cognito_access_token = result.getAccessToken().getJwtToken();
        var Claris_ID_token = result.idToken.jwtToken;
        var Claris_ID_refresh_token = result.refreshToken.token;
    },
    onFailure: function(err) {
        alert(err);
    },
    mfaRequired: function(codeDeliveryDetails) {
        var verificationCode = prompt('Geben Sie den Validierungscode ein' ,'');
        cognitoUser.sendMFACode(verificationCode, this);
    }
});