# Okta setup

To set up SCIM in Okta for BirdCRM, first configure the SCIM connection and settings. For provisioning users with roles, you can either assign roles directly or push groups to BirdCRM Groups that have roles assigned to them.

This section is broken up into three parts to cover the initial SCIM setup and then the two role provisioning options:

* [SCIM setup](#scim-setup)
* [Direct role assignment](#direct-role-assignment)
* [Group-based role assignment](#group-based-role-assignment)

## SCIM setup

#### BirdCRM Steps

1. Navigate to the SCIM Settings page which is available [here](https://app.bird.com/settings/security/scim-settings) or by visiting **Settings** and clicking on the Security tab and then **SCIM Settings**.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcHLLFrgOthb05LR0QX_ezWbdcr-ROTRPVP0-gu2Vcq2SYbczxVLYJ0xBxxEVNVBr1sF0YQXRr7--IaFg5tPu9fH35vpPGncfyrulIWTEM047oRRwafRu5oAyB2sXO1-EtnQoKNKsv-TvS7zly7c1ak5z4?key=G4cws1tM_IONCfaBmekmJw" alt=""><figcaption></figcaption></figure>

2. Click on Copy next to the SCIM base URL and take a copy of the **Base URL** as you will need it to configure Okta in the next section.&#x20;
3. Click on **Add new access key** and fill out a meaningful **Name** and **Description** and click **Save**.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfb-z9OBenHZupkJjTSCqpDzDq_okp-xJZ_bHVhBsEaIFOD2VkhyCRa7S5Hrj4lBcIaMmMOjeo8R4aJ3rZ_6gWlUdFIMc-56Tc8_DdQFdP5OhX6ziLtQciM2IxbMyoJ2ycg7w2krIEBAjhPBjNxWYEaY88?key=G4cws1tM_IONCfaBmekmJw" alt="" width="375"><figcaption></figcaption></figure>

4. You will then be presented with your **Access Key**. Make sure you take a copy and save it securely as you will not be able to view it again and you will need it to configure Okta in the next section.&#x20;

#### Okta steps

1. Navigate to **Applications** and select **Create App Integration**. Select **SAML 2.0** and click **Next**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeA1IYmJeWC6eov7EnUasA8bholI1f43OzZP9sQ0QZRFN9FlYabKQdThQjuKPtV-LQQp9PWPGK2nb_RjWnoyHUYOgoaCBjVdUQl1Ji5nGxKOridtY5KBXH7g-s79LASjH-8GiJE4qj4oGSlDYapN0ebUcA?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

2. Give the application a name such as BirdCRM SCIM, an optional logo and tick ‘Do not display application icon to users’ as this will only be used to provision users and not login from. Click **Next**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXffmr7nVHyDJs1ngw58TDTiAVFPRuax5NpL4xIDmfyYtIEPHqK17spL-_pn0EcWppygJZwTKA-53JKi69-cMjuK4GUgx61d929DZ4TgDxD9sO3vxRBEbaRmZFkhr5QUMP-J2lNx8PrHQsNrReGxenu8C0I?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

3. In the next screen it is mandatory to complete the **Single Sign-on URL** and **Audience URI** but the values are not used so any valid value will suffice (e.g. <https://localhost>). The other value that must be set is the **Application username** which must be set to **Email**. Scroll down and click **Next**.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeF3WNBnhrEwb5NWWaG24o6jZMjLD1RolzzZBrl7V6YIijsy-LtSgntJdUjM6kXVVt1nw9hWLgJGbKdQjj4OZBHWV8vZxyTHeyjK_uvY0gYQB28UPPBk1kPac3xwRFBbaUbPjde81SVQeZCYX6sPCywHLo?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

4. On the next page select **This is an internal app that we have created** and click **Finish**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc7eALSqGaPi9bSkabTaE3x816L7oEBPgMtWRl1hWrSO6O2fdUv4VE_mrqL9Gs5n29AZp9cVw-kWG6BYAKGrRXxtDHYyCL0X42nLtb3ixqdnJpG-ziCz25-17EkS41-rDALTtvhPXw_SGZp1Rwvc3hHtw?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

5. The SAML app has been created. Now navigate to the **General** tab and select **Edit**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXemjHkeTOTRWD2Gj3Mk3MC5SWdMeyU46U2mQVU0L99K20uvbqH-9zLiIfPzU7SS_UizCRG7ADwUJMxq4_V4VltJ4Xo_h9-xP6idAYE5aqst3QvPs0IFaCLmnhNyMHLFtLo5HT1smZXvQdpA60dAWLnblvI?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

6. Select **SCIM** under **Provisioning** and click **Save**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdn3z1I-glIdPfG0eipBVlboGq8yu9huofrcyq_fMWOjEbbHapqHXsNgZMoNiIlopbeFy9yA0yEuRIUDgQ6wBxJLxzj7H6q918akEQYcxC8842u0Id7FZ5wHf70x-emLysYIo-W1-FY-XZ_ywGtiwJtEgE?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

7. A new **Provisioning** tab will appear. Select it and then select **Edit** under the **Integration Settings**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe1h_TW8JoMMimPwMAq-9-zaGcxUZMdsYpMuvzaFlZTHHyN1k7Igm_pLQrgk4ZXhLG65U3UbJU51akZr_vuZPLrrj9MAgaag03DKwt-EZyW3ppB1fAmW75VfFS9aCJLeePvijL1NLDbzXeAVT_5PVMQ28A?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

8. Complete the following fields and then click Test Connector Configuration:

* **SCIM connector base UR**L: SCIM base URL from Step 2. In the BirdCRM Instructions
* **Unique identifier field for users**: userName
* **Supported provisioning actions**: Import New Users and Profile Updates, Push New Users, Push Profile Updates, and Push Groups is optional if you would like to sync Okta groups to Groups in BirdCRM.&#x20;
* **Authentication Mode**: HTTP Header
* **Authorization**: The SCIM Access Key retrieved in Step 4. Of the BirdCRM Instructions.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf4TyuY9feP02P1WmGkcDFIxH5Mq6TR6BixWJoscElQR-xla5ievXW8S37svTUH2j6B8zJ4jo9Sh4NVieyIQCYtY25e6dNBk8LhwZi3doU4f__31HnszLT8vhCJoUezlzTOelCkf9ZDnygOMsKjn2sVgqs?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

9. The results of the **Test Connector Configuration** will be displayed and should look similar to this.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcyFREhGVsDnDXSY9ulc7kx2vAWmybgeQHMoJ4sjobCHUl8paU-EZcWM810dVs4QIxR6N6PEtfIG3fLXLqSdKKpiU_WSmgtYxTyrtwcsEK6z-Pf2bHmHMMdwIc3AuVn1WCQcUYdDAoo4DDStuTwmZwNksc?key=G4cws1tM_IONCfaBmekmJw" alt="" width="375"><figcaption></figcaption></figure>

10. Click on **Close** and given all required tests passed you will be able to click **Save**. If any of the required tests failed, please carefully double check the values you entered in Step 8. You will then be presented with this screen which means that the SCIM integration has been setup but no SCIM users or groups are configured or enabled yet

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfWVZwb9KGrxZ0MurBb0lvra81cWPqT6ub4nVh1yQ0PSPv7e29uxgHGhRcmUEqhjt8rb1ICw_MC4ra2Rhtxj76idqA_3yhJmREnzhh1dwSH4mxVpVUwLS_RiG_L6tJ-xtFSG5e2vfwJ1TanrFvVwmMp0HA?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

11. In order to enable SCIM, click on **Edit** and select **Enable for Create Users**, **Update User Attributes** and **Deactivate Users**. Click **Save**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcU65Up0D2llJqdJMANS7Nffj0T77tPTolar0R3OlwQ0F0zPyCWna1xGFZpFDcDHlfkyZ2OCdbWiPHp1hehnpNko4gp7fka1Jj1fRzCIpP-2SpRtG1dnrAx_bearNPGKZEZWt7j7n6kgLnREGrw6Fciig?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
At this stage, SCIM is set up and users can be assigned to the application via Individual or Group assignment. They will be created in your organization but won’t be assigned a role automatically, requiring manual role application for login access.

To automatically assign roles to users, you can:

* Use Push Groups and Groups in BirdCRM.
* Have roles directly assigned by Okta and SCIM.
  {% endhint %}

### Direct Role Assignment

Direct role assignment means that users will get roles assigned to their user in your organization directly from Okta.&#x20;

This is a flexible setup that can allow you to setup Groups in Okta that have one or more roles assigned to them and any users in that group will be assigned the role(s) assigned.&#x20;

Multiple role assignments across multiple groups are supported and will give the user the aggregate of all roles assigned across their groups.

{% hint style="warning" %}
One limitation of this approach is that you cannot assign a role to a specific Workspace or a group of Workspaces. To scope roles to Workspaces, use the Team-based Role Assignment method described below. Both methods can be combined if necessary.
{% endhint %}

In order to set up direct role assignments from Okta, you first need to retrieve the Role IDs and Role Names from BirdCRM and then setup the roles custom attribute in Okta to map to the Role IDs in BirdCRM.&#x20;

#### BirdCRM Steps&#x20;

1. To retrieve the Role IDs and Role Names from BirdCRM, first navigate to the **Access Roles** page [here](https://app.bird.com/settings/security/access-roles).&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc55JQ39D7nzhNU3h2WqAeOeD5qiX2cw4bkEkutXjZBT-xM6HGk0XG38IjMgveK_gNo7EybJL-cn7NtyqrPkqfy3i_EiIMw8CJJQbz8sQg2n8EIPvdIZIZnz-Kln_ydbYc_kdgklDA8NKWgADIgtXW8Ng?key=G4cws1tM_IONCfaBmekmJw" alt=""><figcaption></figcaption></figure>

2. Make a note of each role you would like to be able to assign from Okta and take a copy of the **Role ID** by clicking on the **Copy Role ID** button next to the role name (this will copy the Role ID to your clipboard). You can of course also leave this tab open and switch to it to copy each role details as required.&#x20;

#### Okta Steps

1. From the **Provisioning** tab of your BirdCRM SCIM SAML application in Okta, scroll down and click on **Go to Profile Editor** under your application name Attribute Mappings.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdTjWo_FYSutxulbryFcTAyE0vjPdEEMQkRwd9Tlbb97WyiwORP1BKaVCyzuazmugUwPh7-Y_dGa59AwvwLd78Q42vZZTuk4W85vz01UBh3QjomtAsCKslJsvLht7GgY4nBI49zEhheAN78W_LCySlLzTY?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

2. Click on **Add Attribute** in the Profile Editor.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXekgLHj0uvgfGfRjQdDAt8fncqb4ObGmDsQWWkFBvhqN9J5fMKwH4Is4hqEWa7u_abP9_M4dh1AgYKdrFyH5gjmzAFfxaUPp2cEStEXYWydZX7cdpFFmduKNkP6smq6DPJR3aVTD5LerVTdHEGlukOvEaA?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

3. Enter the following information into the Add Attribute dialog box:

* **Data type**: string array
* **Display name**: roles
* **Variable name**: roles
* **External name**: roles
* **External namespace**: `urn:ietf:params:scim:schemas:core:2.0:User`
* **Description**: Roles in BirdCRM
* **Enum**: Select Define enumeration list of values
* **Attribute type**: Group
* **Group priority**: Combine values across groups

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdwRoNUywbRGUd9t-KyVMwyc35mCi48mqrlZG16IFwfG8NZAqTf9998-Mh2nDXRQ6pMewRNYWqmVRmtBRkcPAd7_wpWTMVQcqUDBm3iCtJOvJg3NNYr_WoEeyTVv3TI3sH7P997v8--fLbS3zH9EdW18MY?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

4. The **Attribute members** section is where you fill out any **Roles** you want to be able to assign to users from Okta. The **Display Name** should be the **Role Name** but doesn’t have to match BirdCRM. The Value must be the UUID of the Role (Role ID) as this is what is used to match the role and assign it in BirdCRM.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdRvWZeoX9VkW_wGbVUDH9aVVmW-0UuVvFLDQFZyvC8amA5tOlx8FmJ8biv5dfVvIuiLKC4_wdwcKkgRP14EpO6Z0xRjNAobVQdT96VnH9aQEbXDj77yj8Nhauzw8VPvRwESnofpAGlD13J-INmSgBcsw?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

5. Once you have added the **Roles** you require under **Attribute Members** you can click **Save**.&#x20;
6. Now when you assign the BirdCRM SCIM application to a group or individual, you will be prompted to select one or more roles which will be automatically assigned to the users in the group (or individual user) via SCIM.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXexxR-C64dYFWrYv-jlNj7S91fT4lFK_rxwRGQ0N6-fxhiMvDX1kKnaQTz5wyiDrJMpbKQCjWqENgVfzu0pbjk9TkPCqgKfCt1HPXI36N44-QMeoC-cYxMklWuvGLyWbrscXhdD1hIjEoycdZyQtnyjDcQ?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

### Group-based role assignment

Group-based Role Assignments allow a lot of flexibility in how you manage your user’s access to BirdCRM. You can scope roles to one or more workspaces and create granular access which is automatically managed via Okta.&#x20;

In order to set up Group-based Role Assignment, you first need to push any groups to BirdCRM Groups and then assign the roles you would like per Group. Once you have the roles setup any users you add to the synced Okta groups will automatically receive the roles defined on the BirdCRM Groups.&#x20;

#### Okta Steps

1. Identify any Okta Groups you would like to push to your BirdCRM organization. For each group you would like to push/sync, make sure to assign your BirdCRM SCIM application to the Group. It is also a good idea to assign your BirdCRM SSO application to the group to make sure any users can also use that to login. This is not mandatory though.&#x20;
2. Next, navigate to the Push Groups tab of your BirdCRM SCIM application. If you do not see the Push Groups tab then you need to enable Push Groups which is described in Step 8. Of the SCIM Setup under the Okta Steps.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfbA5vSwgYL0Fb2EslsA7pSsvBVZsQhOOank6QxpLt5hjiNgG4rM7Z61gS8xkQpeScv9ASHs23GHy4kmPOwLaNaID37SmOa2bLQ2n5HKgLjlnN65Gn7MJE8RHxHPJ6cPHYdzx0lnNuhtloF6taqzXcx1A?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

3. Click on the **Push Groups** button and select either option. For the sake of simplicity we will select **Find groups by name** to select a single group to push to BirdCRM.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXecylvebFByLd5kXFRhEE7lq3OslXoUBf_ovbnP5-qskx5WPeFBH2DqRsPDOQI5RnY89keiOOEN_q49dV0h8uGFPvVqM8F81UUDQgMOaq0StqN-XaHPrGyJgT161e1I2WdlKIOcAyGsjIaDsQxMareufgI?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

4. Type in the name of the Okta group you would like to push to your BirdCRM organization and select it

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbtEyKsUkgbx1oV4o5tg_J4XNkL_4RxwgtQM3-eM6qi9HzobV5KbDEvxECeNHAbcenjGBYCudOyIazA7olExWLoMzjuZauEebVqJPSTmyZFpmqiWc3CeLeoSr0bNvtePMLqAa7DNP0Al6khD5NHIXTHLw?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

5. You can leave the settings as default to automatically create the group in your BirdCRM organization or modify as desired and then click **Save**.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsJ3EkN7wMjc-HjbWrk-fr-fdZ9GLtVr88UfO8sPiUISwYnSar0eNSxayhmX9n872BeBplCCgdbLvW9hUJFA08adiIa5od-IvkbOmBEnCBurOzBPMnZMGQ3p5NS8L-HxpBoFtVQLzZKV5BZpE-7x254Fo?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

6. Repeat these steps for all Okta groups you would like to sync to your BirdCRM organization. If the Groups already have users in them they will be synced and all groups selected here will be created in your BirdCRM organization.&#x20;

#### BirdCRM Steps

1. Navigate to the **Groups** section of the **Organization tab** in **Settings** which is available [here](https://app.bird.com/settings/organization/groups).
2. Click on the **Group** you would like to assign a role or multiple roles to and click Edit team.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXemLqXSVqiCfFerQPW1mUd2qryOWLhYJk45oM-oAZboIymH4PMPOu8njFfal38ZeWKYkOa1t48rb73w1b1rEbfAcbW3q0EB6OiWE373noA-o3FOIlCo52trjfcyNfneBGVxuxknTsDINW2jERALzfWOcQ?key=G4cws1tM_IONCfaBmekmJw" alt=""><figcaption></figcaption></figure>

3. The **Group settings** page will open and you can click **Add new role** to allow a role to be selected.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdOuPlXZ0gazkOZWHb2V9G4Yrjxw3HD7dT7bEQywWMAODxdOuXrIqRHLTaJAQzB7vufGsVjIqWl6ioNZilt9HtHDICoGCL4-97yfNAUTwlHDzszZozt3Siw7l1Jn7ESV63IqiXfUtxsajCNDGkKmsRd-hQ?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

3. Add one or more roles and optionally you can restrict the role to one or more workspaces per role.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXccBiP_osn4-UcLaJlFp2c-8cu-ooqirfmsfXI9FfrVVU4ZI9J0dK-xohhvi5AsI35Eac6uEo_OR_27qs9n96xRgWDV-29q1h-X5XYirupVZFDCD_pLy9F4nWrwISadvewSwmwrmDQyu7K19BOPJYwHfIw?key=G4cws1tM_IONCfaBmekmJw" alt="" width="563"><figcaption></figcaption></figure>

3. Click on **Update** and the roles will then be assigned to any Users of the Group.&#x20;

{% hint style="info" %}
Any new users that are added to the linked Okta group will then get added to the group and receive the associated roles.
{% endhint %}
