Documentation

Introduction

Use this guide to enable the provisioning of end-users' iOS devices to access Google Apps without requiring the Google password or manual setup.

Prerequisites

1. Have iOS 5.0 or later devices

2. Create a Service Account with Google Apps (see Google Apps Configuration Steps below)

3. Delegate domain-wide authority to the Google Apps Service Account (see Google Apps Configuration Steps below)

4. Have a directory Service Account with read and write access for SecureAuth IdP

5. Create a New Realm for the iOS Google Apps Provision in the SecureAuth IdP Web Admin

6. Configure the following tabs in the Web Admin before configuring the Post Authentication tab:

  • Overview – the description of the realm and SMTP connections must be defined
  • Data – an enterprise directory must be integrated with SecureAuth IdP
  • Workflow – the way in which users will access this application must be defined
  • Registration Methods – the 2-Factor Authentication methods that will be used to access this page (if any) must be defined

Apple Configuration Configuration Steps

 

1. Download the Apple Configurator 2 from Apple

2. Click File > New Profile (or CMD + N)

3. In the General section, provide a Name for the profile, e.g. Gmail Profile

4. (OPTIONAL) Set the Organization, Description, and Consent Message fields to preferred values

5. Select Always from the Security dropdown

Exchange ActiveSync

 

6. In the Exchange ActiveSync section, provide an Account Name for the Exchange ActiveSync account, e.g. Gmail ACME

7. Set the Exchange ActiveSync Host to m.google.com

8. Check the Use SSL box

Leave the remaining fields blank as they are automatically populated during the provisioning process

9. Save (CMD + S; or close the window, which opens the prompt) the profile and keep the .mobileconfig file available for the SecureAuth IdP Configuration Steps (below)

Google Apps' API Configuration Steps
Create Project

 

1. Log into the Google Developers' Console , and navigate to IAM & Admin > Projects from the three bars menu

2. Select Create Project

These steps can also be completed by opening the Projects dropdown menu at the top, and selecting Create project

3. Provide a Project Name, and select an Organization if the project is not already being created within one

4. Click Create

Enable Admin SDK

 

5. In the Libraries section, search for Admin SDK, and select the option

6. On the Admin SDK page, click Enable

Create Service Account

 

7. On the API Manager page (accessible via the three bars menu), navigate to the Credentials section, and click Create Credentials

8. Select Service Account Key

Create Service Account Key

9. Select New service account from the Service Account dropdown, and provide a Service Account Name

10. Select Project > Owner from the Role dropdown

11. Select P12, and click Create

12. Save the p12 file that downloads, which is uploaded to the SecureAuth appliance (see steps below), note the Private Key Password, and click Close

Manage Service Account

 

13. On the Credentials page, click Manage Service Accounts

14. Click the three dots on the newly-created service account, and select Edit

Edit Service Account

 

15. Check Enable G Suite Domain-wide Delegation and provide a Product name for the consent screen

16. Click Save

Click Configure Consent Screen to set additional (optional) preferences for the consent page; or access the configuration at API Manager > Credentials > OAuth Consent Screen

 

Back on the Service Accounts page, a new DwD section appears for the service account

17. Click View Client ID

Credentials

 

18. Note the Client ID, which is used in the Google Apps Administrative Configuration Steps (below), and the Service Account email address, which is used in the SecureAuth IdP Configuration Steps (below)

Google Apps Administration Configuration Steps

 

19. Log into the Google Apps Administrative Console and select Security

Security - Advanced Settings

 

20. Under Advanced Settings, select Manage API Client Access

Manage API Client Access

 

21. Set the Client Name to the Client ID obtained in the Google Apps' API Configuration Steps (step 18)

22. Set the One or More API Scopes to https://www.googleapis.com/auth/admin.directory.user and click Authorize

SecureAuth IdP Configuration Steps
Data

This step is for Active Directory data stores only

1. In the Profile Fields section, map the directory field that contains the user's Gmail address to the SecureAuth IdP Property, e.g. Email 1

Be sure that the Gmail Address includes the domain name, e.g. user@company.com

2. Map the directory field that contains the user's Gmail password to the SecureAuth IdP Property, e.g Aux ID 1

3. Select Advanced Encryption from the Data Format dropdown, and check Writable

Click Save once the configurations have been completed and before leaving the Data page to avoid losing changes

Post Authentication

 

