Identity Providers

What is an Identity Provider?

An identity provider (aka an IdP) is a service that manages and provides user identity through some method of authentication. IdPs are where a user has registered an account along with some kind of credential that the user can use to prove their identity to the IdP. The Idp then becomes the central hub for that user to access other systems that know how to integrate with that IdP. Online services like Google and Microsoft maintain an available IdP for their users. This means as a user of their service, you can authenticate to other 3rd party systems using Microsoft and Google account credentials. This can be convient because the user can now use your application or service without having to complete another complex registration process, they can simply attach their Google or Microsoft account to your application or service through Vault Vision. Vault Vision’s platform has developed these integrates with Google and Microsoft so that you don’t have to. See below for steps on how to add this functionality to your Vault Vision account.

Options

1. You can use the default Vault Vision applications at both Google and Microsoft. This will show the 'Vault Vision' brand as your users register their account with your application or service.

#### Or

2. You can create your own custom applications at Google and Microsoft and link them to the Vault Vision platform

How to register as an application with Google

  1. Create a Google Cloud Account You must have a Google login, if you don’t you can create one here: (https://accounts.google.com/)[https://accounts.google.com/]

  2. In a browser, navigate to the Google Cloud Platform management console (https://console.cloud.google.com)[https://console.cloud.google.com]

  3. In the right hand nav menu click APIs and Services > Credentials Navigate to APIs and Services  Credentials

  4. Now create a ‘project’, this is the core entity that will house your settings and give you a client id and client secret. We will call ours ‘Vault Vision Project’. ‘No organization’ will be just fine as a location Create a Project Enter Project Name

  5. Now ‘Configure Consent Screen’ Configure Consent Screen

  6. Set the User Type to ‘External’ User Type to External

  7. Edit App Registration: You will need to set the following fields:

  • App name

  • User support email

  • App logo

  • Authorized domains (You will need the (Google Search Console for this)[https://support.google.com/webmasters/answer/9008080?hl=en&ref_topic=9455938] )

  • Application home page

  • Application privacy policy link

  • Application terms of service link

  • Developer contact information

App Registration

  1. Add the scopes needed for authentication and to get user profile data and email address Scope Button Select the following scopes

  • ./auth/userinfo.email

  • ./auth/userinfo.profile

  • openid Scopes

  1. Add any test users you want to allow to test the integration with, these need to be real Google accounts Scopes

  2. Return to the dashboard for the ‘OAuth consent screen’ and ‘Publish App’ Publish

  3. Navigate to Credentials menu in the right hand nav and click ‘Create Credentials’ then ‘OAuth client ID’ to create your OAuth 2.0 Client ID and secret Credentials

  4. Select an ‘Application Type’ App Type

  5. Populate the Javascript Origins and Authorized redirect URIs

Set the Authorized JavaScript origins to the domain you used on your tenant, you can find that here at the top of the screen: (Vault Vision Management Panel)[https://manage.vaultvision.com/go#applications]

Set Authorized redirect URIs to exactly the below: https://callback.vvkey.io/oidc/callback

redirect URIs

In order for Google to allow you to interact with their Google user accounts, you will need to use your - ability to have and handle 2 incoming routes open to the internet over port 443 - ability to perform 302 redirects - ability to set and store 4 server-side variables (client_id, client_secret, base_url, your_callback_url). Most of the time these are stored as an environment or configuration variable. - (optional) ability to maintain a session, this needed assuming you want users to only authenticate once and be in some kind of logged in state. This could be a cookie, session server, or session specific cache. - (optional in the case of using a custom domain) ability to set a DNS CNAME for your custom domain that points to nextgenauth.vaultvision.com