This project provides an opens source Dropbox Authenticator plug-in for the Curity Identity Server. This allows an administrator to add functionality to Curity which will then enable end users to login using their Dropbox credentials. The app that integrates with Curity may also be configured to receive the Dropbox access token and refresh token, allowing it to manage resources in Dropbox.
- Curity Identity Server 7.0.2 and its system requirements
- Maven 3
- Java SDK v. 17 or later
The source is very easy to compile. To do so from a shell, issue this command: mvn package
.
To install this plug-in, either download a binary version available from the releases section of this project's GitHub repository or compile it from source (as described above). If you compiled the plug-in from source, the package will be placed in the target
subdirectory. The resulting JAR file or the one downloaded from GitHub needs to placed in the directory ${IDSVR_HOME}/usr/share/plugins/dropbox
. (The name of the last directory, dropbox
, which is the plug-in group, is arbitrary and can be anything.) After doing so, the plug-in will become available as soon as the node is restarted.
Note
The JAR file needs to be deployed to each run-time node and the admin node. For simple test deployments where the admin node is a run-time node, the JAR file only needs to be copied to one location.
For a more detailed explanation of installing plug-ins, refer to the Curity developer guide.
As described in the Dropbox documentation, you can create apps that use the Dropbox APIs as shown in the following figure:
Fill in all the required information as shown in above image.
When you view the app's configuration after creating it, you'll find the App Key
and App Secret
(click on show
to view it). These will be needed later when configuring the plug-in in Curity.
Dropbox will also display the OAuth2 Redirect URIs
in the new app's configuration. One of these need to match the yet-to-be-created Dropbox authenticator instance in Curity. The default will not work, and, if used, will result in an error. This should be updated to some URL that follows the pattern $baseUrl/$authenticationEndpointPath/$dropboxAuthnticatorId/callback
, where each of these URI components has the following meaning:
The easiest way to configure a new Dropbox authenticator is using the Curity admin UI. The configuration for this can be downloaded as XML or CLI commands later, so only the steps to do this in the GUI will be described.
Go to the
Authenticators
page of the authentication profile wherein the authenticator instance should be created.Click the
New Authenticator
button.Enter a name (e.g.,
dropbox1
). This name needs to match the URI component in the callback URI set in the Dropbox app.For the type, pick the
Dropbox
option:On the next page, you can define all of the standard authenticator configuration options like any previous authenticator that should run, the resulting ACR, transformers that should executed, etc. At the bottom of the configuration page, the Dropbox-specific options can be found.
The Dropbox-specific configuration is generated dynamically based on the configuration model defined in the Java interface.
Certain required and optional configuration settings may be provided. One of these is the
HTTP Client
setting. This is the HTTP client that will be used to communicate with the Dropbox OAuth server's token and user info endpoints. To define this, do the following:click the
Facilities
button at the top-right of the screen.Next to
HTTP
, clickNew
.Enter some name (e.g.,
dropboxClient
).
Back in the Dropbox authenticator instance that you started to define, select the new HTTP client from the dropdown.
In the
Client ID
textfield, enter theApp Key
from the Dropbox client app.In the
Client Secret
textfield, enter theApp Secret
from the Dropbox client app.
Once all of these changes are made, they will be staged, but not committed (i.e., not running). To make them active, click the Commit
menu option in the Changes
menu. Optionally enter a comment in the Deploy Changes
dialogue and click OK
.
Once the configuration is committed and running, the authenticator can be used like any other.
This plugin and its associated documentation is listed under the Apache 2 license.
Please visit curity.io for more information about the Curity Identity Server.
Copyright (C) 2018 Curity AB.