Skip to content

Group Mappings

Group mappings connect identity provider (IdP) groups to Shoehorn teams. When a user logs in and belongs to an IdP group, they are automatically added to the mapped Shoehorn team.

  1. Configure your IdP to send group claims in the JWT token
  2. Map IdP groups to Shoehorn teams
  3. When users authenticate, their group memberships are synced
  1. Navigate to Organization > Teams
  2. Select a team
  3. Go to the Group Mappings tab
  4. Click Add Mapping
  5. Enter the IdP group name
  6. Click Save
Terminal window
curl -X POST https://shoehorn.example.com/api/v1/admin/teams/<team-id>/group-mappings \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"group_id": "engineering-platform",
"idp_provider": "zitadel"
}'
Terminal window
curl https://shoehorn.example.com/api/v1/admin/teams/<team-id>/group-mappings \
-H "Authorization: Bearer <token>"
Terminal window
curl -X DELETE https://shoehorn.example.com/api/v1/admin/teams/<team-id>/group-mappings/<group-id> \
-H "Authorization: Bearer <token>"
ProviderGroup ClaimNotes
ZitadelgroupsGroups managed in Zitadel organizations
OktagroupsOkta group names sent via OIDC
Microsoft Entra IDgroupsAzure AD security groups
KeycloakgroupsKeycloak realm groups
  • Each IdP group maps to exactly one Shoehorn team
  • A team can have multiple group mappings
  • Mappings are one-way: IdP group -> Shoehorn team
  • Changes to IdP group membership are reflected on next login
  • All mapping changes are recorded in the team audit log

The tenant ID strategy determines how Shoehorn extracts the tenant from JWT claims. This is configured via environment variables:

StrategyEnv VarDescription
provider_claimTENANT_ID_CLAIM_KEY=azpUse a specific JWT claim
urn_claimTENANT_ID_CLAIM_KEY=urn:zitadel:iam:org:idExtract from URN claim
group_prefixTENANT_GROUP_PREFIX=tenant:Extract from group prefix
env_varDEFAULT_TENANT_ID=defaultUse environment variable