diff --git a/scripts/site-install.sh b/scripts/site-install.sh old mode 100644 new mode 100755 index 3b707db59424441b56d5bafcf4e161dd74e53356..3b3ac26f51da315eed56382091223dec27cf415e --- a/scripts/site-install.sh +++ b/scripts/site-install.sh @@ -1,5 +1,41 @@ -#!/bin/bash -set -exu +#!/bin/sh +#set -exu + +# Retrieve the variables to properly populate OIDC +usage() { echo "Usage: $0 [--id <ClientID>] [--secret <ClientSecret>] [--issuer <ISSUER>]" 1>&2; exit 1; } + + +# Options + +ARGS=$(getopt -o 'i:s:u:' --long 'id:,secret:,issuer:' -- "$@") || exit 1 + +eval "set -- $ARGS" + +while true; do + case "$1" in + (-i|--id) + ClientID="$2"; shift 2;; + (-s|--secret) + ClientSecret="$2"; shift 2;; + (-u|--issuer) + ISSUER="$2"; shift 2;; + (--) shift; break;; + (*) usage;; + esac +done + +if [[ -z $ClientID ]]; then + echo "missing openid connect cliend_id" + usage +fi +if [[ -z $ClientSecret ]]; then + echo "missing openid connect cliend_secret" + usage +fi +if [[ -z $ISSUER ]]; then + echo "missing issuer URL" + usage +fi # Change working directory to the drupal code cd /app @@ -7,3 +43,27 @@ cd /app # Install Drupal site echo "Installing Drupal site" drush site-install -y --config-dir=../config/sync --account-name=admin --account-pass=pass --account-mail=admin@example.com + + +# Setting Endpoints +authorizationEndpoint=$ISSUER"/protocol/openid-connect/auth" +tokenEndpoint=$ISSUER"/protocol/openid-connect/token" +userInfoEndpoint=$ISSUER"/protocol/openid-connect/userinfo" + +# Enable OIDC on Drupal site +echo "Enabling OpenID Connect module" +drush pm-enable openid_connect -y; + +echo "Setting OpenID Connect Generic Settings" +drush config:set openid_connect.settings.generic enabled true -y; +drush config:set openid_connect.settings.generic settings.client_id $ClientID -y; +drush config:set openid_connect.settings.generic settings.client_secret $ClientSecret -y ; +drush config:set openid_connect.settings.generic settings.authorization_endpoint $authorizationEndpoint -y; +drush config:set openid_connect.settings.generic settings.token_endpoint $tokenEndpoint -y; +drush config:set openid_connect.settings.generic settings.userinfo_endpoint $userInfoEndpoint -y; + +drush config:set openid_connect.settings always_save_userinfo true -y; +drush config:set openid_connect.settings connect_existing_users false -y; +drush config:set openid_connect.settings override_registration_settings true -y; +drush config:set openid_connect.settings user_login_display below -y; +