I connettori della community supportano i seguenti metodi di autenticazione:
- OAuth 2.0
- Percorso/Nome utente/Password
- Percorso/Chiave
- Nome utente/password
- Nome utente/token
- Chiave
- Nessuno
A seconda del metodo utilizzato, devi fornire funzioni aggiuntive nel tuo connettore.
La tabella seguente indica quali funzioni devi definire a seconda del il tipo di autenticazione del tuo connettore.
OAUTH2 | PATH_USER_PASS PATH_KEY USER_PASS USER_TOKEN KEY |
NESSUNO | |
---|---|---|---|
getAuthType() |
di provisioning. | di provisioning. | di provisioning. |
resetAuth() |
di provisioning. | di provisioning. | |
isAuthValid() |
di provisioning. | di provisioning. | |
authCallback() |
di provisioning. | ||
get3PAuthorizationUrls() |
di provisioning. | ||
setCredentials() |
di provisioning. |
getAuthType()
Questa funzione deve restituire il tipo di autenticazione per il connettore.
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
KEY
NESSUNO
resetAuth()
Questa funzione cancella tutte le credenziali archiviate per l'utente per la terza parte completamente gestito di Google Cloud.
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
KEY
isAuthValid()
Questa funzione viene chiamata per determinare se l'autenticazione per la terza parte
sia valido. Se l'autenticazione è valida, è previsto che le chiamate a
getData()
e getSchema()
non subiranno errori a causa di
accessi non autorizzati. Se l'autorizzazione non è valida, l'utente può ricevere una
per avviare il flusso di autorizzazione.
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
KEY
OAUTH2
Aggiungere e configurare OAuth2 per la libreria Apps Script
Segui le istruzioni di configurazione di OAuth2 per Apps Script per aggiungerlo al progetto del connettore. Poi segui il primo passaggio nella guida all'uso per creare un servizio OAuth2 nel connettore progetto. Il servizio OAuth2 può avere qualsiasi nome di funzione valido, ma assicurati di utilizzare lo stesso nome quando si fa riferimento al servizio OAuth2 nel codice.
Ad esempio, un servizio OAuth2 denominato exampleService
:
authCallback()
Questa funzione viene chiamata per completare il flusso OAuth 2.0. La risposta alla richiamata del servizio di autenticazione di terze parti è fornito come argomento e deve essere gestite da questa funzione.
Esempio di gestione del callback OAuth 2.0 utilizzando OAuth2 per Apps Script libreria:
get3PAuthorizationUrls()
Questa funzione viene chiamata per ottenere l'URL necessario per avviare l'autenticazione
per il servizio di terze parti. Se isAuthValid
restituisce false
, l'URL
vengono restituiti all'utente sotto forma di pulsante o link
autorizzare l'accesso al servizio di terze parti. Consulta il riferimento per
get3PAuthorizationUrls().
Esempio di restituzione dell'URL di autorizzazione utilizzando OAuth2 per Apps Script libreria:
USER_PASS
, USER_TOKEN
, KEY
, PATH_USER_PASS
e PATH_KEY
Quanto segue è necessario solo per USER_PASS
, USER_TOKEN
, KEY
,
Flussi di autenticazione PATH_USER_PASS
e PATH_KEY
.
setCredentials()
setCredentials
viene chiamato dopo che l'utente ha inserito una delle proprie credenziali
informazioni nella pagina di configurazione
del connettore della community. Dovresti usare lo
Proprietà del servizio, per salvare le credenziali su un singolo utente
utilizzando 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'
};
}