4. Select iOS Google Apps Provision from the Authenticated User Redirect dropdown in the Post Authentication tab in the Web Admin

5. An unalterable URL will be auto-populated in the Redirect To field, which will append to the domain name and realm number in the address bar (Authorized/iOSProvisionEmail.aspx)

6. A customized post authentication page can be uploaded, but it is not required

User ID Mapping

 

7. Select the SecureAuth IdP Property that corresponds to the directory field that contains the Gmail address (Email 1)

Google Apps Functions

8. Leave the Google Apps Domain Name field blank

9. Set the Admin Email to the Google Apps Administrative email account

10. Set the Service Email to the Service Account email address obtained from the Google Apps Steps above (step 18)

11. Click Choose File and select the p12 File obtained in the Google Apps Steps above (step 12)

12. Set the P12 Password to the Private Key Password obtained in the Google Apps Steps above (step 12)

13. Select Enabled from the Create User dropdown if SecureAuth IdP is to automatically create the Google Apps user account (if it does not already exist)

14. Select Enabled from the Sync Password dropdown if SecureAuth IdP is to conduct a one-way synchronization of the user's directory password to Google Apps

To synchronize on specific dates versus every time the password changes, map a directory field to the Ext. Sync Pwd Date property in the Data tab

If no field is mapped, the password will synchronize every time

Google Apps requires passwords with a minimum of 8 characters

15. Select Enabled from the Mail Forwarding dropdown if another email address will receive messages; select Disabled to disable the feature; or select Not Set if SecureAuth IdP is to not be included in this feature

16. Select the Profile Field that contains the user's Forwarding Email Address

iPhone / Android

 

17. Click Choose File to Upload new 3.0+ Template, and select the Gmail Profile file saved in the iOS Configuration Steps (step 12)

iOS Profile Provision for Google Apps

18. Select Aux ID 1 (or the Profile Property that contains the user's Gmail password) from the Email Password Mapping dropdown

19. Select True from the Sync Password Every Time to synchronize the password every time from Google Apps to the iOS device

If True is selected, and Random Password is selected from the Password Syncing dropdown (step 20 below), then only one iOS device can be used at a time

If False is selected, and Random Password is selected, then multiple iOS devices can be used at a time

If User Password is selected from the Password Syncing dropdown, then users can employ multiple iOS devices no matter the selection in this step

20. Select Random Password from the Password Syncing dropdown to provision the device with a Google password unknown to the user

Select User Password to provision the device with the user's Gmail password

21. Select True from the Generate Profile with Cert dropdown to generate a certificate with the profile (if connection requires it)

Click Save once the configurations are completed and before leaving the Post Authentication page to avoid losing changes

Forms Auth / SSO Token

 

22. Click View and Configure FormsAuth keys/SSO token to configure the token / cookie properties of this realm

These are optional configurations

 To configure this realm's token / cookie settings, follow these steps:
Forms Authentication

 

1. If SSL is required to view the token, select True from the Require SSL dropdown

2. Choose whether SecureAuth IdP will deliver the token in a cookie to the user's browser or device:

  • UseCookies enables SecureAuth IdP to always deliver a cookie
  • UseUri disables SecureAuth IdP to deliver a cookie, and instead deliver the token in a query string
  • AutoDetect enables SecureAuth IdP to deliver a cookie if the user's settings allow it
  • UseDeviceProfile enables SecureAuth IdP to deliver a cookie if the browser's settings allow it, no matter the user's settings

3. Set the Sliding Expiration to True if the cookie remains valid as long as the user is interacting with the page

4. Set the Timeout length to determine for how many minutes a cookie is valid

No configuration is required for the Name, Login URL, or Domain fields

Machine Key

 

5. No changes are required in the Validation field, unless the default value does not match the company's requirement

If a different value is required, select it from the dropdown

6. No changes are required in the Decryption field, unless the default value does not match the company's requirement

If a different value is required, select it from the dropdown

No configuration is required for the Validation Key or Decryption Key fields

Authentication Cookies

 

7. Enable the cookie to be Persistent by selecting True - Expires after Timeout from the dropdown

Selecting False - Session Cookie enables the cookie to be valid as long as the session is open, and will expire once the browser is closed or the session expires

No configuration is required for the  Pre-Auth CookiePost-Auth Cookie, or the Clean Up Pre-Auth Cookie fields

Click Save once the configurations are completed and before leaving the Forms Auth / SSO Token page to avoid losing changes