# SSO Configuration

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FbwXTt7lMt2SRRUyx9ArM%2FSSO%20Configuration.png?alt=media&#x26;token=1dff1394-4306-4296-8369-ab91274e5278" alt=""><figcaption></figcaption></figure>

Link11 WAAP provides the ability to log in using SSO (single sign-on). Configuration varies depending on the type of SSO: Okta, Microsoft, or Google.

## Set up Okta SSO

### **Step 1: register on** [**Okta**](https://www.okta.com/)**, and create an application**

Go to `https://{YOUR ACCOUNT}-admin.okta.com/admin/apps/active`

Click `Create App Integration` → `Create New App`

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FhMzPAPPt8VLnMPh84seQ%2FSSO-Okta-update1.png?alt=media&#x26;token=f87de940-fe50-442f-a7d2-551d933d278a" alt=""><figcaption></figcaption></figure>

#### **Set this attribute:**

*Sign-in redirect URI*:&#x20;

`https://<planet-name>.app.reblaze.io/auth/okta-oauth2-<planet-name>/authorization-code/callback`

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2F66Jbke1v0Uhc8Vs5n5vW%2FSSO-Okta-update2.png?alt=media&#x26;token=989d5fcc-8572-43d3-938e-74e0e4a21629" alt=""><figcaption></figcaption></figure>

### **Step 2: Create group**

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2F3AsKMAL1YcMC6a8eBRRT%2FSSO-Okta-update3.png?alt=media&#x26;token=5ca00849-03c5-48c6-a237-80a71d1856c2" alt=""><figcaption></figcaption></figure>

#### Example configs:

For planet URL: `https://rbzdevexample.dev.app.reblaze.io/prod/sso-configuration`

Redirect URI like:\
`https://rbzdevexample.dev.app.reblaze.io/auth/okta-oauth2-rbzdevexample.dev /authorization-code/callback`

### **Step 3: Add parameters to Link11**

On the WAAP SSO page (**System** -> **SSO Configuration**):

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FSjoxryG2S3ts7dulCNVy%2FSSO-Okta.png?alt=media&#x26;token=d20024f6-bf14-4b17-8306-2567d4833141" alt=""><figcaption></figcaption></figure>

Fill in the requested values. For `Issuer`, use your Okta account. For `IDP Group Claim`, use the group you created above in Step 2.

## Set up Microsoft Entra ID SSO

### **Step 1: Go to** [**Azure Portal**](https://azure.microsoft.com/en-us/account/) **→** `Enterprise applications`

### **Step 2. Create the application**

Choose `+ New Application` → `+ Create your own application`**:**

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FoAnt2IRq4bmcbGPtvNUb%2FSetup-Microsoft-Azure-SSO-1.png?alt=media\&token=130c770b-2f5d-4d59-9e9c-21951aaac2dc)

### **Step 3: Create the SSO app**

Select `Integrate any other application you don't find in the gallery (Non-gallery)`&#x20;

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FqU6YwPAAh1kSlYTzi9FV%2FSetup-Microsoft-Azure-SSO-2.png?alt=media\&token=4bcb26ae-e1e6-45e6-abc0-01c0d2c74d51)

### **Step 4: Select SAML method**

Go to `Single sign-on` section and choose `SAML`**:**

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FXJkm9iggrNyBCs94mnd4%2FSetup-Microsoft-Azure-SSO-3.png?alt=media\&token=b0ed4275-9b81-4f4a-b70c-4b77b5a7a698)

### **Step 5: Set up appropriate links**

Edit the `Basic SAML Configuration`:

* Set Azure's `Identifier (Entity ID)` to `<planet-name>.app.reblaze.io.` Alternately, a unique identifier can be entered (e.g., `customer_domain.com?sso=123`), without any "https\://" prefix. In either case, save a copy of this value somewhere; it will be needed again later.
* Set Azure's `Reply URL` to `https://<planet-name>.app.reblaze.io/auth/azure-saml2-<planet-name>/authorization-code/callback`

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FRfvCJteJApGzhxkvzyZR%2FSSO9%20entity%20ID%20and%20Reply%20URL.png?alt=media&#x26;token=a5c944df-3870-45d1-894d-1620e48b349c" alt=""><figcaption></figcaption></figure>

