Here’s the complete solution for your Azure AD SSO access issue:
1. Azure AD Reply URL Configuration:
Add the transportation-mgmt module’s specific endpoint to your Azure AD app registration. Go to Azure Portal > App Registrations > Your Epicor SCM App > Authentication > Redirect URIs and add:
If your transportation module uses a separate subdomain or cloud service, include that specific URL.
2. Role-Based Access Claims Configuration:
In Azure AD, configure custom claims to include transportation-specific roles. Go to Token Configuration > Add optional claim > Access token and add:
- groups (include security groups)
- roles (include app roles)
Then create a claims mapping policy that includes the transportation management security group. In your app manifest, ensure the “groupMembershipClaims” is set to “SecurityGroup” or “All”.
For ES 10.2.600, you also need to map Azure AD groups to Epicor roles. In your Epicor SCM security configuration, create explicit mappings:
- Azure AD Group: “Logistics_Team” → Epicor Role: “Transportation_Manager”
- Azure AD Group: “SCM_Users” → Epicor Role: “Transportation_User”
3. Hybrid AD Group Synchronization:
Verify Azure AD Connect is syncing all transportation-related security groups. Check your sync configuration:
- Open Azure AD Connect on your sync server
- Go to Configure > Customize synchronization options
- Verify that OU containing transportation security groups is included
- Check filtering rules aren’t excluding groups with names like “TMS_" or "Transport_”
Force a delta sync after verification:
Start-ADSyncSyncCycle -PolicyType Delta
4. Validation Steps:
After making these changes:
- Have a test user sign out completely from all Epicor sessions
- Clear browser cache and cookies
- Sign in again through Azure AD SSO
- Verify the access token includes the correct group claims (use jwt.ms to decode the token)
- Check that transportation-mgmt workspace opens without errors
Why This Works:
The issue occurs because hybrid cloud deployments create separate authentication contexts for different modules, especially when they run on isolated subnets. Your Azure AD configuration was only handling the main SCM authentication, not the module-specific security requirements. By adding the proper reply URLs, configuring role claims explicitly, and ensuring complete group synchronization, you create a complete authentication chain that matches what local accounts get automatically through direct AD integration.
This solution addresses all three focus areas: proper reply URL registration for the cloud endpoint, comprehensive role-based claims passing, and complete hybrid AD group synchronization to ensure cloud-authenticated users have the same security context as on-premises users.