2.5 KiB
title
| title |
|---|
| NextCloud |
What is NextCloud
From https://en.wikipedia.org/wiki/Nextcloud
:::note Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud is free and open-source, which means that anyone is allowed to install and operate it on their own private server devices. :::
:::warning This setup only works, when NextCloud is running with HTTPS enabled. :::
:::warning
In case something goes wrong with the configuration, you can use the URL http://nextcloud.company/login?direct=1 to log in using the built-in authentication.
:::
Preparation
The following placeholders will be used:
nextcloud.companyis the FQDN of the NextCloud install.authentik.companyis the FQDN of the authentik install.
Create an application in authentik and note the slug, as this will be used later. Create a SAML provider with the following parameters:
- ACS URL:
https://nextcloud.company/apps/user_saml/saml/metadata - Audience:
https://nextcloud.company/apps/user_saml/saml/acs - Issuer:
https://authentik.company - Service Provider Binding:
Post - Property mappings: Select all Autogenerated mappings.
You can of course use a custom signing certificate, and adjust durations.
NextCloud
In NextCloud, navigate to Settings, then SSO & SAML Authentication.
Set the following values:
- Attribute to map the UID to.:
urn:oid:0.9.2342.19200300.100.1.1 - Optional display name of the identity provider (default: "SSO & SAML log in"):
authentik - Identifier of the IdP entity (must be a URI):
https://authentik.company - URL Target of the IdP where the SP will send the Authentication Request Message:
https://authentik.company/application/saml/<application-slug>/sso/binding/redirect/
Under Attribute mapping, set these values:
- Attribute to map the displayname to.:
urn:oid:2.16.840.1.113730.3.1.241 - Attribute to map the email address to.:
urn:oid:0.9.2342.19200300.100.1.3 - Attribute to map the users groups to.:
member-of
Group Quotas
Create a group for each different level of quota you want users to have. Set a custom attribute, for example called nextcloud_quota, to the quota you want, for example 15 GB.
Afterwards, create a custom SAML Property Mapping with the name SAML NextCloud Quota.
Set the SAML Name to nextcloud_quota.
Set the Expression to return user.group_attributes.get("nextcloud_quota", "1 GB"), where 1 GB is the default value for users that don't belong to another group (or have another value set).