PILLAR GUIDE

Identity & Access Management

Enterprise IAM Architecture Guide

Table of Contents
IAM Fundamentals Authentication Methods (MFA, Passwordless) Authorization Models (RBAC, ABAC) Single Sign-On (SSO) Privileged Access Management (PAM) Zero Trust Identity

IAM Fundamentals

Identity and Access Management (IAM) is the framework of policies and technologies ensuring the right individuals access the right resources at the right times for the right reasons.

Core IAM Components

Authentication Methods

Multi-Factor Authentication (MFA)

MFA requires two or more verification factors:

MFA Strength Ranking
  1. FIDO2/WebAuthn (Strongest): Hardware keys, passkeys
  2. Authenticator Apps: TOTP (Google Authenticator, Authy)
  3. Push Notifications: Approve on phone (with number matching)
  4. SMS/Voice (Weakest): Susceptible to SIM swapping

Passwordless Authentication

// WebAuthn Registration (JavaScript)
const credential = await navigator.credentials.create({
    publicKey: {
        challenge: serverChallenge,
        rp: { name: "WhoisNexus" },
        user: {
            id: userId,
            name: "[email protected]",
            displayName: "User"
        },
        pubKeyCredParams: [
            { type: "public-key", alg: -7 },  // ES256
            { type: "public-key", alg: -257 } // RS256
        ],
        authenticatorSelection: {
            authenticatorAttachment: "platform",
            userVerification: "required"
        }
    }
});

Authorization Models

Role-Based Access Control (RBAC)

# AWS IAM Policy - Developer Role
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "iam:*",
                "organizations:*"
            ],
            "Resource": "*"
        }
    ]
}

Attribute-Based Access Control (ABAC)

# Azure ABAC - Access based on attributes
{
    "condition": "(
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] 
        StringEquals @Principal[Department]
    )",
    "description": "Users can only access containers matching their department"
}

Single Sign-On (SSO)

SSO allows users to authenticate once and access multiple applications without re-entering credentials.

SAML 2.0 vs OAuth 2.0 vs OIDC

ProtocolUse CaseFormat
SAML 2.0Enterprise SSOXML
OAuth 2.0API AuthorizationJSON
OIDCModern SSO + APIJSON (JWT)

Privileged Access Management (PAM)

PAM secures accounts with elevated access (admins, service accounts, root).

PAM Best Practices

Zero Trust Identity

Zero Trust treats every access request as potentially hostile, regardless of network location.

Key Principles

# Conditional Access Policy (Azure AD)
{
    "conditions": {
        "users": { "includeGroups": ["All Users"] },
        "applications": { "includeApplications": ["All"] },
        "locations": { "excludeLocations": ["Trusted IPs"] },
        "signInRiskLevels": ["medium", "high"]
    },
    "grantControls": {
        "operator": "AND",
        "builtInControls": ["mfa", "compliantDevice"]
    }
}

Last updated: December 2024