### Step 6: Add a user group claim

Edit `user.groups`:&#x20;

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2Fdtc4fcvbMA2LaBjsPQvA%2FSSO9%20user.groups.png?alt=media&#x26;token=45fca1df-49d4-4005-b933-5287636543ad" alt=""><figcaption></figcaption></figure>

Click on **`+`**`Add a group claim`, and choose:

* `All groups`
* Source attribute: `Group ID`

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FsWO9w1nCZoC1PzciZjhn%2FSetup-Microsoft-Azure-SSO-6.png?alt=media\&token=b81ee71a-8ae3-46d6-b205-51770e5df7de)

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FHJV90Vi1zZLPFPitutQ6%2FSetup-Microsoft-Azure-SSO-7.png?alt=media\&token=3558632b-6df4-48c7-9d4e-4b0f6a47383a)

### **Step 7: Add a user as a member of the application:**

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FJGXddjhOhKFAhxIXoxXX%2FSetup-Microsoft-Azure-SSO-8.png?alt=media\&token=cc22158e-6874-4a23-8017-51d6fd31a7f0)

### **Step 8: Get admin group ID**

Go to `Azure Active Directory` → `Groups`, and create a group.

![](https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FNvIIG6YAtmINJN399FRg%2FSetup-Microsoft-Azure-SSO-9.png?alt=media\&token=60ad1200-c226-4d3f-ad01-ca75a0740a46)

And assign a user to the group:

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FraSotxvtvqpHQT1oynXv%2Fimage.png?alt=media&#x26;token=0a55396a-add1-4511-86f1-29b123de55d7" alt=""><figcaption></figcaption></figure>

### Step 9: Get SAML 2 data for Reblaze

From Azure's `Single sign-on` section, copy the `Entity ID` (entered during a previous step) and `Login URL`:

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FptHUemNUIHA1QWdFCqGX%2FSSO9%20URLs.png?alt=media&#x26;token=52079f3f-8884-4e32-bec4-0697341b48df" alt=""><figcaption></figcaption></figure>

And from the Groups `Overview` section, copy the `Object Id`. This should be the same ID from Step 8.)

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2F3pZyyN8Zphf5HNCpl8CD%2FSSO2.png?alt=media&#x26;token=60ef8991-6118-4121-8ad5-ca142449d793" alt=""><figcaption></figcaption></figure>

Add these parameters to the Reblaze SSO page. For Reblaze's `IDP group claim`, use Azure's `Object Id`.

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2Fe7NvJ47Fdd3520ZfCjLr%2FSSO3.png?alt=media&#x26;token=861d9a0a-349e-4924-9219-759d753531d4" alt=""><figcaption></figcaption></figure>

## Set up Google SSO

### Step 1: Generate new OAuth credentials

1. Go to Google APIs & Services Credentials: <https://console.cloud.google.com/apis/credentials>
2. Click **Create Credentials** (shown below) -> **OAuth client ID**

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FBSiCsfp0zlDivHB10xdd%2FSSO6.png?alt=media&#x26;token=81ed7dc4-85a0-495c-bce1-d75e07672786" alt=""><figcaption></figcaption></figure>

### Step 2: Configure the new OAuth client ID

1. For **Application type**, select *Web application*
2. Specify a **Name** for this client ID. (This name is only shown in the Google Cloud console.)

### Step 3: Add authorized URIs

Define the domains and endpoints used by your planet to communicate with the OAuth 2.0 server:

