Vous pouvez également, au démarrage d'une nouvelle instance Looker hébergée par le client, provisionner automatiquement l'instance avec une clé de licence, une URL d'hôte et un compte utilisateur initial.
Provisionner automatiquement une nouvelle instance avec un utilisateur par e-mail
Au démarrage initial, Looker recherche un fichier nommé provision.yml
dans le répertoire looker
, où se trouve le fichier JAR. Le format de ce fichier est le suivant:
license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
user:
first_name: "Ariel"
last_name: "Q"
email: "arielq@altostrat.com"
password: "password123"
Si l'instance Looker est toute neuve et n'a pas encore été configurée, elle sera provisionnée avec la clé de licence fournie et un compte utilisateur avec les informations fournies.
Si Looker a déjà été provisionné, les valeurs de la clé de licence et de l'URL de l'hôte remplacent les valeurs actuellement définies. Les informations utilisateur seront ignorées. Cela permet de mettre à jour une instance de préproduction de Looker avec une nouvelle copie de la base de données interne d'une instance de production, tout en conservant une clé de licence et une URL distinctes pour le serveur de préproduction.
Provisionner automatiquement une nouvelle instance avec un utilisateur d'API
Au démarrage d'une nouvelle instance Looker, vous pouvez provisionner un utilisateur d'API initial de manière programmatique. Vous pouvez provisionner un utilisateur d'API OU un utilisateur par e-mail, mais Looker ne permet pas de provisionner à la fois un utilisateur d'API et un utilisateur par e-mail.
Générer des identifiants d'API
Pour provisionner un utilisateur de l'API, générez un ID client et un code secret du client que Looker lira et enregistrera dans la base de données. Les identifiants doivent répondre aux conditions suivantes:
- L'ID client doit comporter 20 caractères.
- Le code secret du client doit comporter 24 caractères.
- Les deux chaînes doivent pouvoir être incluses dans le corps d'une requête
POST
. Il est donc recommandé de n'utiliser que des caractères alphanumériques.
Par exemple, Looker utilise le code suivant pour générer ces identifiants de manière programmatique:
require 'securerandom'
TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze
def generate_token(size)
Array.new(size).map { TOKEN_SYMBOLS[SecureRandom.random_number(TOKEN_SYMBOLS.size)] }.join
end
Ce code évite les caractères ambigus pour rendre les chaînes moins sujettes aux erreurs.
Vous pouvez également générer des chaînes appropriées à l'aide de la commande openssl
:
openssl rand -hex 10
Le nombre à la fin de la commande openssl
correspond au nombre d'octets de la chaîne. Utilisez donc 10
pour l'ID client et 12
pour le code secret du client.
Provisionner l'utilisateur de l'API
Pour provisionner un utilisateur d'API au démarrage, assurez-vous de disposer d'un fichier provision.yml
qui inclut votre clé de licence et votre URL d'hôte dans le répertoire looker
. Exemple :
license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
Créez un fichier nommé api-provision.yml
avec les autorisations 0600
dans le répertoire looker
, qui inclut les informations utilisateur de l'API. Exemple :
user:
first_name: "Ariel"
last_name: "Q"
client_id: "M9hZb8vRh9bSZzdPxw42"
client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"
Nous vous recommandons de stocker ces identifiants dans un gestionnaire de secrets en dehors de ce fichier, car il sera supprimé au démarrage une fois que l'instance Looker aura traité et créé l'utilisateur dans la base de données.
Au démarrage, si l'instance est vide et qu'aucun utilisateur n'est présent, Looker crée un utilisateur de l'API Looker administrateur avec ces identifiants et supprime le fichier api-provision.yml
du disque.
Vous disposez ensuite de 30 minutes pour utiliser ces identifiants pour effectuer un provisionnement supplémentaire avant qu'ils ne soient supprimés de la base de données interne et ne soient plus utilisables. Supprimer ces identifiants initiaux évite de créer une porte dérobée durable dans l'application et limite le cas d'utilisation prévu au provisionnement.