커뮤니티 커넥터는 다음과 같은 인증 방법을 지원합니다.
- OAuth 2.0
- 경로/사용자 이름/비밀번호
- 경로/키
- 사용자 이름/비밀번호
- 사용자 이름/토큰
- 키
- 없음
사용하는 방법에 따라 추가 함수를 제공해야 합니다. 확인할 수 있습니다
다음 표는 다음에 따라 정의해야 하는 함수를 보여줍니다. 커넥터 인증 유형을 선택합니다.
OAUTH2 | PATH_USER_PASS PATH_KEY USER_PASS USER_TOKEN KEY |
없음 | |
---|---|---|---|
getAuthType() |
필수 | 필수 | 필수 |
resetAuth() |
필수 | 필수 | |
isAuthValid() |
필수 | 필수 | |
authCallback() |
필수 | ||
get3PAuthorizationUrls() |
필수 | ||
setCredentials() |
필수 |
getAuthType()
이 함수는 커넥터의 인증 유형을 반환해야 합니다.
OAUTH2
PATH_USER_PASS
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_USER_PASS)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
PATH_KEY
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_KEY)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
USER_PASS
USER_TOKEN
키
없음
resetAuth()
이 함수는 사용자에 대해 저장된 서드 파티 사용자 인증 정보를 삭제합니다. 있습니다.
OAUTH2
PATH_USER_PASS
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.username');
userProperties.deleteProperty('dscc.password');
}
PATH_KEY
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.key');
}
USER_PASS
USER_TOKEN
키
isAuthValid()
이 함수는 타사의 인증이
유효한지 확인합니다. 인증이 유효하면
getData()
및 getSchema()
이(가) 다음과 같은 이유로 실패하지 않습니다.
무단 액세스를 방지할 수 있습니다. 인증이 유효하지 않으면
알림을 사용하여 승인 흐름을 시작합니다.
OAUTH2
PATH_USER_PASS
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var userName = userProperties.getProperty('dscc.username');
var password = userProperties.getProperty('dscc.password');
// This assumes you have a validateCredentials function that
// can validate if the path, userName and password are correct.
return validateCredentials(path, userName, password);
}
PATH_KEY
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var key = userProperties.getProperty('dscc.key');
// This assumes you have a validateCredentials function that
// can validate if the path and key are correct.
return validateCredentials(path, key);
}
USER_PASS
USER_TOKEN
키
OAUTH2
Apps Script 라이브러리에 OAuth2 추가 및 설정
Apps Script용 OAuth2 설정 안내를 따릅니다. 커넥터 프로젝트에 추가합니다. 그런 다음 계정의 사용 가이드를 참조하여 커넥터에서 OAuth2 서비스 만들기 살펴보겠습니다 OAuth2 서비스에는 유효한 함수 이름이 있을 수 있지만 코드에서 OAuth2 서비스를 참조하는 동안 동일한 이름을 사용할 수 있습니다.
예를 들어 exampleService
라는 OAuth2 서비스는 다음과 같습니다.
authCallback()
이 함수는 OAuth 2.0 흐름을 완료하기 위해 호출됩니다. 콜백 응답 가 인수로 제공되며 처리할 수 있습니다.
Apps Script용 OAuth2를 사용하여 OAuth 2.0 콜백 처리의 예 라이브러리:
get3PAuthorizationUrls()
이 함수는 인증을 시작하는 데 필요한 URL을 가져오기 위해 호출됩니다.
서드 파티 서비스
흐름을 통해 구현됩니다 isAuthValid
가 false
를 반환하면 URL
반환된 값이 사용자에게
서드 파티 서비스에 대한 액세스를 승인합니다. 자세한 내용은
get3PAuthorizationUrls()가 필요합니다.
Apps Script용 OAuth2를 사용하여 승인 URL을 반환하는 예 라이브러리:
USER_PASS
, USER_TOKEN
, KEY
, PATH_USER_PASS
및 PATH_KEY
다음은 USER_PASS
, USER_TOKEN
, KEY
,
PATH_USER_PASS
및 PATH_KEY
인증 흐름
setCredentials()
사용자가 사용자 인증 정보 중 하나를 입력하면 setCredentials
가 호출됩니다.
해당 정보를 확인하시기 바랍니다. 먼저
사용자 인증 정보를 저장하는 Properties Service
UserProperties
사용
PATH_USER_PASS
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathUserPass;
var path = creds.path;
var username = creds.username;
var password = creds.password;
// Optional
// Check if the provided path, username and password are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, username, password);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.username', username);
userProperties.setProperty('dscc.password', password);
return {
errorCode: 'NONE'
};
}
PATH_KEY
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathKey;
var path = creds.path;
var key = creds.key;
// Optional
// Check if the provided path and key are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, key);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.key', key);
return {
errorCode: 'NONE'
};
}