Use Cases
HomeIntegrityControlManagement CenterSolutions
  • Get Started
  • Integrity | Access
    • Auth. methods
      • LDAP (Username/Password)
      • LDAP (Username/Password) + OTP (SMTP)
      • LDAP (Username/Password) + OTP (SMS)
      • Swedish BankID
      • Microsoft Entra ID (SAMLSPBroker)
      • Foregin eID (SAMLSPBroker)
    • Auth. methods (SAML)
      • One-Time Password (OATH)
      • Inera IdP (SITHS) (SAMLSPBroker)
      • ID-porten (Norway) (SAML IdP with OIDC RP)
      • Multiple SAML IdP's configured
        • Multiple JSON files
    • Auth. methods (OIDC)
      • Static values (OIDC) - Test only
      • Swedish BankID (OIDC)
      • UID/PWD (OIDC)
    • Auth. methods (MISC)
      • Selector filtering
      • AuthZ control
      • External links and Cancel location
    • Add a Federation or SAML SP
  • Integrity | Portal
    • Portal
  • Integrity | Enrollment
    • Software token (OATH)
    • Best practice configuration
  • Integrity | Radius
    • UID/OATH token
    • UID/Password/OATH token
    • UID/Password/SMTP
  • Integrity | API
    • Swedish Siths eID
    • Oath Token
  • Control | Applications
    • Password Reset
    • Password Reset for Entra ID
    • Password Reset for Google Workspace
  • OPERATION
    • Rolling upgrade - cluster
  • TROUBLESHOOTING
    • Wrong relaystate
  • Misc
    • Address configuration externally
    • ADFS
      • Protect Fortified ID apps
      • Install and configure Fortified ID ADFS adapter for Siths eID
      • Install and configure Fortified ID ADFS adapter for Oath
    • AWS
      • Protect AWS Cognito with eID MFA
      • Protect AWS IAM Identity Center with eID MFA
    • Customization
      • Overlay - WEB
      • Overlay - Portal
      • Overlay - Password Reset
      • Overlay - Enrollment
      • Logout page
    • Dependency-Track - protect with eID MFA and SSO
    • Digitala Nationella Prov (DNP) / Skolfederation
      • Active Directory Federation Services (ADFS) with BankID as step-up-method
      • Active Directory / LDAP with BankID as step-up-method
      • Entra ID (Azure AD) with BankID as step-up-method
      • Google with BankID as step-up-method
      • Generate eduPersonPrincipalName (eppn) and store in Google
      • Generate eduPersonPrincipalName (eppn) and store in Entra ID
      • Common configuration
    • Encrypt configuration secrets
    • Microsoft Entra
      • Protect Entra ID (Azure AD) with eID MFA
      • Entra External - Support for eID (SAML)
      • Entra External - Support for eID (OIDC)
    • Expressions
    • Google
      • Common configuration for Google Workspace - Directory API
      • Common configuration for Google Workspace - authentication for Fortified ID products
      • Delegated administration for Google Workspace - teacher updates student guardians
      • Delegated administration for Google Workspace - teacher updates student password
      • Protect Google Workspace with eID MFA
    • HTTPS
    • Protect sensitive data, such as social security numbers, through obfuscation
    • Reverse proxy
      • Install Apache Web Server on Windows
      • Add SSL certificate and enable https
      • Add a Fortified ID virtual host
    • Set AuthnContextClassRef
    • Wiki.js - OpenID Connect (OIDC)
Powered by GitBook
On this page
  • Prerequisite
  • Update the Google Workspace configuration
  • Update the configuration to map to your environment
  1. Misc
  2. Google

Common configuration for Google Workspace - Directory API

This document describes how to setup the Google Directory User API to allow Fortified ID products to perform CRUD operations. It also describes how to fetch custom attribute for mappings.

PreviousGoogleNextCommon configuration for Google Workspace - authentication for Fortified ID products

Last updated 10 months ago

Prerequisite

  • Google Workspace administration rights.

Update the Google Workspace configuration

Setup API for user lookup

  • Login to Google Workspace admin console () as an administrator for your domain

  • Open the API console ()

  • Create a new project. Name the project UserApiLookupsFor<Customer>. (Replace <Customer> with a customer identifier. Can be any string.) Leave the rest with default valiues.

  • Open (select) the newly created project

  • Select Enabled APIs & services

  • Click + Enable APIS and services

  • Search for Admin SDK API

  • Select Admin SDK API

  • Click Enable

  • Click on Admin SDK API

  • Click Credentials

  • Click Manage Service Accounts

  • Click +Create Service Account

  • Enter a name, userapi. Create

  • Click on the newly created Service Account

  • Click Keys

  • Click Add key -> Create new key

  • Select p12 format

  • Copy the private key password

  • Rename the downloaded p12 file to google_jwt_signer.p12

  • Place the p12 file on the Integrity Web / Password reset / Forms server (depending on your use case). Remove the file from your client.

  • Copy the service account email adress value (for example userapi@userapilookups.iam.gserviceaccount.com)

  • Navigate to Account->Admin roles

  • Click Assign Admin in the row representing the role User Management Admin

  • Click Assign Service account

  • Enter the service account email address

  • Click ADD

