Usar o ID Claris para autenticação externa

Se você quiser usar o FileMaker Data API, o FileMaker Admin API, ou o OData API com o FileMaker Cloud é preciso fazer a autenticação usando sua conta do ID Claris (e não uma conta de IdP externo). O FileMaker Cloud usa o Amazon Cognito para autenticação externa.

O Amazon Cognito gerencia usuários por meio de grupos de usuários, que fornecem serviços como login, autenticação com provedores de identidade, diretório de usuários, gerenciamento de perfis e monitoramento da segurança. (Consulte Grupos de usuários do Amazon Cognito.)

Para se autenticar usando o ID Claris:

  1. Recupere os valores dos parâmetros UserPoolId e ClientId.

    O Amazon Cognito exige um UserPoolId e um ClientId para autenticar os usuários. O FileMaker Cloud fornece o seguinte ponto final:

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

    O ponto final retorna os seguintes resultados:

    {
        "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
    }

    Nota  Os valores retornados de Region e API_Host não são usados para a autenticação.

  2. Use o Amazon Cognito Identity SDK para JavaScript para autenticar um usuário por meio do Amazon Cognito. (Consulte Amazon Cognito Identity SDK para JavaScript.) Use o exemplo abaixo no seu código JavaScript para recuperar os valores do token do ID Claris (Claris_ID_token) e o token de atualização do ID Claris (Claris_ID_refresh_token).

    O token do ID Claris é usado para autenticação quando você usa a FileMaker Data API, a FileMaker Admin API ou a OData API e é válido por uma hora. O token de atualização do ID Claris permite que os scripts continuem em execução após a expiração do token do ID Claris e é válido por um ano.

Notas 

  • Para usar as chamadas do FileMaker API com o FileMaker Cloud, você deve autenticar usando sua conta do ID Claris e recuperar os tokens da sessão solicitada. Os tokens estão válidos por uma hora. Se tiver passado mais do que uma hora desde a última autenticação do ID Claris, as chamadas da API podem falhar com um erro 401. Para resolver o problema, autentique novamente usando a conta do ID Claris e recupere os tokens da nova sessão.

Exemplo

Neste exemplo:

  • os valores de UserPool_ID e Client_ID do código acima são usados

  • para username e password, insira o nome de usuário de ID Claris e a senha

  • as quatro linhas que começam com mfaRequired são necessárias apenas quando a autenticação multi-fatorial (MFA) está ativada para o ID Claris

  • o código é retirado de exemplos fornecidos pela Amazon (Consulte Acesso aos seus grupos de usuários usando o Amazon Cognito Identity SDK para JavaScript.)

Código de exemplo:

var authenticationData = {
    Username : 'username',
    Password : 'password',
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
var poolData = {
    UserPoolId : 'us-west-2_NqkuZcXQY',
    ClientId : '4l9rvl4mv5es1eep1qe97cautn'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
    Username : '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('Insira o código de verificação' ,'');
        cognitoUser.sendMFACode(verificationCode, this);
    }
});