Skip to the content

Using Google to Authenticate with SharePoint 2013

​​Having an on-premise SharePoint extranet is a great first step towards external collaboration, but giving out Windows credentials isn't a long term solution to managing external accounts. Active Directory federation isn't within the capabilities of many small businesses. One solution is to allow partners to login with their own cloud credentials, in this instance managed by Google, enabled by Azure.​

Step 1: Create Google Account

  • ​Go to the Google developers console  ​
  • Sign in if you have an account, otherwise create an account and log in
  • Click on Create Project
  • Enter a name for your project e.g. SharePoint Authentication and click Create

The project will now be created it will take a few seconds and then you will be taken into the app.

  • Click on APIs & auth
  • Click on Consent Screen
  • Enter a name for your project and click Save
  • Click on Credentials
  • Click on Create new Client ID
  • Select Web application and click on Create Client ID
  • Copy the Client ID and Client secret from the screen that is displayed

Step 2: Create Windows Azure Access Control Namespace

  • Select App Services, Active Directory and finally Access Control
  • Enter a name for your access control namespace, select the region you are in and click Create
  • Click on Active Directory from the navigation menu on the left
  • Click on Access Control Namespaces
  • Select the namespace that you have just created and click on Manage

Step 3: Configure Access Control Service

  • Click on Identity providers
  • Click on Add
  • Select Google and click on Next
  • Enter the Client ID and Client secret that you copied from your Google app in step 1 and click Save
  • Click Relying party applications
  • Click on Add
  • Enter a name for the replying party application in the name field
  • In Realm enter the URL of your SharePoint web application
  • In return URL enter the URL of your SharePoint web application followed by /_trust
  • In the token format select SAML 1.1
  • Change the token lifetime (secs) to 700 and click Save
  • Click on Rule Groups
  • Click on Add
  • Enter a name for the rule group and click Save
  • Click on Generate
  • Select     Google     and click on Generate
  • Click Save

Step 4: Certificates and Keys

  • Click on Certificates and Keys
  • Click on Save
  • Select your relying party application from the drop down list (You created it in step 3)
  • On the page copy the MakeCert command
  • On your client machine you will need to generate a certificate to be used for the trust. Launch a command prompt as administrator, navigate to the directory where makecert is installed and run the copied command.
  • If you don't have makecert you can get it from here: makecert
  • The certificate will be deployed to your certificate store, you will need to export a .CER and .PFX.
  • Click on start > run, enter MMC and click OK
  • In the console click on File > Add/Remove Snap-in
  • Select certificates and click Add
  • Select My user account and click finish
  • Click Ok
  • Expand Certificates – Current User
  • Expand Personal
  • Select Certificates
  • In the certificates list you should see your new certificate
  • Right click on the certificate, select All tasks > Export
  • Click next
  • Select No, do not export the private key and click next
  • Click next leaving the defaults
  • Click browse, enter a suitable name for the certificate e.g. Auth and save the file somewhere suitable.
  • Click Save
  • Click Next
  • Click Finish
  • Click OK on the success message
  • Right click on the certificate, select All tasks > Export
  • Click next
  • Select Yes, export the private key and click next
  • Click next leaving the defaults
  • Select Password and enter a password (remember this you will need it) and click next.
  • Click browse, enter a suitable name for the certificate e.g. Auth and save the file somewhere suitable.
  • Click Save
  • Click Next
  • Click Finish
  • Click OK on the success message
  • Return to your access control service browser window.
  • Click on Browse
  • Browse to the .pfx file you created in the previous step and click open
  • Enter the password and click Save

Step 5: SharePoint Configuration

  • Logon to your SharePoint server
  • Copy the .cer file you created in a previous step to the server
  • Open the SharePoint Management Shell as administrator
  • Run the following PowerShell commands

    $realm="http://my.sharepoint.com"

  • Where the url is the url of your SharePoint web application

    $signinurl="https://mysharepointlogin.accesscontrol.windows.net:443/v2/wsfederation?wa=wsignin1.0&wtrealm=https://my.sharepoint.com/"

     
  • Replacing the highlighted sections with your access control service URL and your web application URL

    $certlocation="C:\Certificates\auth.cer"

  • Replacing the path with the location of your .cer file

    $rootcertificate=Get-PfxCertificate$certlocation

    New-SPTrustedRootAuthority"MyGoogleSharePointLogin"-Certificate$rootcertificate

    $certificate=New-ObjectSystem.Security.Cryptography.X509Certificates.X509Certificate2($certlocation)

    $ClaimTypingMapping=New-SPClaimTypeMapping-IncomingClaimType"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"-IncomingClaimTypeDisplayName"Email"-SameAsIncoming

    New-SPTrustedIdentityTokenIssuer-Name"Google Authentication"-Description"Google Authentication"-Realm$realm-ImportTrustCertificate$certificate-ClaimsMappings$ClaimTypingMapping-SignInUrl$signinurl-IdentifierClaim"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"

 

  • Once you have run the PowerShell commands you will need to add the identity provider to your web application.
  • Open SharePoint Central Administration
  • Click on Application Management
  • Click on Manage Web Applications
  • Select the Web Application that will be using Google for authentication
  • Click on authenticationproviders in the toolbar
  • Select the relevant zone, this will be default if you only have one zone.​​
  • Scroll down the window, select Trusted Identity provider and select Google Authentication

 

Step 6: Testing

  • Open a web browser and navigate to your root site collection on the web application. You should get a drop down list showing the logon options.
  • Select Google Authentication and you should get the Google authentication page.
  • ​​​Enter your google credentials and click sign in.
  • You should be returned to your SharePoint page. You will probably be given an access denied message because the account has not been given any rights to your site. Just grant rights as you would normally.
  • When granting rights to Google users you will need to use the full email address. People picker will not resolve the name unless the user is already added but you will still be able to add new users.

About the author

Fuse

Fuse is a Microsoft Partner, based in Northampton. We help organisations of all sizes to maximise IT efficiencies through the use of Microsoft cloud computing solutions.

Let’s talk. We’d love to hear from you.