Fetch the schema and custom attribute

  • From the admin console, navigate to Directory->Users

  • Select More options->Manage custom attributes

  • Find the schema and attribute name for the social security number (or add a new custom attribute for that purpose). In the example below, the schema name is FortifiedID and the attribute name is personnummer.

  • (Store the social security number on the user objects, if it hasn't been provisioned already)

Update the configuration to map to your environment

Integrity Web

(This step is only required if the use case involves Integrity Web. If not, please skip this step).

Place the file google_jwt_signer.p12 in the folder customer/config/resources_internal/certificates/Google/. (Replace if a file already exists)

Open the file customer/config/globals.json. Change according to the instructions below.

  1. google

Set the proper values for your environment.

Set domain to your Google DNS domain.

Set serviceaccount to the value fetched in previous step.

Set custom_attribute to schema.attribute_name fetched in previous step.

Example:

"google": {
            "domain": "fortifiedid.se",
            "serviceaccount": "userapi@userapilookups.iam.gserviceaccount.com",
            "custom_attribute": "FortifiedID.personnummer"
        },
  1. keystore->google

Change the passwords (ssl_keystore_password and ssl_key_password) to the private key password fetched in previous step.

Example:

"google": {
            "ssl_keystore_path": "${globals.file_path.base_dir}/config/resources_internal/certificates/Google/google_jwt_signer.p12",
            "ssl_keystore_password": "Summer2022rr3",
            "ssl_key_alias": "privatekey",
            "ssl_key_password": "Summer2022rr3"
        }

Password reset

(This step is only required if the use case involves Password Reset. If not, please skip this step).

Place the file google_jwt_signer.p12 in the folder customer/config/resources_internal/certificates/Google/. (Replace if a file already exists)

Open the file customer/config/globals.json. Change according to the instructions below.

  1. google

Set the proper values for your environment.

Set serviceaccount to the value fetched in previous step.

Example:

"google": {
            "serviceaccount": "userapi@userapilookups.iam.gserviceaccount.com"
        },
  1. keystore->google

Change the passwords (ssl_keystore_password and ssl_key_password) to the private key password fetched in previous step.

Example:

"google": {
            "ssl_keystore_path": "${globals.file_path.base_dir}/config/resources_internal/certificates/Google/google_jwt_signer.p12",
            "ssl_keystore_password": "Summer2022rr3",
            "ssl_key_alias": "privatekey",
            "ssl_key_password": "Summer2022rr3"
        }

Forms

(This step is only required if the use case involves Forms. If not, please skip this step).

Place the file google_jwt_signer.p12 in the folder customer/config/resources_internal/certificates/Google/. (Replace if a file already exists)

Open the file customer/config/globals.json. Change according to the instructions below.

  1. google

Set the proper values for your environment.

Set domain to your Google DNS domain.

Set serviceaccount to the value fetched in previous step.

Set custom_schema_name to schema fetched in previous step.

Set custom_update_structure to match what should be sent to the Google API. Change the schema name and attribute names to match your environment.

Example:

"google": {
        "domain": "fortifiedid.se",
        "serviceaccount": "userapi@userapilookups.iam.gserviceaccount.com",
        "mapping_attribute": "orgDepartment",
        "custom_schema_name" : "FortifiedID",
        "custom_update_structure": {
            "customSchemas": {
                "FortifiedID": {
                    "mlsman1": "{{{request.malsman1}}}",
                    "mlsman2": "{{{request.malsman2}}}"
                }
            }
        }
    },
  1. keystore->google

Change the passwords (ssl_keystore_password and ssl_key_password) to the private key password fetched in previous step.

Example:

"google": {
            "ssl_keystore_path": "${globals.file_path.base_dir}/config/resources_internal/certificates/Google/google_jwt_signer.p12",
            "ssl_keystore_password": "Summer2022rr3",
            "ssl_key_alias": "privatekey",
            "ssl_key_password": "Summer2022rr3"
        }

Save the file.

Open the admin console ()

Set mapping_attribute to the google directory api attribute that connects the delegated admin with the users the admin should be able to manage. Please view for more info about attribute names.

https://admin.google.com
this Google documentation
https://admin.google.com
https://console.developers.google.com