2nd sso method for nextcloud with opneidconnect
This commit is contained in:
parent
6acf31c4d1
commit
9e326f8976
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
@ -101,3 +101,142 @@ You will be redirected to the API endpoint, showing you endpoits url and other i
|
||||
```
|
||||
|
||||
5. Don't forget to save
|
||||
|
||||
## SSO with OpenId Connect Login Plugin
|
||||
|
||||
### Configure Keycloak
|
||||
|
||||
#### Configure client in Keycloak
|
||||
|
||||
Use the same configuration than the solution with social login:
|
||||
|
||||

|
||||
|
||||
Just add Fine Grain OpenId Connect Configuration as above:
|
||||
|
||||

|
||||
|
||||
#### Configure mapper for quota
|
||||
|
||||

|
||||
|
||||
#### Configure mapper for roles
|
||||
|
||||

|
||||
|
||||
#### Configure quota for user
|
||||
|
||||

|
||||
|
||||
### Use OpenId Connect Login Plugin
|
||||
|
||||
#### Install the plugin
|
||||
|
||||
OpenID connect Login is a plugin made by pulsejet that can be found in Nextcloud AppStore.
|
||||
|
||||
#### Configure Nextcloud
|
||||
|
||||
Configuration of the plugin can only be made by modifying `config.php`.
|
||||
|
||||
```
|
||||
$CONFIG = array (
|
||||
// Some Nextcloud options that might make sense here
|
||||
'allow_user_to_change_display_name' => false,
|
||||
'lost_password_link' => 'disabled',
|
||||
|
||||
// URL of provider. All other URLs are auto-discovered from .well-known
|
||||
'oidc_login_provider_url' => 'https://keycloak.domain.ext/auth/realms/YOUR-REALM',
|
||||
|
||||
// Client ID and secret registered with the provider
|
||||
'oidc_login_client_id' => 'nextcloud.domain.ext', // Client ID, Step 1
|
||||
'oidc_login_client_secret' => 'secret', // Client Secret: Got to Clients -> Client -> Credentials
|
||||
|
||||
// Automatically redirect the login page to the provider
|
||||
'oidc_login_auto_redirect' => true,
|
||||
|
||||
// Redirect to this page after logging out the user
|
||||
'oidc_login_logout_url' => 'https://keycloak.domain.ext/auth/realms/YOUR-REALM/protocol/openid-connect/logout?&redirect_uri=http%3A%2F%2Fnextcloud.domain.ext%2F',
|
||||
|
||||
// Quota to assign if no quota is specified in the OIDC response (bytes)
|
||||
'oidc_login_default_quota' => '1000000000',
|
||||
|
||||
// Login button text
|
||||
'oidc_login_button_text' => 'Log in with OpenID',
|
||||
|
||||
// Attribute map for OIDC response. Available keys are:
|
||||
// i) id: Unique identifier for username
|
||||
// ii) name: Full name
|
||||
// iii) mail: Email address
|
||||
// iv) quota: Nextcloud storage quota
|
||||
// v) home: Home directory location. A symlink or external storage to this location is used
|
||||
// vi) ldap_uid: LDAP uid to search for when running in proxy mode
|
||||
// vii) groups: Array or space separated string of NC groups for the user
|
||||
//
|
||||
// The attributes in the OIDC response are flattened by adding the nested
|
||||
// array key as the prefix and an underscore. Thus,
|
||||
//
|
||||
// $profile = [
|
||||
// 'id' => 1234,
|
||||
// 'attributes' => [
|
||||
// 'uid' => 'myuid'
|
||||
// ]
|
||||
// ];
|
||||
//
|
||||
// would become,
|
||||
//
|
||||
// $profile = [
|
||||
// 'id' => 1234,
|
||||
// 'attributes_uid' => 'myuid'
|
||||
// ]
|
||||
//
|
||||
'oidc_login_attributes' => array (
|
||||
'id' => 'preffered_username',
|
||||
'name' => 'name',
|
||||
'mail' => 'email',
|
||||
'quota' => 'ownCloudQuota',
|
||||
'home' => 'homeDirectory',
|
||||
'ldap_uid' => 'uid',
|
||||
'groups' => 'ownCloudGroups',
|
||||
),
|
||||
|
||||
// Default group to add users to (optional, defaults to nothing)
|
||||
'oidc_login_default_group' => 'oidc',
|
||||
|
||||
// Use external storage instead of a symlink to the home directory
|
||||
// Requires the files_external app to be enabled
|
||||
'oidc_login_use_external_storage' => false,
|
||||
|
||||
// Set OpenID Connect scope
|
||||
'oidc_login_scope' => 'openid profile',
|
||||
|
||||
// Run in LDAP proxy mode
|
||||
// In this mode, instead of creating users of its own, OIDC login
|
||||
// will get the existing user from an LDAP database and only
|
||||
// perform authentication with OIDC. All user data will be derived
|
||||
// from the LDAP database instead of the OIDC user response
|
||||
//
|
||||
// The `id` attribute in `oidc_login_attributes` must return the
|
||||
// "Internal Username" (see expert settings in LDAP integration)
|
||||
'oidc_login_proxy_ldap' => false,
|
||||
|
||||
// Disable creation of new users from OIDC login
|
||||
'oidc_login_disable_registration' => true,
|
||||
|
||||
// Fallback to direct login if login from OIDC fails
|
||||
// Note that no error message will be displayed if enabled
|
||||
'oidc_login_redir_fallback' => true,
|
||||
|
||||
// Use an alternative login page
|
||||
// This page will be php-included instead of a redirect if specified
|
||||
// In the example below, the PHP file `login.php` in `assets`
|
||||
// in nextcloud base directory will be included
|
||||
// Note: the PHP variable $OIDC_LOGIN_URL is available for redirect URI
|
||||
// Note: you may want to try setting `oidc_login_logout_url` to your
|
||||
// base URL if you face issues regarding re-login after logout
|
||||
// 'oidc_login_alt_login_page' => 'assets/login.php',
|
||||
|
||||
// For development, you may disable TLS verification. Default value is `true`
|
||||
// which should be kept in production
|
||||
'oidc_login_tls_verify' => true,
|
||||
);
|
||||
```
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user