* **Authorized JavaScript origins**: `https://<planet-name>.app.reblaze.io`
* **Authorized redirect URIs**: `https://<planet-name>.app.reblaze.io/auth/google-oauth2-<planet-name>/authorization-code/callback`

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FKI7q09QrJLf65giQwxG2%2FSSO-GCP-authorized%20URIs.png?alt=media&#x26;token=83d70a96-280e-44c1-af71-1789ae183861" alt=""><figcaption></figcaption></figure>

### Step 4: Create and get credentials

1. When you are done with the above steps, select **Create**. The new client ID will be created and displayed to you.
2. Copy the credentials (client id + client secret) for use in the following steps below.

### Step 5: Enable the Admin SDK API

1. Navigate to [https://console.developers.google.com](https://console.developers.google.com/)
2. In the **APIs & Services** menu, select **Library**
3. Search for "Admin SDK API", and select the result. The Admin SDK page will appear.
4. Select **ENABLE** if it isn't already enabled.

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FC6Wd4HSOv8uIgQBGNL9j%2FSSO-GCP-Enable-Admin-SDK.png?alt=media&#x26;token=e1d9b524-d6ea-4ba2-891c-088a08fc5d30" alt=""><figcaption></figcaption></figure>

### Step 6: Authorize the API client

1. Navigate to [admin.google.com](http://admin.google.com/)
2. Select **Security** -> **Settings**
3. At the bottom of the page, select **API access control**
4. Select **Domain wide delegation** -> **Manage domain wide delegation**
5. In the API Client section, select **Add New**
6. In the **Client Name** field, enter the client ID from Step 4 above.
7. In the **One or More API Scopes** field, enter this: `https://www.googleapis.com/auth/admin.directory.group.readonly`
8. Select **Authorize**

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2FrIxO2zQiqObtdKXuMRbN%2FSSO-GCP-API-scope.png?alt=media&#x26;token=4ad459d5-a502-4829-8ec2-4d70ab9e1a84" alt=""><figcaption></figcaption></figure>

### Step 7: Configure Reblaze SSO

Within the Reblaze console, go to the SSO page (**System** -> **SSO Configuration**).

* **Enabled**: if not already "on", toggle it
* **SSO login name**: choose a name for display within the console
* **Provider:** select `google`
* **OAuth2 Client id**: enter the client id obtained in Step 4
* **OAuth2 Client secret**: enter the client secret obtained in Step 4
* **Protocol**: select `oauth2`
* **JWT token group property name**: select `email`

### Step 8: Map groups

Every Reblaze user account has a role, with an Access Level that defines permissions. There are [four Access Levels](https://waap.docs.link11.com/console-walkthrough/users-management#user-parameters) available, with varying capabilities.&#x20;

When a user logs in via Google SSO, the system uses their Google Groups to determine which role they will have within Reblaze.

In this step, you will define (if necessary) and connect Google groups to Reblaze roles.

1. Determine how many roles are being used within your planet. (Some organizations will use all four, while others might not.)
2. Navigate to <https://groups.google.com/my-groups>. Consider the Groups that currently exist; would  any map well to a Reblaze role? For each role that does not currently have an appropriate Google Group, select **Create Group** and define one.
3. Return to the Reblaze SSO Configuration page. For each role being used, create a group map with:
   * An **IDP Group Claim** containing the email associated with the corresponding Google Group
   * The **Reblaze role**
4. SSO configuration within Reblaze is now complete. User management now consists of ensuring that each user is a member of the appropriate Google Group. For example: a Google Group has been created for `editors@reblaze.com`, and within Reblaze, this email address is mapped to the role of `Editor`.  Every user who should have Editor permissions can receive them merely by being added to the `editors@reblaze.com` Google Group.

<figure><img src="https://2966474948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcxktceFryDnM5HLHONr8%2Fuploads%2F1UVjfYFa2xx1c31ag2Sl%2FSSO10.png?alt=media&#x26;token=06466f4f-33df-4ea5-8810-aee734669264" alt=""><figcaption></figcaption></figure>

<br>

&#x20;
