Google Identity Support
NOM server supports Single Sign-On (SSO) authentication using Google Identity.
|
Currently, only the grant type |
Set up Google Identity Application
To perform SSO with Google Identity, a Google Identity Application needs to be configured:
-
Under "APIs & Services", enable the Google+ API (for user profile information) and the Google Identity.
-
Configure the OAuth consent screen.
-
Create credentials of type OAuth Client ID for application type Web application, having Authorized JavaScript origins and Authorized redirect URIs set to
https://<NOM_SERVER_HOSTNAME>:<NOM_SERVER_PORT>. Record the resulting Client ID.
Configure NOM server for SSO
In addition to the common options, the following additional configuration options are required for setting up SSO with Google Identity.
| Command line argument | Environment variable name | Description | Example value |
|---|---|---|---|
|
|
Client ID of the Google Identity Application. |
|
|
|
Comma-separated list of scopes for the authentication request. |
|
|
|
Audience for validating the access token. It is usually the same as the client ID. |
|
Example configuration
The following is an example configuration using environment variables to set up a single SSO configuration named GOOGLE and disable username/password login.
|
Make sure to quote variable values containing special characters such as |
export APP_SSO_ACTIVE_CONFIGURATIONS=GOOGLE
export APP_USERNAME_PASSWORD_LOGIN_ENABLED=false
export APP_SSO_CONFIGURATIONS_GOOGLE_IDP_TYPE=GOOGLE_IDENTITY
export APP_SSO_CONFIGURATIONS_GOOGLE_GRANT_TYPE=IMPLICIT
export APP_SSO_CONFIGURATIONS_GOOGLE_DISPLAY_NAME="Login with Google"
export APP_SSO_CONFIGURATIONS_GOOGLE_CLIENT_ID=1234-abc.apps.googleusercontent.com
export APP_SSO_CONFIGURATIONS_GOOGLE_SCOPES=email,profile,openid
export APP_SSO_CONFIGURATIONS_GOOGLE_AUDIENCE=1234-abc.apps.googleusercontent.com
export APP_SSO_CONFIGURATIONS_GOOGLE_ADMIN_CHECK="email.contains('admins.my-org.com')"
export APP_SSO_CONFIGURATIONS_GOOGLE_READ_ONLY_USER_CHECK="email.contains('users.my-org.com')"
export LOGGING_LEVEL_COM_NEO4J_OPSMANAGER_SERVER_CONFIG=DEBUG
The same configuration can be provided as command line arguments when starting the NOM server, a fragment is shown below.
--app.sso.active-configurations=GOOGLE \
--app.username-password-login.enabled=false \
--app.sso.configurations.GOOGLE.idp-type=GOOGLE_IDENTITY \
--app.sso.configurations.GOOGLE.grant-type=IMPLICIT \
--app.sso.configurations.GOOGLE.display-name="Login with Google" \
--app.sso.configurations.GOOGLE.client-id=1234-abc.apps.googleusercontent.com \
--app.sso.configurations.GOOGLE.scopes=email,profile,openid \
--app.sso.configurations.GOOGLE.audience=1234-abc.apps.googleusercontent.com \
--app.sso.configurations.GOOGLE.admin-check="email.contains('admins.my-org.com')" \
--app.sso.configurations.GOOGLE.read-only-user-check="email.contains('users.my-org.com')" \
--logging.level.com.neo4j.opsmanager.server.config=debug