Install
$ agentstack add skill-vinayaklatthe-microsoft-security-skills-entra-external-id ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Microsoft Entra External ID
Entra External ID is Microsoft's unified platform for identities outside your workforce:
- Customer identity (CIAM) in a dedicated external tenant — successor to Azure AD
B2C for new deployments.
- Business partner collaboration (B2B) in your workforce tenant — guests, B2B
direct connect, cross-tenant access settings.
Both are managed in the same admin surface and use the same Conditional Access engine.
When to use
- Authenticating customers / consumers into your apps with social or email sign-up.
- Replacing Azure AD B2C (Microsoft's stated path for new CIAM deployments).
- Inviting and governing external partners as B2B guests with Conditional Access.
- Configuring cross-tenant access for federated partner organizations.
Do not use this skill for employee identity (entra-id), workforce lifecycle governance (entra-id-governance), or workforce CA policy authoring (conditional-access-mfa).
External tenant vs workforce tenant — choose first
| Scenario | Tenant type | |---|---| | Public-facing consumer app, social/email sign-up, custom-branded sign-in | External tenant (CIAM) | | Partner companies' employees collaborating in Teams/SharePoint/Apps | Workforce tenant (B2B guests, cross-tenant access) | | Both | Separate external tenant + your existing workforce tenant |
> Rule of thumb: never mix customers and employees in the same workforce tenant — > licensing, branding, lifecycle, and CA scoping all diverge fast.
Approach
External tenant (CIAM)
- Create the external tenant (separate from your workforce tenant). Pick region;
data residency is tenant-fixed.
- Register your customer app in the external tenant. SDKs: MSAL for web/SPA/mobile,
plus native integrations.
- Author user flows. Built-in flows cover the common cases: sign-up/sign-in, password
reset, profile edit. Configure:
- Identity providers (email + password, email OTP, Google, Facebook, Apple, generic
OIDC, SAML).
- Passkey support (preview/GA per region) — passwordless from day one.
- Custom attributes you want to collect.
- Branding (logo, colors, custom CSS/HTML for sign-in page).
- Custom authentication extensions replace the old B2C custom-policy XML model.
Two flavors:
- Token issuance start — call an external API at sign-in to enrich claims
(e.g., look up loyalty tier from your CRM).
- Attribute collection / submit — call an API during sign-up to validate or
enrich the new user (e.g., third-party identity verification).
- Conditional Access for external users. Apply CA policies in the external tenant
— risk-based MFA, device platform restrictions, blocked countries. CA for external tenants is included.
- Migration from Azure AD B2C — there's no in-place upgrade. Plan:
- Re-create app registrations and user flows in External ID.
- Bulk migrate users via Microsoft Graph (passwords cannot be exported; users
reset on first sign-in or you stage migration via just-in-time JIT migration).
- Run B2C and External ID in parallel during migration; cut over per app.
Workforce tenant (B2B collaboration)
- Cross-tenant access settings — for each partner tenant decide:
- B2B collaboration: invite their users as guests in your tenant.
- B2B direct connect: their users access via Teams Shared Channels without being
guests in your tenant (today: Teams + selected resources).
- Inbound MFA trust: trust the partner's MFA claim, don't re-prompt.
- Outbound restrictions: limit what your users can do in their tenant.
- Default policy is permissive. Tighten the default cross-tenant access to
block, then allowlist trusted partner tenants.
- Guest lifecycle. Set:
- Inactive guest detection + auto-cleanup (Entra ID Governance access reviews).
- Guest invitation restrictions — who in your org can invite (default: anyone, set
to specific roles).
- Email domain allowlist / denylist for invitations.
- Self-service sign-up + user flow in the workforce tenant is supported for B2B
self-service collaboration — useful for partner-self-onboarding portals.
- Apply CA to guests explicitly. By default CA "All users" includes guests, but
most orgs need separate, often stricter, policies (MFA always, no device compliance check because guest devices aren't managed).
Guardrails
- Don't put customers and employees in the same tenant. Branding, licensing, CA
scope, and lifecycle all conflict.
- External ID is the path forward; Azure AD B2C is in maintenance for new tenants.
For new CIAM builds, External ID is the default choice.
- Custom authentication extensions are HTTP webhooks. They run in your auth path —
must be HA, low-latency, and idempotent.
- Cross-tenant access defaults are permissive. Out of the box, anyone from any
tenant can be invited and may access shared content. Tighten on day one.
- B2B direct connect bypasses the guest object — different governance model. Don't
apply guest access reviews and expect to catch direct-connect users.
- Guest passwords aren't in your tenant. MFA enforcement requires explicit CA
policy or trusted inbound MFA from partner.
- Email OTP is not MFA. It's a sign-up convenience for users without an MSA/social
account. Layer real MFA on top.
- Passkeys in External ID are the strongest customer auth. Promote passkeys over
password+OTP as the primary path.
Common anti-patterns
- "Customers as guests in the workforce tenant" — license confusion, branding
conflicts, governance impossible at scale.
- "Migrated B2C custom policies by trying to import the XML" — External ID doesn't
use them. Re-author with extensions.
- "Cross-tenant access left at default" — any partner can invite, any user can be
invited, no MFA harmonization. Configure explicitly.
- "Guest inactivity = 365 days" — auditors flag, breach blast-radius bloats. 90 or
180.
- "Webhook for custom auth extension hosted on a single-region App Service" — sign-in
outage. Multi-region + health probe.
- "Same CA policies applied to guests as employees" — device compliance fails for
guests; they're blocked. Author separate guest policies.
- "Built customer auth on workforce Entra ID with self-service sign-up" — works for
small partner cases, doesn't scale to CIAM volumes or branding.
Example prompts
- `Stand up an Entra External ID tenant for a consumer mobile app with email+passkey
and Google sign-in.`
- `Migrate 200,000 users and 3 apps from Azure AD B2C to Entra External ID with minimal
customer disruption.`
- `Author a custom authentication extension to enrich the token with CRM loyalty tier
during sign-in.`
- `Lock down cross-tenant access defaults and allowlist 12 partner tenants with inbound
MFA trust.`
- `Roll out Conditional Access for guests requiring MFA every sign-in and blocking
legacy auth.`
Set up B2B direct connect for Teams Shared Channels with two strategic partners.Quarterly guest access review for 8,000 partner users — workflow and Graph automation.
Microsoft Learn
- External ID overview: https://learn.microsoft.com/entra/external-id/external-identities-overview
- External tenants (CIAM): https://learn.microsoft.com/entra/external-id/customers/overview-customers-ciam
- B2B collaboration overview: https://learn.microsoft.com/entra/external-id/what-is-b2b
- Cross-tenant access settings: https://learn.microsoft.com/entra/external-id/cross-tenant-access-overview
- B2B direct connect: https://learn.microsoft.com/entra/external-id/b2b-direct-connect-overview
- Custom authentication extensions: https://learn.microsoft.com/entra/identity-platform/custom-extension-overview
- User flows: https://learn.microsoft.com/entra/external-id/customers/how-to-user-flow-sign-up-sign-in-customers
- Passkeys in External ID: https://learn.microsoft.com/entra/external-id/customers/concept-authentication-methods-customers
- Azure AD B2C to External ID migration: https://learn.microsoft.com/entra/external-id/customers/concept-planning-your-solution
- Conditional Access in external tenants: https://learn.microsoft.com/entra/external-id/customers/how-to-multifactor-authentication-customers
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vinayaklatthe
- Source: vinayaklatthe/microsoft-security-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.