Case Study: Access Control

Case Study: Access Control

This post details authorization scenarios primarily for service to service authentication using Managed Identities in Azure.

User Roles

RoleAAD User GroupDescription
AdminBusiness AdminInternal engineers that manage the Portal and Development Platform.
ReaderSearch ToolInternal users with read only access to the Development Platform’s admin tools.
SupportSystem AdminInternal users with read/write access to the Development Platform’s management tools. This includes the Business and Support teams, as well as the engineering team for full access.
Tenant AdminTenant AdminClient administrators who can access the Portal.
Tenant UserTenant UserClient end users who do not have access to any Development Platform functionality.

Application Roles

  • Defined by each project’s manifest.json file.
  • DEV-CLI provisioning is executed during deployments to apply changes to role definitions and assignments
  • Roles must be named with a prefix matching the project’s ServiceId ({Scs}-{Name})
  • Roles can be assigned to any valid ServiceId

Authentication System Diagram

Diagram

Provision App Role Automation

Diagram

S2S Auth

Daemon Dev Platform app authentication for calls to other Dev Platform APIs.

This is handled via manifest.json configuration specifying custom App Roles to be defined on the *-cor-platform AAD App and assigned to managed system identities for authorized applications.

Due to 24 hour identity token caching, special care must be taken when modifying app role definitions. See this guide for details.

auth-flow-s2s

© 2023 Scott Vossen