고급 작업 > FileMaker ID를 외부 인증에 사용하기
 

FileMaker ID를 외부 인증에 사용하기

Claris FileMaker Data API 또는 OData APIFileMaker Cloud와 함께 사용하려는 경우 사용자의 FileMaker ID를 통해 인증해야 합니다. FileMaker Cloud는 Amazon Cognito를 외부 인증에 사용합니다.

Amazon Cognito는 로그인, ID 공급자 인증, 사용자 디렉토리, 프로파일 관리 및 보안 모니터링과 같은 서비스를 제공하는 사용자 풀을 통해 사용자를 관리합니다. (Amazon Cognito 사용자 풀을 참조하십시오.)

FileMaker ID를 사용하여 인증하기:

1. UserPoolId 및 ClientId 매개 변수의 값을 가져옵니다.

Amazon Cognito는 사용자 인증을 위해 하나의 UserPoolId 및 하나의 ClientId를 요구합니다. FileMaker Cloud는 아래 엔드포인트를 제공합니다.

https://www.ifmcloud.com/endpoint/userpool/
0.0.0.my.filemaker.com.jsonf

엔드포인트는 다음의 결과를 반환합니다.

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

참고  반환된 Region 및 API_Host 값은 인증에 사용되지 않습니다.

2. Amazon Cognito를 통해 사용자를 인증하려면 JavaScript용 Amazon Cognito Identity SDK를 사용하십시오 (JavaScript용 Amazon Cognito Identity SDK 참조). JavaScript 코드에서 아래 예제를 사용하여 FileMaker ID 토큰(FileMaker_ID_token) 및 FileMaker ID refresh 토큰(FileMaker_ID_refresh_token)의 값을 가져올 수 있습니다.

FileMaker ID 토큰은 FileMaker Data API 또는 OData API를 사용할 때 인증에 활용되며, 1시간 동안 유효합니다. FileMaker ID refresh 토큰으로 스크립트를 FileMaker ID 토큰이 만료된 후에도 계속 실행되도록 할 수 있으며, 1년 동안 유효합니다.

예제

이 예제에서

위의 UserPool_IDClient_ID 값이 사용됨

usernamepassword에는 FileMaker ID 사용자 이름 및 암호를 입력

예제 코드:

var authenticationData = {
Username : '사용자 이름',
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 : '사용자 이름',
Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var Cognito_access_token = result.getAccessToken().getJwtToken();
var FileMaker_ID_token = result.idToken.jwtToken;
var FileMaker_ID_refresh_token = result.refreshToken.token;
},
onFailure: function(err) {
alert(err);
},
});