Added new fixes to SSO
This commit is contained in:
parent
2b153f37df
commit
df0a331f8f
@ -329,4 +329,13 @@ EOF
|
|||||||
/federated/bin/start authelia
|
/federated/bin/start authelia
|
||||||
|
|
||||||
docker exec --user 1000 gitea gitea admin auth add-oauth --name "Authelia" --provider "openidConnect" --key "gitea" --secret "$GITEA_CLIENT_SECRET" --auto-discover-url "https://authelia.$DOMAIN/.well-known/openid-configuration" --skip-local-2fa "true" --scopes "email profile" --group-claim-name "groups" --admin-group "admin" --restricted-group "guest"
|
docker exec --user 1000 gitea gitea admin auth add-oauth --name "Authelia" --provider "openidConnect" --key "gitea" --secret "$GITEA_CLIENT_SECRET" --auto-discover-url "https://authelia.$DOMAIN/.well-known/openid-configuration" --skip-local-2fa "true" --scopes "email profile" --group-claim-name "groups" --admin-group "admin" --restricted-group "guest"
|
||||||
|
|
||||||
|
cat >> /federated/apps/gitea/.env <<EOF
|
||||||
|
GITEA__oauth2_client__ENABLE_AUTO_REGISTRATION=true
|
||||||
|
GITEA__oauth2_client__USERNAME=email
|
||||||
|
GITEA__oauth2_client__ACCOUNT_LINKING=auto
|
||||||
|
EOF
|
||||||
|
|
||||||
|
/federated/bin/stop gitea
|
||||||
|
/federated/bin/start gitea
|
||||||
}
|
}
|
||||||
|
122
lib/jitsi.sh
122
lib/jitsi.sh
@ -604,7 +604,7 @@ JIBRI_XMPP_PASSWORD=
|
|||||||
#RESTART_POLICY=unless-stopped
|
#RESTART_POLICY=unless-stopped
|
||||||
|
|
||||||
# Jitsi image version (useful for local development)
|
# Jitsi image version (useful for local development)
|
||||||
#JITSI_IMAGE_VERSION=latest
|
JITSI_IMAGE_VERSION=stable-9646
|
||||||
ENABLE_SIMULCAST=false
|
ENABLE_SIMULCAST=false
|
||||||
ENABLE_RECORDING=1
|
ENABLE_RECORDING=1
|
||||||
ENABLE_LIVESTREAMING=1
|
ENABLE_LIVESTREAMING=1
|
||||||
@ -667,7 +667,7 @@ Here is your applications chart with on how to access this service:<br>
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tg-kwiq">Jitsi</td>
|
<td class="tg-kwiq">Jitsi</td>
|
||||||
<td class="tg-kwiq"><a href="https://jitsi.$DOMAIN" target="_blank" rel="noopener noreferrer"><span style="color:#340096">jitsi.$DOMAIN</span></a></td>
|
<td class="tg-kwiq"><a href="https://jitsi.$DOMAIN" target="_blank" rel="noopener noreferrer"><span style="color:#340096">jitsi.$DOMAIN</span></a></td>
|
||||||
<td class="tg-kwiq">admin@$DOMAIN<br>admin password above</td>
|
<td class="tg-kwiq">admin@$DOMAIN<br>admin password in panel</td>
|
||||||
<td class="tg-kwiq">All users in panel have access using user@$DOMAIN</td>
|
<td class="tg-kwiq">All users in panel have access using user@$DOMAIN</td>
|
||||||
<td class="tg-kwiq"><a href="https://documentation.federated.computer/docs/getting_started/welcome/" target="_blank" rel="noopener noreferrer"><span style="color:#340096">Click here</span></a></td>
|
<td class="tg-kwiq"><a href="https://documentation.federated.computer/docs/getting_started/welcome/" target="_blank" rel="noopener noreferrer"><span style="color:#340096">Click here</span></a></td>
|
||||||
<td class="tg-kwiq">Jitsi is a zoom replacement video conferencing solution</td>
|
<td class="tg-kwiq">Jitsi is a zoom replacement video conferencing solution</td>
|
||||||
@ -707,6 +707,29 @@ uninstall_jitsi() {
|
|||||||
# Delete the app directory
|
# Delete the app directory
|
||||||
rm -rf /federated/apps/jitsi
|
rm -rf /federated/apps/jitsi
|
||||||
|
|
||||||
|
# Delete the image
|
||||||
|
docker image rm jitsi/jvb:$JITSI_IMAGE_VERSION &> /dev/null
|
||||||
|
docker image rm jitsi/jicofo:$JITSI_IMAGE_VERSION &> /dev/null
|
||||||
|
docker image rm jitsi/prosody:$JITSI_IMAGE_VERSION &> /dev/null
|
||||||
|
docker image rm jitsi/web:$JITSI_IMAGE_VERSION &> /dev/null
|
||||||
|
|
||||||
|
# Delete the DNS record
|
||||||
|
docker exec pdns pdnsutil delete-rrset $DOMAIN jitsi A
|
||||||
|
|
||||||
|
# Uninstall the SSO configuration if it exists in authelia (authelia must exist too)
|
||||||
|
if [[ $(grep "### Jitsi" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then
|
||||||
|
sed -i '/### Jitsi/,/### /{/### PowerDNS/!{/### /!d}}' /federated/apps/authelia/data/config/idproviders.yml
|
||||||
|
sed -i '/### Jitsi/d' /federated/apps/authelia/data/config/idproviders.yml
|
||||||
|
/federated/bin/stop authelia
|
||||||
|
/federated/bin/start authelia
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -d "/federated/apps/jitsiopenid" ]]; then
|
||||||
|
cd /federated/apps/jitsiopenid && docker-compose -f docker-compose.yml -p jitsiopenid down &> /dev/null
|
||||||
|
rm -rf /federated/apps/jitsiopenid
|
||||||
|
docker image rm mod242/jitsi-go-openid:latest &> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
kill -9 $SPINPID &> /dev/null
|
kill -9 $SPINPID &> /dev/null
|
||||||
echo -ne "done.\n"
|
echo -ne "done.\n"
|
||||||
}
|
}
|
||||||
@ -716,3 +739,98 @@ start_jitsi() {
|
|||||||
|
|
||||||
echo -ne "done."
|
echo -ne "done."
|
||||||
}
|
}
|
||||||
|
configsso_jitsi() {
|
||||||
|
[ ! -d "/federated/apps/authelia" ] && failcheck "Authelia is not installed. You need this first before continuing."
|
||||||
|
[ ! -f "/federated/apps/authelia/data/config/idproviders.yml" ] && failcheck "Authelia idproviders.yml is missing."
|
||||||
|
[[ $(grep "### Jitsi" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]] && failcheck "Authelia already has a Jitsi configuration."
|
||||||
|
|
||||||
|
JITSI_JWT_APP_SECRET=$(create_password);
|
||||||
|
JITSI_CLIENT_SECRET=$(create_password);
|
||||||
|
#echo "$JITSI_CLIENT_SECRET" > /federated/apps/jitsi/.jitsiclient.secret
|
||||||
|
#chmod 600 /federated/apps/jitsi/.jitsiclient.secret
|
||||||
|
JITSI_CLIENT_SECRET_HASH=$(docker run -it --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --password $JITSI_CLIENT_SECRET | awk '{ print $2 }')
|
||||||
|
|
||||||
|
cat >> /federated/apps/authelia/data/config/idproviders.yml <<EOF
|
||||||
|
### Jitsi
|
||||||
|
- client_id: 'jitsi'
|
||||||
|
client_name: 'Jitsi'
|
||||||
|
client_secret: $JITSI_CLIENT_SECRET_HASH
|
||||||
|
consent_mode: 'implicit'
|
||||||
|
public: false
|
||||||
|
authorization_policy: 'one_factor'
|
||||||
|
redirect_uris:
|
||||||
|
- 'https://jitsi.$DOMAIN/jitsi-openid/callback'
|
||||||
|
scopes:
|
||||||
|
- 'openid'
|
||||||
|
- 'profile'
|
||||||
|
- 'email'
|
||||||
|
userinfo_signed_response_alg: 'none'
|
||||||
|
token_endpoint_auth_method: 'client_secret_basic'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Restart Authelia for changes to take the above configuration
|
||||||
|
/federated/bin/stop authelia
|
||||||
|
/federated/bin/start authelia
|
||||||
|
|
||||||
|
sed -i "s/AUTH_TYPE=.*/AUTH_TYPE=jwt/g" /federated/apps/jitsi/.env
|
||||||
|
sed -i "s/#JWT_APP_ID=.*/JWT_APP_ID=jitsi.$DOMAIN/g" /federated/apps/jitsi/.env
|
||||||
|
sed -i "s/#JWT_APP_SECRET=.*/JWT_APP_SECRET=$JITSI_JWT_APP_SECRET/g" /federated/apps/jitsi/.env
|
||||||
|
sed -i "s/#JWT_ACCEPTED_ISSUERS=.*/JWT_ACCEPTED_ISSUERS=jitsi/g" /federated/apps/jitsi/.env
|
||||||
|
sed -i "s/#JWT_ACCEPTED_AUDIENCES=.*/JWT_ACCEPTED_AUDIENCES=jitsi/g" /federated/apps/jitsi/.env
|
||||||
|
echo "TOKEN_AUTH_URL=https://jitsi.$DOMAIN/jitsi-openid/authenticate?state={state}&room={room}" >> /federated/apps/jitsi/.env
|
||||||
|
|
||||||
|
# Install Jitsi OpenID GO plugin
|
||||||
|
mkdir -p /federated/apps/jitsiopenid &> /dev/null
|
||||||
|
|
||||||
|
cat >> /federated/apps/jitsiopenid/docker-compose.yml <<EOF
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
jitsiopenid:
|
||||||
|
image: mod242/jitsi-go-openid:\${IMAGE_VERSION}
|
||||||
|
container_name: jitsiopenid
|
||||||
|
hostname: jitsiopenid.$DOMAIN
|
||||||
|
domainname: $DOMAIN
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
ipv4_address: 172.99.0.43
|
||||||
|
extra_hosts:
|
||||||
|
- "authelia.$DOMAIN:$EXTERNALIP"
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.srv-jitsiopenid.loadbalancer.server.port=3001"
|
||||||
|
- "traefik.http.middlewares.strip-jitsiopenid.stripprefix.prefixes=/jitsi-openid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.middlewares=strip-jitsiopenid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.service=srv-jitsiopenid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.jitsiopenid.rule=Host(\`jitsi.$DOMAIN\`) && PathPrefix(\`/jitsi-openid\`)"
|
||||||
|
- "traefik.http.routers.jitsiopenid.tls=true"
|
||||||
|
- "traefik.http.routers.jitsiopenid.tls.certresolver=letsencrypt"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /federated/apps/jitsiopenid/.env <<EOF
|
||||||
|
IMAGE_VERSION="latest"
|
||||||
|
JITSI_SECRET=$JITSI_JWT_APP_SECRET
|
||||||
|
JITSI_URL=https://jitsi.$DOMAIN
|
||||||
|
JITSI_SUB=jitsi.$DOMAIN
|
||||||
|
ISSUER_BASE_URL=https://authelia.$DOMAIN
|
||||||
|
BASE_URL=https://jitsi.$DOMAIN/jitsi-openid
|
||||||
|
CLIENT_ID=jitsi
|
||||||
|
SECRET=$JITSI_CLIENT_SECRET
|
||||||
|
PREJOIN=false
|
||||||
|
DEEPLINK=true
|
||||||
|
NAME_KEY=name
|
||||||
|
EOF
|
||||||
|
chmod 600 /federated/apps/jitsiopenid/.env
|
||||||
|
|
||||||
|
/federated/bin/stop jitsi
|
||||||
|
/federated/bin/start jitsi
|
||||||
|
/federated/bin/start jitsiopenid
|
||||||
|
}
|
||||||
|
74
lib/jitsiopenid.sh
Normal file
74
lib/jitsiopenid.sh
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Jitsiopenid Service
|
||||||
|
# This logic is in jitsi.sh (and used there) instead of here, but keeping this around anyway
|
||||||
|
|
||||||
|
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
get_appvars
|
||||||
|
|
||||||
|
config_jitsiopenid() {
|
||||||
|
echo -ne "\n* Configuring /federated/apps/jitsiopenid container.."
|
||||||
|
|
||||||
|
if [ ! -d "/federated/apps/jitsiopenid" ]; then
|
||||||
|
mkdir -p /federated/apps/jitsiopenid &> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > /federated/apps/jitsiopenid/docker-compose.yml <<EOF
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
jitsiopenid:
|
||||||
|
image: mod242/jitsi-go-openid:\${IMAGE_VERSION}
|
||||||
|
container_name: jitsiopenid
|
||||||
|
hostname: jitsiopenid.$DOMAIN
|
||||||
|
domainname: $DOMAIN
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
ipv4_address: 172.99.0.43
|
||||||
|
extra_hosts:
|
||||||
|
- "authelia.$DOMAIN:$EXTERNALIP"
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.srv-jitsiopenid.loadbalancer.server.port=3001"
|
||||||
|
- "traefik.http.middlewares.strip-jitsiopenid.stripprefix.prefixes=/jitsi-openid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.middlewares=strip-jitsiopenid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.service=srv-jitsiopenid"
|
||||||
|
- "traefik.http.routers.jitsiopenid.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.jitsiopenid.rule=Host(\`jitsi.$DOMAIN\`) && PathPrefix(\`/jitsi-openid\`) || Host(\`jitsi.$DOMAIN\`) && PathPrefix(\`/callback\`)"
|
||||||
|
- "traefik.http.routers.jitsiopenid.tls=true"
|
||||||
|
- "traefik.http.routers.jitsiopenid.tls.certresolver=letsencrypt"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
JWT_APP_SECRET=$(grep JWT_APP_SECRET /federated/apps/jitsi/.env | awk -F= '{ print $2 }')
|
||||||
|
JITSI_CLIENT_SECRET=$(cat /federated/apps/jitsi/.jisticlient.secret)
|
||||||
|
|
||||||
|
cat > /federated/apps/jitsiopenid/.env <<EOF
|
||||||
|
IMAGE_VERSION="latest"
|
||||||
|
JITSI_SECRET=$JITSI_SECRET
|
||||||
|
JITSI_URL=https://jitsi.$DOMAIN
|
||||||
|
JITSI_SUB=jitsi.$DOMAIN
|
||||||
|
ISSUER_BASE_URL=https://authelia.$DOMAIN
|
||||||
|
BASE_URL=https://jitsi.$DOMAIN
|
||||||
|
CLIENT_ID=jitsi
|
||||||
|
SECRET=$JITSI_CLIENT_SECRET
|
||||||
|
PREJOIN=false
|
||||||
|
DEEPLINK=true
|
||||||
|
NAME_KEY=name
|
||||||
|
EOF
|
||||||
|
chmod 600 /federated/apps/jitsiopenid/.env
|
||||||
|
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
||||||
|
start_jitsiopenid() {
|
||||||
|
# Start service with command to make sure it's up before proceeding
|
||||||
|
start_service "jitsiopenid" "nc -z 172.99.0.43 3001 &> /dev/null" "7"
|
||||||
|
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user