Configuring Github as an Identity Provider
The EmpowerID SSO framework allows you to register Github as an identity provider for the EmpowerID Web application. EmpowerID integrates with Github using the OAuth protocol to allow your users to log in to the EmpowerID portal using their Github account.
This topic describes how to configure an IDP connection for Github and is divided into the following activities:
Adding the Client ID and Client Secret to the Github OAuth Connection
Adding MFA Points to the Github OAuth Connection
Adding a Login tile for Github
Adding an IP Range
Testing the Connection
As a prerequisite to creating an SSO Connection for Github as an Identity Provider, you must have a Github account and register the EmpowerID web application for your organization in the Github Developer site. This creates a set of values known by Github and the EmpowerID Web application that allow the two to enter into a federated trust relationship. These values include the Client ID and the Client Secret (these values are generated by Github), as well as the Redirect URI (this value is entered by you to tell Github where to post the assertion of a user's identity to the EmpowerID Assertion Consumer Service).
For specific directions on registering EmpowerID as an application in Github, see the information provided by Github at https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps/.
When registering EmpowerID in Github, use the following URL as the Callback or Return URL, replacing "FQDN_OF_YOUR_EMPOWERID_SERVER" with the FQDN or fully resolvable DNS of the EmpowerID Web server in your environment.
https://FQDN_OF_YOUR_EMPOWERID_SERVER/WebIdPForms/oauth/v2Once the IDP Connection has been set up for Github, you can create a link similar to the one below to allow users to login to EmpowerID using Github.
https://FQDN_OF_YOUR_EMPOWERID_SERVER/WebIdPForms/Login/Portal/Github?returnUrl=%2FWebIdPForms%2FTo add the Client ID and Client Secret and to the Github OAuth Connection
From the Navigation Sidebar of the EmpowerID Web interface, expand Admin > SSO Connections and click OAuth.
From the OAuth Applications management page, click the OAuth Service Provider tab and then search for Github.
From the OAuth Service Provider grid, click the Github link.

In the External OAuth Provider Details page that appears, click the Edit button for the specific Github connection you want to edit. By default, EmpowerID includes one connection. However, you can add as many connections for Github as your organization needs.

In the OAuth Connection pane that appears, type the Client ID Github generated for your application in the Consumer Key field and the Secret in the Consumer Secret field.

Prepend the value of the Callback Url with the FQDN of your EmpowerID Web server, using the https scheme. For example, the FQDN of the EmpowerID Web server in our environment is "sso.empowersso.com" so the full Callback Url for our site is "https://sso.empowersso.com/webidpforms/oauth/v2".
Click Save to close the OAuth Connection pane.
Optionally, add any desired MFA points to the Github application by following the below steps.
To add MFA points to the Github application
From the External OAuth Providers page for Github, click the Provider Edit link at the top of the page.
In the MFA Point Value field, type the number of MFA points you want to give to users logging in with Github.
Click Save.
Next, add a login tile for Github to the desired IdP Domains. This allows your users to authenticate to EmpowerID with their Github credentials. If you have not set up an IdP Domain for your environment, you can do so by following the directions in the below drop-down.
To add a login tile for Github
From the Navigation Sidebar, expand Admin > Applications and Directories > SSO Connections and click SSO Components.
From the IdP Domains tab of the SSO Components page, click the link for the IdP Domain to which you want to add the login tile.
In the IdP Domain Details page that appears, click the External OAuth Providers tab and check the Github beside Github.

Click Save.
Now that the IdP Connections is configured, you can test it by following the below procedure.
To test the Github connection
From the Navigation Sidebar, expand IT Shop and clicking Workflows.
From the Workflows page, recycle the EmpowerID App Pools by clicking Recycle EmpowerID App Pools.

Log out of the EmpowerID Web application and navigate your browser to the domain name you configured for the Github IdP connection.
Click the Login using Github button.

This redirects your browser to the Github Login for the EmpowerID web application you created in Github. Enter your Github credentials and click Sign in.

Click Authorize.

Back in the EmpowerID Web interface, click Yes to indicate that you have an EmpowerID login.

Type your EmpowerID Login or Email in the form and click Submit. The EmpowerID Person must have a valid email address as EmpowerID sends a one-time password to that address.

Check your email for the one-time password.
Back in the EmpowerID Web interface, type the one-time password into the Password field of the One-Time Password Validation form and click Submit.
