At line 4 changed one line |
__!!! Constraints__: It only works through __HTTP__ or __HTTPS__ protocol. __Authorization Code Flow__ is supported (Implicit Flow or Hybrid Flow are not supported). It requires __Enterprise License__.\\ |
__!!!Important__: Ensure that all {{''__(Required)__''}} fields are properly configured as outlined on this wiki page.\\ |
At line 6 added 8 lines |
__!!! Constraints__:\\ |
• It only works through __HTTP__ or __HTTPS__ protocol.\\ |
• __Authorization Code Flow__ is supported (Implicit Flow or Hybrid Flow are not supported).\\ |
• It requires __Enterprise License__.\\ |
• In __Preferences → Misc__, set the “__HTTP Redirect Base__” value to empty, as the default is “__DISABLED”__.{{''__(Required)__''}}\\ |
\\ |
[oidc_redirect_base_setting.png]\\ |
\\ |
At line 7 changed 4 lines |
The plugin requires the following IdP information and configuration:\\ |
• Client ID\\ |
• Client Secret: Authorization Code Flow requires it.\\ |
• Redirect URL: The redirect URL is the endpoint in your IdP application where the IdP directs the user after successful authentication. This URL receives the authorization code or access token as part of the authentication process. The redirect URL must target the CrushFTP server and conclude with __/SSO_OIDC/__. Like:\\ |
The plugin requires the following information and configurations from the IdP's __App Registration__:\\ |
• __Client ID__\\ |
• __Client Secret__: Authorization Code Flow requires it.\\ |
• __Redirect URL__: The redirect URL is the endpoint in your IdP application where the IdP directs the user after successful authentication. This URL receives the authorization code or access token as part of the authentication process. The redirect URL must target the CrushFTP server and conclude with __/SSO_OIDC/__. Like:\\ |
At line 23 added 5 lines |
__Apple__: Apple Sign-In requires different plugin settings because the client secret is generated using the private key, Key ID, and Team ID.\\ |
\\ |
[Apple Sign In Configuration/apple_oidc_config.png]\\ |
__!!!See details at__: [Apple Sign In Configuration]\\ |
\\ |
At line 17 changed one line |
__Microsoft__: Refer to the App registration (Ondrive Personal) section under: [OneDriveSetup] ensure the redirect URL is described above. |
__Microsoft__: Refer to the App registration (Ondrive Personal) section under: [OneDriveSetup] ensure the redirect URL is described above.\\ |
__Microsoft B2C__: Refer to the App registration section under: [Azure Active Directory B2C Configuration] ensure the redirect URL is described above.\\ |
At line 19 changed one line |
!!!2. Plugin Configuration\\ |
__Amazon Cognito__: Refer to the App registration section under: [Amazon Cognito Configuration] ensure the redirect URL is described above.\\ |
At line 35 added 4 lines |
__Dropbox__: Refer to the App registration section under: [Dropbox Integration] ensure the redirect URL is described above.\\ |
|
\\ |
!!!2. Plugin Configuration\\ |
At line 29 changed one line |
This HTTP URL is part of the OpenID Connect (OIDC) Discovery mechanism. It follows a standard called __RFC 5785__ ([https://datatracker.ietf.org/doc/html/rfc5785]), which defines the use of __.well-known__ URIs for discovering metadata about services. It queries this HTTP endpoint to configure itself dynamically, avoiding hard-coded values. The retrieved JSON document includes important endpoints and details like:\\ |
This HTTP(S) URL is part of the OpenID Connect (OIDC) Discovery mechanism. It follows a standard called __RFC 5785__ ([https://datatracker.ietf.org/doc/html/rfc5785]), which defines the use of __.well-known__ URIs for discovering metadata about services. It queries this HTTP(S) endpoint to configure itself dynamically, avoiding hard-coded values. The retrieved JSON document includes important endpoints and details like:\\ |
At line 56 added one line |
Apple: https://appleid.apple.com/.well-known/openid-configuration |
At line 49 changed one line |
You can reference a __local JSON file__ if the identity provider (IdP) does not support OpenID Connect but does support __OAuth 2.0__ (like Box cloud storage). Instead of specifying an HTTP URL, provide the path to a local JSON file, such as:\\ |
You can reference a __local JSON file__ if the identity provider (IdP) does not support OpenID Connect but does support __OAuth 2.0__ (like Box Cloud Storage). Instead of specifying an HTTP URL, provide the path to a local JSON file, such as:\\ |
At line 54 changed one line |
The JSON file should include the __authorization endpoint__ ({{''__(Required)__''}}). Example for Box cloud storage: |
The JSON file should include the __authorization endpoint__ {{''__(Required)__''}}. Example for Box cloud storage: |
At line 64 changed one line |
__Client ID__: Provide the Client ID (the unique identifier) of your IdP.\\ |
__Client ID__: Provide the Client ID (the unique identifier of your IdP's App registration) of your IdP.\\ |
At line 88 changed one line |
__Get Refresh Token__: It is used to access the user's cloud storage through the IdP. It adjusts the __Authorization URL__ by appending the following parameters:\\ |
__Get Refresh Token__: It is used for access the user's cloud storage through the IdP. It adjusts the __Authorization URL__ by appending the following parameters:\\ |
At line 102 changed one line |
__Microsoft__ does not require additional scopes for this purpose. Ensure that the __App Registration__ includes the __"Files.ReadWrite.All"__ permission, configured as either Delegated or Application. More info at [SharePoint Integration].\\ |
__Microsoft Azure App Registration__ does not require additional scopes for this purpose. Ensure the __App Registration__ includes the __"Files.ReadWrite.All"__ permission, configured as either Delegated or Application. More info at [SharePoint Integration].\\ |
At line 138 added 6 lines |
__Special Case for Microsoft Azure AD:__ When using __Microsoft Azure AD__ as the Identity Provider (IdP), a specific user endpoint is required to retrieve group information for the authenticated user:\\ |
{{{ |
https://graph.microsoft.com/v1.0/me |
}}} |
In this scenario, the plugin makes __an additional API call to this endpoint__ to fetch the user's __group membership__ details. The App registration must include the __Group.Read.All__ permission to enable access to group information.\\ |
\\ |
At line 227 changed 5 lines |
{{{ |
GDrive : gdrive://{oidc_client_id}~{oidc_client_secret_decoded}:{oidc_refresh_token}@www.google.com/ |
OneDrive: onedrive://{oidc_client_id}~{oidc_client_secret_encoded}:{oidc_refresh_token}@graph.microsoft.com/ |
DropBox : dropbox://{oidc_client_id}~{oidc_client_secret_decoded}:{oidc_refresh_token}@api.dropboxapi.com/ |
}}} |
{{{GDrive: gdrive://{oidc_client_id}~{oidc_client_secret_decoded}:{oidc_refresh_token}@www.google.com/}}}\\ |
It requires the scope:__https://www.googleapis.com/auth/drive__\\ |
\\ |
{{{ OneDrive: onedrive://{oidc_client_id}~{oidc_client_secret_encoded}:{oidc_refresh_token}@graph.microsoft.com/}}}\\ |
{{{DropBox: dropbox://{oidc_client_id}~{oidc_client_secret_decoded}:{oidc_refresh_token}@api.dropboxapi.com/ }}}\\ |
At line 237 changed one line |
The DMZ interface has a slightly different UI because IdP user validation is handled exclusively on the internal node. The DMZ must have identical settings to the internal node for the following parameters:\\ |
The DMZ's CrushOIDC plugin has a slightly different UI because IdP user validation is handled exclusively on the internal node. To function properly, the __DMZ must replicate the internal node's settings__ for the following parameters:\\ |
\\ |