xlnszia Docs App

SSO & Role Mapping

xlnszia supports SAML 2.0 SSO (Microsoft Entra ID), automatic (JIT) provisioning of new users, SAML role mappings and SCIM 2.0 user provisioning. Configure everything under Settings → Authentication (permission sso.manage).

1. Microsoft Entra ID application (Azure portal)

FieldValue
Identifier (Entity ID)xlnszia (matches sso_entity_id)
Reply URL (ACS)https://api.xlnszia.com/api/v1/auth/sso/acs
Sign-on URLhttps://api.xlnszia.com/api/v1/auth/sso/login
Logout URLhttps://app.xlnszia.com/logout
Name identifieruserPrincipalName
Attributesemail, displayName, groups

2. Settings to enter in the app

FieldValue
ProviderMicrosoft Entra (Azure AD)
SP Entity IDxlnszia
IdP Entity ID (Issuer)https://login.microsoftonline.com/<tenant-id>/
SSO entry pointhttps://login.microsoftonline.com/<tenant-id>/saml2
IdP signing certificateDownload the Base64 cert from Entra and paste
NameID formatEmail address
Auto-provision usersON (JIT)
Session timeout / Idle timeout480 (8h) / 30 minutes
Allowed IP rangesCorporate CIDRs (enforced by Entra Conditional Access)
Require MFA for adminsON (Entra Conditional Access policy)

3. Roles

Permissions are enforced per resource (tests, alerts, dashboards, users, teams, integrations, audit, governance, SSO, ...). Seeded roles:

RolePurpose
Admin (system)Full access (all permissions)
Manager (system)Manage tests, rules and alerts
Viewer (system)Read-only
Team AdminManage team members/settings + all test and alert operations
Test CreatorCreate tests; cannot edit or delete
Test ApproverApprove test changes (tests.approve)
Dashboard EditorCreate / edit dashboards (dashboards.edit)
Report ViewerView reports (reports.view)
Alert ManagerManage alert rules + acknowledge alerts
Integration ManagerConfigure integrations (DevOps)
MonitorAcknowledge alerts + view status
AuditorRead-only + audit logs (create via Governance → Roles)

Custom roles can be created under Governance → Roles (GET/POST/PUT /api/v1/roles). Permissions are reflected in the UI (navigation and action buttons) and enforced on every API endpoint.

4. SAML role mapping (Entra groups → app roles)

In Settings → Authentication → SAML role mappings, map an IdP attribute value (group name or Object ID) to an app role. The first active match wins; Entra's full group claim URI also matches the short attribute name (groups).

Entra groupApp role
Team AdminsTeam Admin
Test EngineersTest Creator
QA TeamTest Approver
Reporting TeamReport Viewer
Alert RespondersAlert Manager
DevOpsIntegration Manager
Global AdminsAdmin

5. SCIM provisioning

  1. Enable SCIM in Authentication settings and set a bearer token (stored hashed — never returned by the API).
  2. In Entra, add a SCIM provisioning connection:
    • Tenant URL: https://api.xlnszia.com/api/v1/scim/v2
    • Secret token: the bearer token you set
  3. Auto-sync every 4 hours; supported operations: Create, Update, Delete User (POST/PUT/PATCH/DELETE /api/v1/scim/v2/Users).
  4. SCIM roles array entries map to app roles by name (e.g. {"value": "Monitor"}).

6. Security checklist

  • MFA enforced via Entra Conditional Access for the app.
  • Session timeout 8h, idle 30 min.
  • IP restrictions: corporate ranges only.
  • Alert on suspicious sign-ins (Entra sign-in logs → SIEM).
  • Keep the local admin account as the break-glass account; do not remove it.

Break-glass account

Never remove the local admin account — it is the fallback if the IdP becomes unreachable.