From b2e891e477f4f483a5cd63dd0692d658f29c645e Mon Sep 17 00:00:00 2001 From: Francisco Barros <francisco.borges.aurindo.barros@cern.ch> Date: Mon, 12 Apr 2021 19:07:13 +0200 Subject: [PATCH 1/3] add oidc installation script --- scripts/oidc-install.sh | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 scripts/oidc-install.sh diff --git a/scripts/oidc-install.sh b/scripts/oidc-install.sh new file mode 100755 index 0000000..b5cd304 --- /dev/null +++ b/scripts/oidc-install.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# 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 + +# 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; + +echo "Setting OpenID Connect Geral Settings" +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; -- GitLab From 04a7ad22f2493e27f0b071da8fb631585f4b1848 Mon Sep 17 00:00:00 2001 From: Konstantinos Samaras-Tsakiris <konstantinos.samaras-tsakiris@cern.ch> Date: Tue, 13 Apr 2021 15:14:48 +0000 Subject: [PATCH 2/3] Apply 2 suggestion(s) to 1 file(s) --- scripts/oidc-install.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/oidc-install.sh b/scripts/oidc-install.sh index b5cd304..985b007 100755 --- a/scripts/oidc-install.sh +++ b/scripts/oidc-install.sh @@ -37,9 +37,9 @@ if [[ -z $ISSUER ]]; then fi # Setting Endpoints -authorizationEndpoint=$ISSUER"/protocol/openid-connect/auth" -tokenEndpoint=$ISSUER"/protocol/openid-connect/token" -userInfoEndpoint=$ISSUER"/protocol/openid-connect/userinfo" +authorizationEndpoint="$ISSUER/protocol/openid-connect/auth" +tokenEndpoint="$ISSUER/protocol/openid-connect/token" +userInfoEndpoint="$ISSUER/protocol/openid-connect/userinfo" # Enable OIDC on Drupal site @@ -54,7 +54,6 @@ drush config:set openid_connect.settings.generic settings.authorization_endpoint drush config:set openid_connect.settings.generic settings.token_endpoint $tokenEndpoint -y; drush config:set openid_connect.settings.generic settings.userinfo_endpoint $userInfoEndpoint -y; -echo "Setting OpenID Connect Geral Settings" 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; -- GitLab From 99f76fe89dedefc5492d324413b82e94ffe9c7c7 Mon Sep 17 00:00:00 2001 From: Francisco Barros <francisco.borges.aurindo.barros@cern.ch> Date: Tue, 13 Apr 2021 17:55:55 +0200 Subject: [PATCH 3/3] Applied suggestions --- scripts/oidc-install.sh | 60 -------------------------------------- scripts/site-install.sh | 64 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 62 deletions(-) delete mode 100755 scripts/oidc-install.sh mode change 100644 => 100755 scripts/site-install.sh diff --git a/scripts/oidc-install.sh b/scripts/oidc-install.sh deleted file mode 100755 index 985b007..0000000 --- a/scripts/oidc-install.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# 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 - -# 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; diff --git a/scripts/site-install.sh b/scripts/site-install.sh old mode 100644 new mode 100755 index 3b707db..3b3ac26 --- 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; + -- GitLab