Google Apps is a software-as-a-service platform (SAAS) that provides email, calendar, documents and other services. This connector uses the Google Apps provisioning APIs to create, add, delete and modify user accounts and email aliases.
Please note that only the Premium (paid) or Educational versions of Google Apps provide access to the provisioning APIs. This connector will not work on free Google Apps domains.
More information on Google Apps can be found here.
To install the Google Apps connector, add the bundle JAR file to a directory on your disk. If your application has a dedicated directory for connector bundles, put the file in that directory. For example, Apache Syncope looks for connector bundles in the configured bundles directory.
The Google Apps connector supports the following operations:
The following table lists all the configuration properties you can specify when setting up the Google Apps connector:
|domain||X||String||Internet domain name. See https://support.google.com/a/answer/177483?hl=en|
|clientId||X||String||Client identifier issued to the client during the registration process.|
|clientSecret||X||GuardedString||Client secret issued to the client during the registration process.|
|refreshToken||X||GuardedString||The refresh token allows you to get a new access token that is good for another hour. Refresh tokens never expire, they can only be revoked by the user or programatically by your app.|
|Search Projection||String||basic||What subset of fields to fetch for this user. Acceptable values are: basic (Do not include any custom fields for the user. Set as default), custom (Include custom fields from schemas requested in customFieldMask), full (Include all fields associated with this user).|
|Custom Schemas configuration||String|
JSON representation of a Resource Schema where you can specify your custom schemas (in order to see them during search you must set projection to value "full").
Obtaining the configuration parameter values
- Log in to your Google Apps Admin Console (at https://console.cloud.google.com/apis/credentials) and create new project.
In the ID client OAuth 2.0 section, create credentials, then download the related
- From the leftmost menu "API and enabled services" enable the "Admin SDK API".
For more information on these APIs, navigate to the Google Developers interface, and search for these APIs.
Download the Google Apps connector bundle
Change to the directory where you have downloaded the bundle and run the following command on the
client_secrets.json file that you obtained earlier in this procedure:
$ jar xvf net.tirasa.connid.bundles.googleapps-1.4.3.jar
$ java -jar net.tirasa.connid.bundles.googleapps-1.4.3-credentials-generator.jar /path/to/client_secrets.json
Request Url is https://accounts.google.com/o/oauth2/auth?client_id=xxxxx&redirect_uri=http://localhost:8080/code-processor&response_type=code&scope=https://www.googleapis.com/auth/admin.directory.group%20https://www.googleapis.com/auth/admin.directory.orgunit%20https://www.googleapis.com/auth/admin.directory.user%20https://www.googleapis.com/auth/apps.licensing&state=/profile
Opening browser in the current session.
This command opens the default browser (if not please use the link just after the log "Request url is"), and loads a screen on which you authorize consent to access the Google Apps account.
If you have recently created your Google Apps account, it might take some time (often two hours or more) to synchronize the data required for this access request to work. For additional information, refer to the Google documentation noted earlier.
When you have authorized consent, the browser returns a code, that is automatically ingested by an API exposed by the credentials-generator application.
If the process succeded, you should see in the browser (and also the logs of the credentials-generator application) a response similar to the following one:
"clientId" : "5x4x3x4x0x8x-cxlx3xsxcx8xixlxmx3x0xrxgx7x6x3x.apps.googleusercontent.com",
"clientSecret" : "0xhx9xrx8xdxqx9xDxjxUx3x",
"refreshToken" : "1x7xmxfx_yxuxNxUxFxjxVxVxkxXx3XxHxMxYxzx5xcxI"
You can now use the information above to populate the configuration properties as reported above.