
Tip: Jump to 5:00 for App Registrations
You need 3 Azure App Registrations for EagleEye:
- Engine App -
SSW.EagleEye.Engine - API App -
SSW.EagleEye.Api - Portal App -
SSW.EagleEye.Portal
Tip: Create one app and its client secret at a time to avoid confusion.
By the end of this section, you should have 3 client secrets and 1 API scope URL ready for your EagleEye deployment.
Step 2.1 - Create Each App Registration
For each of the 3 apps:
- Go to Azure Portal → App registrations → New registration

- Enter the app name (e.g.,
SSW.EagleEye.Engine) - Set Supported account types to: Accounts in this organizational directory only
- Click Register

Step 2.2 - Create a Client Secret
Repeat these steps for each app:
- Go to Certificates & secrets
- Click New client secret
- Add a description (e.g.,
Engine Secret,API Secret,Portal Secret) - Select an expiry period → Add

- Copy the secret value immediately (you will need this later; it will never be shown again)

Warning: After deployment, remove the secret value from any temporary notes (clipboard, notepad, etc.).
Do not delete the secret from Azure
Remember to repeat Steps 2.1 & 2.2 for all 3 app registrations
Step 2.3 - App-Specific Configuration
These are the only extra settings required for each app registration.
Step 2.3.1 - Engine App - Configure API Permissions
App: SSW.EagleEye.Engine
- Go to App registrations → All applications → search for
SSW.EagleEye.Engine
- Go to Manage → API permissions → Add a permission
- Select Microsoft Graph → Application permissions (Important: select Application permissions - not Delegated).
- Add:
GroupMember.Read.AllMail.ReadUser.Read.AllDomain.Read.All
- Click Add permissions
- Click Grant admin consent

Step 2.3.2 - API App - Expose a Scope
App: SSW.EagleEye.Api
This exposes the API so the Portal can call it.
- Go to App registrations → All applications → search for
SSW.EagleEye.Api - Go to Expose an API → Add a scope
- Accept the default Application ID URI (or customise) → Save and continue

- Configure the scope:
- Scope name:
access_as_user - Who Can Consent: Admins and users
- Admin consent display name:
Access SSW EagleEye as user - Admin consent description:
Allow the application to access SSW EagleEye on behalf of the signed-in user
- Scope name:
- Click Add scope

- Copy the full scope URL (e.g.,
api://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/access_as_user)
You will need this during deployment.
Step 2.3.3 - Portal App - Configure API Permission
App: SSW.EagleEye.Portal
This allows the Portal web app to call the API.
- Go to App registrations → All applications → search for
SSW.EagleEye.Portal - Go to API permissions → Add a permission
- Select APIs my organization uses → choose SSW.EagleEye.Api

- Select Delegated permissions →
access_as_user - Click Add permissions

- Click Grant admin consent

Control Who Can Sign In to Your EagleEye Portal
Note: This is a critical security configuration step that prevents unauthorized users from accessing your EagleEye Portal. You can choose exactly which users or groups are allowed to access your EagleEye Portal.
By default, Azure lets any user in your tenant sign in - so it’s important to lock this down.
Step 2.4 - Secure the Portal App
- In the Azure Portal, search for Enterprise applications
- Select your SSW.EagleEye.Portal enterprise app
- In the left menu, go to Manage → Properties
- Set Assignment required to Yes
- This ensures only the users or groups you assign can sign in.
- If this is set to No, any user in your tenant will be able to access your EagleEye portal.
- Click Save

Step 2.5 - Assign Users/Groups to the Portal App
- In the same SSW.EagleEye.Portal enterprise app, go to Manage → Users and groups
- Click Add user/group
- Select the users or groups you want to give access to.
- Click Assign
