entra-authz-claims

Diagnoses Entra SSO authorization failures by inspecting token claims and rekeying RBAC policies to app roles.

Updated Apr 16, 2025
One-click install
npx skills add https://github.com/damoke012/eks_code --skill entra-authz-claims-damoke012
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: entra-authz-claims
Source: https://github.com/damoke012/eks_code/tree/main/.claude/skills/entra-authz-claims
Command: npx skills add https://github.com/damoke012/eks_code --skill entra-authz-claims-damoke012

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? A successful Entra SSO login that lands the user with no permissions — an empty Argo CD Applications view or a Grafana Viewer-only session — is an authorization bug, not an authentication bug. This Skill separates the two, proves the USX tenant will not emit a groups claim, and routes role mapping through Entra app roles instead. ## Core Features & Use Cases - Authentication vs. authorization split: Decode the issued token and label each claim set against the running argocd-server pod so stale tokens are never tested against new config. - App-role fallback for missing group claims: Define app roles on the app registration, assign groups or users via appRoleAssignments, and rekey policy.csv subjects to the roles claim. - RBAC policy verification: Enforce the four failure rules — claim name vs. value, single subject kind, correct scopes, and p, rules per role — and verify argocd-rbac-cm contents rather than trusting a green Kustomization. - Use Case: After an Argo CD OIDC login succeeds but shows zero Applications, run the token-claims script, confirm no groups claim exists, assign platform-admin as an app role, and rekey the RBAC policy to scopes: "[roles, groups]". ## Quick Start Diagnose why my Entra SSO login to Argo CD succeeds but shows an empty Applications list, and fix the RBAC policy to use app roles.

Frequently Asked Questions about entra-authz-claims

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does SSO login succeed but show no permissions in Argo CD?▼

A successful login with an empty Applications view is an authorization failure, not an authentication failure. The token is valid but its claims do not match any subject in policy.csv, so decode the token and compare claim values against the RBAC policy.

How do I fix a missing groups claim in Entra ID tokens?▼

When the tenant refuses to emit a groups claim despite groupMembershipClaims and optionalClaims settings, use app roles instead. App roles are issued from appRoleAssignments on the service principal, a path unaffected by whatever suppresses group claims.

How do I map Entra app roles to Argo CD RBAC policy?▼

Define app roles on the app registration, assign groups or users to them, then set policy.csv subjects to the app-role values and configure scopes as "[roles, groups]". Subjects must all be the same kind or the policy can never match.

Can I assign groups to Entra app roles without Entra ID P1?▼

Group-to-app-role assignment worked on the documented tenant with no Entra ID P1 obstacle encountered. Per-user assignment remains a fallback for proving the claim arrives in the token.

Why does my Argo CD RBAC policy not match after updating claims?▼

Common causes are mixing subject kinds in policy.csv, scopes that do not name the claim holding the subjects, or a granted role with no p, rules. Verify the actual argocd-rbac-cm contents and test with a fresh sign-out and sign-in.