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_ID
eClient_ID
do código acima são usados -
para
username
epassword
, 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); } });