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:
-
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.
-
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_IDeClient_IDdo código acima são usados -
para
usernameepassword, insira o nome de usuário de ID Claris e a senha -
as quatro linhas que começam com
mfaRequiredsã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);
}
});