diff --git a/group_vars/prod b/group_vars/prod index 187b24ebc46f3be19e6f3620ed1d4c3071a2ed93..5f443b90283f27b0cae5425325762351b140f089 100644 --- a/group_vars/prod +++ b/group_vars/prod @@ -136,4 +136,5 @@ oauth_global: oidc_global: provider_url: https://uffd.warpzone.ms - logout_url: https://uffd.warpzone.ms/logout \ No newline at end of file + logout_url: https://uffd.warpzone.ms/logout + ldap_base_dn: "dc=warpzone,dc=ms" diff --git a/group_vars/test b/group_vars/test index 87d7ce1ebd3e1bba417306a27298720b95c1a348..f731e281e3ab0c90f71014279aec7ec32d68ebcd 100644 --- a/group_vars/test +++ b/group_vars/test @@ -47,10 +47,11 @@ oauth_global: oidc_global: provider_url: https://uffd.test-warpzone.de logout_url: https://uffd.test-warpzone.de/logout + ldap_base_dn: "dc=test-warpzone,dc=de" # Matrix Settings matrix: - domain: matrix.warpzone.ms - public_url: https://matrix.warpzone.ms - identity_server: https://matrix.warpzone.ms - notifications_room_id: "!QxrpmOPYwofaPFqKMY:matrix.warpzone.ms" \ No newline at end of file + domain: matrix.test-warpzone.de + public_url: https://matrix.test-warpzone.de + identity_server: https://matrix.test-warpzone.de + notifications_room_id: "!QxrpmOPYwofaPFqKMY:matrix.test-warpzone.de" diff --git a/host_vars/test-warpzone-de b/host_vars/test-warpzone-de index fb06a73293e96523ef1765a003d5de12f347d1d1..01ca519c5bde89064df4be16274f9be90ca70bbb 100644 --- a/host_vars/test-warpzone-de +++ b/host_vars/test-warpzone-de @@ -58,6 +58,7 @@ administratorenteam: - "void" - "sandhome" - "jabertwo" + - "supervirus" # Docker konfigurationen docker: diff --git a/keyfiles/supervirus.pub b/keyfiles/supervirus.pub new file mode 100644 index 0000000000000000000000000000000000000000..4e4b22f1630a316f60ea2f36f20bde6f085f9cec --- /dev/null +++ b/keyfiles/supervirus.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM6+Ex8TM4gP+Nph5Cy5zK6z2mceI9i7vsh0ec4oTfDC htk@ridcully \ No newline at end of file diff --git a/testserver/docker_matrix/tasks/main.yml b/testserver/docker_matrix/tasks/main.yml index 6a7bcd15c08928f6612eb9cbbd7b71dd5c684d3f..b7aac20eb539c5bf1a4f1db63e19df348278b3ff 100644 --- a/testserver/docker_matrix/tasks/main.yml +++ b/testserver/docker_matrix/tasks/main.yml @@ -3,6 +3,8 @@ - include_tasks: ../functions/get_secret.yml with_items: - { path: /srv/shared/noreply_email_pass, length: -1 } + - { path: /srv/matrix/uffd_api_secret, length: 32 } + - { path: /srv/matrix/ldap_bind_pw, length: 32 } - { path: /srv/matrix/matrix_macaroon_secret_key, length: 32 } - { path: /srv/matrix/matrix_registration_shared_secret, length: 32 } - { path: /srv/matrix/matrix_form_secret, length: 32 } @@ -30,6 +32,7 @@ group: "999" with_items: - "/srv/matrix/db/" + - "/srv/matrix/uffd-ldapd/" - name: Konfig-Dateien erstellen @@ -40,6 +43,7 @@ - docker-compose.yml - synapse-data/homeserver.log.config - synapse-data/homeserver.yaml + - uffd-ldapd/Dockerfile register: configs diff --git a/testserver/docker_matrix/templates/docker-compose.yml b/testserver/docker_matrix/templates/docker-compose.yml index fa57f24902160d1054e901f304430cc9a21090e5..9ed7e9f4d13074d030c89157986ca8d28c35f1eb 100644 --- a/testserver/docker_matrix/templates/docker-compose.yml +++ b/testserver/docker_matrix/templates/docker-compose.yml @@ -23,6 +23,18 @@ services: networks: - default + ldap: + + build: uffd-ldapd/ + restart: always + environment: + SERVER_API_URL: "{{ oidc_global.provider_url }}" + SERVER_API_USER: "matrixldap" + SERVER_API_SECRET: "{{ uffd_api_secret }}" + SERVER_BASE_DN: "{{ oidc_global.ldap_base_dn }}" + SERVER_BIND_PASSWORD: "{{ ldap_bind_pw}}" + networks: + - default synapse: @@ -32,6 +44,7 @@ services: cpuset: "0" depends_on: - db + - ldap volumes: - /srv/matrix/synapse-data/:/data environment: diff --git a/testserver/docker_matrix/templates/synapse-data/homeserver.yaml b/testserver/docker_matrix/templates/synapse-data/homeserver.yaml index dfe3b835e821eacf72696adbc52d06cb4d116a70..31bb416c5676caf19b915e4c3f021ffde03d5130 100644 --- a/testserver/docker_matrix/templates/synapse-data/homeserver.yaml +++ b/testserver/docker_matrix/templates/synapse-data/homeserver.yaml @@ -86,29 +86,41 @@ max_spider_size: 10M enable_registration: false password_config: - enabled: false + enabled: true +# OIDC Single Sign-On with uffd oidc_providers: - - idp_id: uffd - idp_name: uffd + - idp_id: "uffd" + idp_name: "warpzone SSO (uffd)" discover: true enable_registration: true allow_existing_users: true + user_profile_method: "userinfo_endpoint" issuer: "{{ oidc_global.provider_url }}" - client_id: "matrix" # TO BE FILLED - client_secret: "{{ matrix_oidc_secret }}" # TO BE FILLED + client_id: "matrix" + client_secret: "{{ matrix_oidc_secret }}" scopes: - "openid" - "profile" - "email" user_mapping_provider: config: - subject_claim: "preferred_username" - subject_template: "{% raw %}{{ user.preferred_username }}{% endraw %}" localpart_template: "{% raw %}{{ user.preferred_username }}{% endraw %}" display_name_template: "{% raw %}{{ user.name }}{% endraw %}" email_template: "{% raw %}{{ user.email }}{% endraw %}" +# Password login with uffd-ldapd +modules: + - module: "ldap_auth_provider.LdapAuthProviderModule" + config: + enabled: true + uri: "ldap://ldap:389" + start_tls: false + base: "ou=users,{{ oidc_global.ldap_base_dn }}" + attributes: + uid: "uid" + mail: "mail" + name: "displayName" auto_join_rooms: - "#warpzone:{{ matrix.domain }}" diff --git a/testserver/docker_matrix/templates/uffd-ldapd/Dockerfile b/testserver/docker_matrix/templates/uffd-ldapd/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c39c751ffa4e4807603d41a10ecba8da78910292 --- /dev/null +++ b/testserver/docker_matrix/templates/uffd-ldapd/Dockerfile @@ -0,0 +1,24 @@ +FROM debian:bookworm-slim + +# Set environment variables +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies and configure custom repository +RUN apt-get update \ + && apt-get install -y --no-install-recommends wget gnupg ca-certificates \ + && wget -O- "https://packages.cccv.de/docs/cccv-archive-key.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/cccv-archive-key.gpg \ + && echo "deb https://packages.cccv.de/uffd bookworm main" > /etc/apt/sources.list.d/custom.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends uffd-ldapd ldap-utils \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +USER 999 +EXPOSE 389/tcp + +# Set default command +CMD ["/usr/sbin/uffd-ldapd","--socket-address","0.0.0.0:389"] + +# Get all LDAP Entries +# ldapsearch -x -H ldap://127.0.0.1 -D "cn=service,ou=system,{{ oidc_global.ldap_base_dn }}" -w "{{ ldap_bind_pw }}" -b "ou=users,{{ oidc_global.ldap_base_dn }}" "(objectClass=*)" + diff --git a/webserver/docker_vpnserver/templates/docker-compose.yml b/webserver/docker_vpnserver/templates/docker-compose.yml index 21de9d125c829c71b59e95f5622b0c04c3993680..c27a8ec263c5b35d13247271394e00636e4a75f9 100644 --- a/webserver/docker_vpnserver/templates/docker-compose.yml +++ b/webserver/docker_vpnserver/templates/docker-compose.yml @@ -23,7 +23,7 @@ services: - "WG_VPN_CIDRV6=0" # to disable IPv6 - "WG_EXTERNAL_HOST={{ domain }}" - "WG_DNS_ENABLED=true" - - "WG_DNS_UPSTREAM=10.0.0.1" + - "WG_DNS_UPSTREAM=192.168.0.201" - "WG_LOG_LEVEL=info" labels: - traefik.enable=true