Prerequisites Checklist
Before starting the installation, ensure you have:
- Azure Subscription with Owner permissions
- Azure AD Tenant with Global Administrator or Application Administrator privileges
- Azure OpenAI quota available in your subscription
- *Custom domain and DNS zone in Azure (optional)
Register Azure resource providers
Before deploying EagleEye, make sure the following Azure resource providers are registered in your subscription:
- Microsoft.Storage
- Microsoft.ManagedIdentity
- Microsoft.App
- Microsoft.CognitiveServices
- Microsoft.KeyVault
- Microsoft.ContainerRegistry
- Microsoft.Network
- Microsoft.OperationalInsights
- Microsoft.Insights
- Microsoft.Sql
- Microsoft.Authorization
- Microsoft.Web
- Microsoft.ContainerInstance
To check and register, follow the official Microsoft guide: Register resource providers in Azure Portal
Get Your Azure Tenant ID
You will need your Azure Tenant ID for configuration:
- Sign in to the Azure Portal
- In the search bar, type "Microsoft Entra ID"

- Go to Manage Tenants and copy the Tenant ID (Organization ID)

Note: If you have multiple tenants, ensure you select the correct one for EagleEye deployment.
Get Your Azure Group Name
You will need an Azure group for EagleEye to perform email analysis. This can be either an existing Azure group or a new one you create.
To create a new group or find an existing one:
- Sign in to the Azure Portal
- In the search bar, type "Groups"

- Go to Groups → All groups
- Either select an existing group or click New group to create one
- If creating a new group:
- Follow this guide to create and configure a new group
- Select Security as the Group type if you want to add other groups as members (nesting), otherwise select Microsoft 365
- Copy the Group name (you will need this for configuration later)
App Registration Guide
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 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: 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 1 & 2 for all 3 app registrations
App-Specific Configuration
These are the only extra settings required for each app registration.
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

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.
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
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.
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

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
