OVERVIEW
Starting with v2.70, Angelfish supports SSO with Microsoft Entra ID.
When SSO in Angelfish is active, the SSO tab on the login page is selectable. Users can login to Angelfish via SSO or with a local account.
NOTES
- TLS must be enabled in Angelfish for SSO with Entra to function
- Angelfish uses the OpenID Connect (OIDC) authorization code flow
- Angelfish syncs Entra User accounts locally: each SSO Item syncs Users from a single Entra Group
- User sync occurs once daily, and can be run manually
- Angelfish access permissions are managed locally (within your Angelfish instance)
- Provisioning rules are applied to synced Users: you can apply different rules to each SSO Item / synced Group
- SSO Users can automatically be added to individual Profiles, or to Collections (e.g. all Profiles in a Collection)
REQUIREMENTS
Entra
- You'll need to login to Entra with a User account that has the Global Administrator Role.
Angelfish
- You'll need to login to Angelfish with an Angelfish Admin account.
- Your Angelfish instance needs TLS/SSL enabled:
SETUP STEPS
STEP 1: Configure Microsoft Entra
These tasks can performed in Microsoft Entra or in the Azure portal.
If you've already setup Angelfish for SharePoint Online with the Microsoft API solution, you can skip the first two steps. Your existing Application Registration and Client Secret can be used.
TASKS
- Register Angelfish as an Application
- Create a Client Secret (passcode)
- Grant Token Configuration to Angelfish
- Grant API Permissions to Angelfish
- Create Single Page with Redirect URI
Register Angelfish as an Application
Login to the Azure Portal with your Global Administrator account:
Click the Microsoft Entra ID Service.
In Entra, click "App Registration" in the side menu bar, then "New Registration". Click the image to zoom in.
In the "Register an application" form, enter a name, choose "Single tenant" for Supported account types, and click the Register button. Click the image to zoom in.
Copy and save the Application (client) ID and Directory (tenant) ID values - you'll need them when you configure Angelfish in Step 2.
Create a Client Secret (passcode)
Click the "Add a certificate or secret" link, then "New client secret"
We recommend making the expiration as long as your organization allows.
When finished, click "Add".
Once saved, the secret is ONLY shown on this screen and will not be shown again.
The "Value" field contains the secret. Please copy the Value and save it - you'll need it when you configure Angelfish in Step 2.
Grant Token Configuration to Angelfish
Two Token Claims need to be added:
Navigate to App registrations - All applications - Angelfish.
In the "Manage" side menu, click "Token configuration", then click "Add optional claim" in the main screen.
Select "ID", check the "email" checkbox, and click the Add button.
Next, click "Add groups claim" in the main screen.
Select the "Groups assigned to the application" group type, and "Group ID" for the 3 sections below (ID, Access, SAML).
Click Save. Your Token Claims should look like this:
Grant API Permissions to Angelfish
Four Graph API Permissions need to be added:
- User.Read.All
- Group.Read.All
- email
- profile
Navigate to App registrations - All applications - Angelfish.
In the "Manage" side menu, click "API Permissions", then click "Add a permission" in the main screen.
Next, click the "Microsoft Graph" tile, then click the "Application Permissions" tile.
Use the search function to locate & select each permission.
Once each permission is selected, click the "Add permissions" button.
In the main API Permissions screen, click "Grant admin consent for [tenant name]" and choose "Yes" in the confirmation box.
If successful, the API Permissions screen will show a Granted status for each permission.
Create Single Page with Redirect URI
Navigate to App registrations - All applications - Angelfish.
In the "Manage" side menu, click "Authentication", then click "Add Redirect URI" in the main screen.
Select the "Single-page application" tile.
In the Redirect URI field, enter the hostname / IP address and port of your Angelfish instance, followed by /login. Then click the Configure button.
For example:
When a SSO User logs in successfully, the User is redirected to the Redirect URI.
STEP 2: Configure Angelfish
If you've already setup Angelfish for SharePoint Online with the Microsoft API solution, you can skip the first step. Your existing Service Account can be used.
TASKS
- Create Service Account
- Create SSO Item
Create Service Account
A Service Account provides a single location to store authentication credentials, and can be easily updated when credentials change.
Angelfish needs the following info from Step 1:
- Application (client) ID
- Directory (tenant) ID
- Client Secret
Login to Angelfish as an admin, navigate to Accounts - Service Accounts, and click the New button.
In the Service Account Type dropdown menu, select Microsoft API and enter the relevant info in the fields that appear below.
Create SSO Item
Navigate to Accounts - Single Sign-On (SSO), and click the New button.
Enter a name for this SSO Item in the SSO Name field. Each SSO Item is linked to a single Entra group, so you may want to put the group name in the SSO Name.
In the Authentication Type dropdown, select Service Account & select the relevant Service Account in the dropdown that appears. Click the Test button to verify authentication.
In the Group Names field, enter the name of the Entra Group to sync.
In Provisioning Settings, select the User Access Level that will be assigned to Users in this SSO Item.
Click the Save button at the top or bottom of the screen.
Once the SSO Item is saved:
- The "Sync Now" button will be clickable
- The "Collections" and "Profiles" tabs will be configurable, which lets you grant Collection or Profile access to SSO Users
ADMIN NOTES
- We recommend creating a separate group in Entra for standard Angelfish Users and for Angelfish Admins. Then create a SSO Item in Angelfish for each group.
- If a SSO Item is deleted in Angelfish, all User Accounts created by the SSO Item will also be deleted from Angelfish.
- Angelfish stores two types of User Accounts: Local and SSO. If the same User Account (username) exists locally AND in SSO, the sync operation will not overwrite the Local Account with the SSO Account.
HELPFUL LINKS