Apple Sign-In Integration
AeroEBT supports Sign in with Apple authentication. This guide is designed for IT administrators configuring Apple authentication for iOS, macOS, and web applications.
Overview
Sign in with Apple allows users to authenticate using their Apple ID. This provides a privacy-focused authentication method that's particularly relevant for iOS/macOS applications and organizations that prioritize user privacy.
Prerequisites
- Apple Developer account with admin access
- Apple Developer Program membership (paid account required)
- Organization-level or project-level access to AeroEBT dashboard
- Understanding of OAuth 2.0 and OpenID Connect
Step 1: Create a Services ID in Apple Developer
- Sign in to Apple Developer
- Navigate to Certificates, Identifiers & Profiles
- Select Identifiers from the sidebar
- Click the + button to create a new identifier
- Select Services IDs and click Continue
- Enter a description:
AeroEBT Web Authentication - Enter an identifier:
com.yourcompany.aeroebt.web(use reverse domain notation) - Check Sign in with Apple
- Click Continue then Register
Step 2: Configure Sign in with Apple
- Select the Services ID you just created
- Check Sign in with Apple and click Configure
- Configure the following:
Primary App ID
- Select your primary App ID (or create one if needed)
- This links the web authentication to your app
Website URLs
- Domains and Subdomains:
[your-instance].ebt.skydynamics.aero - Return URLs:
https://[your-instance].ebt.skydynamics.aero/auth/v1/callback
- Click Save then Continue then Register
Step 3: Create a Key for Sign in with Apple
- In Apple Developer, navigate to Certificates, Identifiers & Profiles
- Select Keys from the sidebar
- Click the + button to create a new key
- Enter a key name:
AeroEBT Sign in with Apple - Check Sign in with Apple
- Click Configure and select your Primary App ID
- Click Save then Continue then Register
Important: Download the key file (.p8) immediately. You can only download it once.
Step 4: Create a Client Secret
Apple requires a JWT (JSON Web Token) as the client secret. You'll need to generate this using the key you created.
Option A: Use AeroEBT's Client Secret Generator
- In AeroEBT dashboard, go to Settings > Authentication > Providers
- Find Apple and click Configure
- Use the Generate Client Secret tool if available
- Upload your
.p8key file - The system will generate and store the client secret automatically
Option B: Generate Manually (Advanced)
If you need to generate the client secret manually:
- Use the Apple client secret generator or JWT library
- Create a JWT with:
- Issuer (iss): Your Team ID (found in Apple Developer account)
- Issued at (iat): Current timestamp
- Expiration (exp): Timestamp + 6 months (max validity)
- Audience (aud):
https://appleid.apple.com - Subject (sub): Your Services ID (e.g.,
com.yourcompany.aeroebt.web)
- Sign with the
.p8private key using ES256 algorithm
Note: Client secrets expire after 6 months and must be regenerated.
Step 5: Configure Apple Sign-In in AeroEBT
- Navigate to your AeroEBT dashboard
- Go to Settings > Authentication > Providers
- Find Apple in the list of providers
- Click Configure or Enable
- Enter the following information:
- Services ID: The identifier from Step 1 (e.g.,
com.yourcompany.aeroebt.web) - Team ID: Your Apple Developer Team ID (found in membership details)
- Key ID: The Key ID from the key created in Step 3
- Private Key: The
.p8key file content OR the generated client secret
- Services ID: The identifier from Step 1 (e.g.,
- Click Save
Step 6: Test Apple Sign-In
- Navigate to the AeroEBT sign-in page
- Click Sign in with Apple
- You should be redirected to Apple's authentication page
- Sign in with your Apple ID
- Grant permissions (if prompted)
- You should be redirected back to AeroEBT
- Verify that you're successfully signed in
Configuration Options
User Information Sharing
Apple provides different levels of user information:
- Email (always shared): If user chooses to share real email
- Email (private relay): If user chooses to hide email (Apple forwards emails)
- Name (optional): First and last name (only on first sign-in)
AeroEBT handles all of these scenarios:
- Private relay emails are supported and forwarded correctly
- Name information is captured on first sign-in
- Email is always used as the primary identifier
Scope Configuration
Sign in with Apple supports:
email: User's email addressname: User's first and last name (optional)
AeroEBT requests both scopes to provide the best user experience.
Security Considerations
Private Key Security
- Never commit the
.p8private key to version control - Store keys in secure environment variables or secret management systems
- Rotate keys regularly (annually recommended)
- Use different keys for development and production environments
Client Secret Expiration
- Apple client secrets expire after 6 months
- Set up automated renewal before expiration
- Monitor expiration dates and renew proactively
- AeroEBT can automatically renew client secrets if configured
Domain Verification
- Ensure your domain is properly verified in Apple Developer
- DNS verification may be required
- Keep domain ownership verification current
Email Privacy
- Be prepared to handle private relay emails (
@privaterelay.appleid.com) - These emails are forwarded by Apple to the user's real email
- Do not treat private relay emails as invalid
- Users can disable email forwarding in their Apple ID settings
Advanced Configuration
iOS/macOS App Integration
If you have native iOS or macOS apps:
- Configure the same Services ID for web and native apps
- Use the same Team ID across platforms
- Ensure bundle IDs match your App ID configuration
- Native apps can share authentication state with web
Domain and Subdomain Configuration
Apple allows multiple return URLs:
https://[your-instance].ebt.skydynamics.aero/auth/v1/callbackhttps://[your-instance].ebt.skydynamics.aero/auth/callback(alternative)
Ensure all legitimate callback URLs are registered.
Troubleshooting
Common Issues
"Invalid client" error
- Verify Services ID, Team ID, and Key ID are correct
- Ensure the client secret (JWT) is valid and not expired
- Check that the key is enabled for Sign in with Apple
"Invalid redirect_uri" error
- Verify return URL exactly matches:
https://[your-instance].ebt.skydynamics.aero/auth/v1/callback - Check domain configuration in Apple Developer
- Ensure no trailing slashes or typos
Users cannot sign in
- Verify all credentials are correctly entered in AeroEBT
- Check that the Services ID is properly configured
- Ensure domain verification is complete
- Test with different Apple IDs to rule out account-specific issues
Client secret expiration
- Apple client secrets expire after 6 months
- Check expiration date in the JWT payload
- Regenerate client secret before expiration
- Implement automated renewal process
Email not received (private relay)
- Verify email forwarding is enabled in user's Apple ID settings
- Check that AeroEBT handles private relay emails correctly
- Users may need to check their Apple ID email forwarding settings
Debugging Steps
- Check JWT validity: Decode and verify the client secret JWT
- Verify domain configuration: Check Apple Developer Services ID settings
- Inspect browser console: Look for JavaScript errors during redirect
- Review Apple logs: Check App Store Connect for authentication errors
- Test with different devices: Rule out device-specific issues
Certificate and Key Issues
Key file missing
- If you lost the
.p8file, you must create a new key - Old keys cannot be re-downloaded
- Update AeroEBT configuration with new key
Invalid key format
- Ensure key is in
.p8format (PEM format) - Check file encoding (should be UTF-8)
- Verify key content starts with
-----BEGIN PRIVATE KEY-----
Best Practices
Client Secret Management
- Implement automated client secret renewal
- Monitor expiration dates (set alerts 30 days before expiration)
- Use secret management systems for key storage
- Document key rotation procedures
User Experience
- Provide clear instructions for Apple Sign-In
- Handle private relay emails transparently
- Support name collection on first sign-in only
- Implement graceful fallback if Apple Sign-In fails
Security
- Regularly rotate signing keys
- Monitor authentication logs for anomalies
- Implement rate limiting on authentication endpoints
- Use HTTPS for all authentication flows
Production Deployment
App Store Review
If your app is distributed through the App Store:
- Ensure Sign in with Apple is properly implemented
- Follow Apple's Human Interface Guidelines
- Be prepared to explain authentication flow during review
Domain Verification
For production:
- Complete domain verification in Apple Developer
- Maintain DNS records for verification
- Keep domain ownership current
- Document verification status
Support
For additional assistance with Apple Sign-In configuration, please contact:
- Your AeroEBT support representative
- Email: support@skydynamics.aero
- Documentation: https://docs.ebt.skydynamics.aero