parent
9dc35e4f5d
commit
de29603e75
@ -1,35 +0,0 @@ |
|||||||
Enable SSO: |
|
||||||
|
|
||||||
``` |
|
||||||
( cd ../keycloak ; sudo docker-compose exec -T keycloak \ |
|
||||||
/opt/keycloak/bin/kcadm.sh \ |
|
||||||
create clients \ |
|
||||||
--realm master --user admin --password admin \ |
|
||||||
-r spacestation \ |
|
||||||
-f - ) <<EOF |
|
||||||
{ |
|
||||||
"clientId": "nextcloud", |
|
||||||
"rootUrl": "http://spacestation:9000/", |
|
||||||
"adminUrl": "http://spacestation:9000/", |
|
||||||
"redirectUris": [ "http://spacestation:9000/*" ], |
|
||||||
"webOrigins": [ "http://spacestation:9000" ], |
|
||||||
"clientAuthenticatorType": "client-secret", |
|
||||||
"secret": "nextcloud-secret" |
|
||||||
} |
|
||||||
EOF |
|
||||||
``` |
|
||||||
|
|
||||||
and configure the social login app: |
|
||||||
|
|
||||||
``` |
|
||||||
sudo docker-compose exec -u www-data -T nextcloud \ |
|
||||||
./occ app:install sociallogin \ |
|
||||||
&& sudo docker-compose exec -u www-data -T nextcloud \ |
|
||||||
./occ config:app:set sociallogin prevent_create_email_exists --value=1 \ |
|
||||||
&& sudo docker-compose exec -u www-data -T nextcloud \ |
|
||||||
./occ config:app:set sociallogin update_profile_on_login --value=1 \ |
|
||||||
&& sudo docker-compose exec -u www-data -T nextcloud \ |
|
||||||
./occ config:app:set \ |
|
||||||
sociallogin custom_providers \ |
|
||||||
--value='{"custom_oidc":[{"name":"keycloak","title":"Keycloak","authorizeUrl":"http://spacestation:8080/realms/spacestation/protocol/openid-connect/auth","tokenUrl":"http://spacestation:8080/realms/spacestation/protocol/openid-connect/token","displayNameClaim":"","userInfoUrl":"http://spacestation:8080/realms/spacestation/protocol/openid-connect/userinfo","logoutUrl":"","clientId":"nextcloud","clientSecret":"nextcloud-secret","scope":"openid","groupsClaim":"roles","style":"keycloak","defaultGroup":""}]}' |
|
||||||
``` |
|
@ -0,0 +1,75 @@ |
|||||||
|
#!/bin/bash |
||||||
|
die() { echo >&2 "$@" ; exit 1 ; } |
||||||
|
|
||||||
|
DIRNAME="$(dirname $0)" |
||||||
|
cd "$DIRNAME" |
||||||
|
[ -r env.production ] && source env.production |
||||||
|
[ -r ../env.production ] && source ../env.production |
||||||
|
|
||||||
|
sudo docker-compose exec -u www-data -T nextcloud \ |
||||||
|
./occ app:install sociallogin \ |
||||||
|
|| die "unable to install sociallogin app" |
||||||
|
|
||||||
|
sudo docker-compose exec -u www-data -T nextcloud \ |
||||||
|
./occ config:app:set sociallogin prevent_create_email_exists --value=1 \ |
||||||
|
|| die "unable to config sociallogin" |
||||||
|
|
||||||
|
sudo docker-compose exec -u www-data -T nextcloud \ |
||||||
|
./occ config:app:set sociallogin update_profile_on_login --value=1 \ |
||||||
|
|| die "unable to config sociallogin" |
||||||
|
|
||||||
|
BASE="https://$KEYCLOAK_HOSTNAME/realms/$REALM/protocol/openid-connect" |
||||||
|
SECRET="$(openssl rand -hex 20)" |
||||||
|
PROVIDER="$(jq -c . <<EOF |
||||||
|
{ |
||||||
|
"custom_oidc": [ |
||||||
|
{ |
||||||
|
"name": "keycloak", |
||||||
|
"title": "Keycloak", |
||||||
|
"clientId": "nextcloud", |
||||||
|
"clientSecret": "$SECRET", |
||||||
|
"authorizeUrl": "$BASE/auth", |
||||||
|
"tokenUrl": "$BASE/token", |
||||||
|
"userInfoUrl": "$BASE/userinfo", |
||||||
|
"logoutUrl": "", |
||||||
|
"displayNameClaim": "", |
||||||
|
"scope": "openid", |
||||||
|
"groupsClaim": "roles", |
||||||
|
"style": "keycloak", |
||||||
|
"defaultGroup": "" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
EOF |
||||||
|
)" |
||||||
|
|
||||||
|
sudo docker-compose exec -u www-data -T nextcloud \ |
||||||
|
./occ config:app:set \ |
||||||
|
sociallogin custom_providers \ |
||||||
|
--value="$PROVIDER" \ |
||||||
|
|| die "unable to set keycloak parameters" |
||||||
|
|
||||||
|
|
||||||
|
# create the keycloak side of the secret |
||||||
|
cd ../keycloak |
||||||
|
source env.production |
||||||
|
|
||||||
|
sudo docker-compose exec -T keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
create clients \ |
||||||
|
--server http://localhost:8080/ \ |
||||||
|
--user admin \ |
||||||
|
--password "$KEYCLOAK_ADMIN_PASSWORD" \ |
||||||
|
--realm master \ |
||||||
|
-r "$REALM" \ |
||||||
|
-f - <<EOF || die "unable to create client id" |
||||||
|
{ |
||||||
|
"clientId": "nextcloud", |
||||||
|
"rootUrl": "https://$NEXTCLOUD_HOSTNAME/", |
||||||
|
"adminUrl": "https://$NEXTCLOUD_HOSTNAME/", |
||||||
|
"redirectUris": [ "https://$NEXTCLOUD_HOSTNAME/*" ], |
||||||
|
"webOrigins": [ "https://$NEXTCLOUD_HOSTNAME" ], |
||||||
|
"clientAuthenticatorType": "client-secret", |
||||||
|
"secret": "$SECRET" |
||||||
|
} |
||||||
|
EOF |
Loading…
Reference in new issue