Federation
The federation is created implicitedly by way of each instance installing the VO Federation app and configuring a common Community AAI. It is paramount at this stage of development that each instance manually adds all other instances as trusted instances to their configuration.
Before continuing please make sure the VO Federation app is properly installed and activated.
Enable sharing
Please navigate to /settings/admin/sharing
and activate the following settings:
- Allow users on this server to send shares to groups on other servers
- Allow users on this server to receive group shares from other servers
These settings are part of Nextcloud internal Federation Sharing.
Configuring Community AAIs
As the administrator user navigate to /settings/admin/community-aais
. The settings page allows you to create, update or delete one or more Community AAIs. Changes to active Community AAIs may affect existing shares or VO group memberships, see limitations
The Community AAI must implement the OIDC Authorization Code Flow.
OIDC settings
Setting | Description |
---|---|
Name | Application specific name |
Client ID | The client identifier issued to the client during the registration process |
Client secret | The client secret |
Authorization endpoint | The Authorization Endpoint performs Authentication of the End-User |
Token endpoint | To obtain an Access Token, an ID Token, and optionally a Refresh Token |
JWKS endpoint | Used for token validation |
Userinfo endpoint | The UserInfo Endpoint returns Claims about the authenticated End-User. |
Scope | Specifies what access privileges are being requested for Access Tokens |
Extra claims | Used to request individual Claims |
Attribute mapping
These settings define how the claims returned by the Userinfo endpoint are used by the app.
Setting | Description |
---|---|
User ID mapping | Claim used as Identifier for the End-User at the Issuer |
Display name mapping | Claim used to show End-User's name in displayable form |
Groups mapping | Claim used for VO group membership information |
Regex pattern | Regex pattern used to synthesize a VO group display name from the raw VO group membership information |
VO display names
The regex pattern is fed as pattern
to the PHP function preg_match. The text that matched the first captured parenthesized subpattern matches[1]
is used as the VO group display name.
Adding trusted instances
You need to list all instances that should receive outgoing shares. Omit your own instance. Use fully qualified URLs.
Limitations
- Changes to the OpenID Provider will cause all users to be disconnected and losing access to group shares until reconnection
- Changing the regex pattern is a safe operation
- Newly added instances will not receive existing shares