Understanding Microsoft Entra ID (Azure AD) Tenant Configurations
How Entra ID tenants, directories, app registrations, and conditional access policies work for enterprise identity management.
Introduction
Microsoft Entra ID (formerly Azure Active Directory) is Microsoftβs cloud-based identity and access management (IAM) service. Every Microsoft 365 subscription and Azure account is backed by an Entra ID tenant β an isolated directory instance containing users, groups, devices, and application registrations for an organization. Unlike on-premises Active Directory (domain-joined PCs, Kerberos, Group Policy), Entra ID is cloud-native: it uses modern protocols (OIDC, SAML 2.0, OAuth 2.0) and is accessible from any device with internet access.
Step-by-Step: Key Tenant Concepts
flowchart TD
A["1. Tenant Architecture"]
B["2. App Registration (OAuth 2.0 Client)"]
C["3. Authentication Flow"]
D["4. Conditional Access Policies"]
E["5. B2B Guest Access"]
A --> B
B --> C
C --> D
D --> E
Step 1: Tenant Architecture
Entra ID Tenant (contoso.onmicrosoft.com / Tenant ID: 9abc-1234-...)
βββ Users and Groups
β βββ [email protected] (Member user)
β βββ [email protected] (Guest B2B user)
β βββ Engineering Group
βββ App Registrations
β βββ My API Backend (Client ID: aaaa-1111)
β βββ My SPA Frontend (Client ID: bbbb-2222)
βββ Enterprise Applications (Service Principals)
βββ Devices (Azure AD Joined, Hybrid Joined)
βββ Conditional Access Policies
Step 2: App Registration (OAuth 2.0 Client)
To enable any application to authenticate via Entra ID, you must create an App Registration:
# Register an application (via Azure CLI)
az ad app create --display-name "My API Backend" --sign-in-audience "AzureADMyOrg" --web-redirect-uris "https://api.example.com/auth/callback"
# Add required API permissions (Microsoft Graph: User.Read)
az ad app permission add --id <app-client-id> --api 00000003-0000-0000-c000-000000000000 # Microsoft Graph
--api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope # User.Read
# Create a client secret
az ad app credential reset --id <app-client-id>
Step 3: Authentication Flow (Authorization Code + PKCE)
// MSAL.js (Microsoft Authentication Library) handles this flow
import { PublicClientApplication } from "@azure/msal-browser";
const msalInstance = new PublicClientApplication({
auth: {
clientId: "bbbb-2222", // App Registration Client ID
authority: "https://login.microsoftonline.com/9abc-1234", // Tenant ID
redirectUri: "https://app.example.com"
}
});
// Initiate login
const loginRequest = {
scopes: ["openid", "profile", "User.Read"]
};
msalInstance.loginPopup(loginRequest).then(result => {
// result.accessToken: JWT for calling APIs
// result.idToken: user identity claims
console.log("Signed in as:", result.account.username);
});
Step 4: Conditional Access Policies
Conditional Access (CA) is Entra IDβs policy engine β it evaluates signals (who, what device, which app, where, what risk level) and applies access controls:
Policy: "Require MFA for admin portal access from non-compliant devices"
Assignments:
Users: Members of "IT Admins" group
Cloud apps: Admin Portal application
Conditions: Device compliance = NOT compliant OR
Sign-in risk = Medium or High
Access controls:
Grant: Require multi-factor authentication
Session: Sign-in frequency: every 8 hours
Common CA policy patterns:
- Block legacy authentication (SMTP, POP3, IMAP β no MFA support)
- Require compliant device for corporate data access
- Require MFA for all external access
- Block sign-in from high-risk countries (named locations)
Step 5: B2B Guest Access
Entra ID B2B allows external partners to access your apps using their own identity:
# Invite a guest user from partner organization
az ad user invite --invited-user-email-address [email protected] --invite-redirect-url "https://myapp.example.com" --display-name "Alice Partner"
# Guest user authenticates with their own IdP (partner.com's Entra ID/Google)
# Entra ID federates and issues tokens for your tenant's resources
# No password management on your side
Key Takeaways
- An Entra ID tenant is an isolated directory β a unique Tenant ID (GUID) identifies your organizationβs directory globally.
- App Registrations define the OAuth 2.0 client for each application β one registration per application, with client IDs and secrets.
- Conditional Access policies are the primary tool for enforcing Zero Trust β they evaluate context (device, location, risk) before granting access.
- Use Microsoft Authentication Library (MSAL) for all authentication flows β it handles token caching, refresh, and the PKCE flow automatically.
- B2B guest access allows external users to authenticate with their home IdP β no separate account or password management required on your side.
Historical figures, architectures, and capabilities are for informational purposes only. Not technical, professional, legal, or financial advice. Sources: Research papers, developer documentation.