SSO & Access Control
Juno provides enterprise-grade authentication and authorization through integration with your identity provider, ensuring secure access while maintaining full control over user permissions.
Single Sign-On (SSO)
Overview
Juno supports major SSO protocols including SAML 2.0, OpenID Connect (OIDC), and Active Directory, ensuring seamless authentication aligned with your security standards.
Benefits
| Benefit | Description |
|---|---|
| Seamless Integration | Users sign in with their existing corporate credentials |
| Enhanced Security | Centralized authentication reduces password-related security risks |
| Simplified Management | IT administrators manage access through your existing identity provider |
| Audit Trail | Complete logging of authentication events for compliance |
Setting Up SSO
During implementation, your IT team will work with our team to:
- Configure Connection: Set up the SSO connection between Juno and your identity provider
- Test Integration: Validate the connection with test users before go-live
- Map Attributes: Configure user attribute mapping for seamless profile creation
- Domain Verification: Verify your organization’s domains for automatic SSO routing
Your Juno implementation team will provide detailed setup instructions and direct support for your IT team during SSO configuration.
Role-Based Access Control (RBAC)
Overview
Juno uses a combination of role-based and relationship-based access control to ensure users only access data and features appropriate to their role.
Built-in Access Levels
Juno provides three primary access levels out of the box:
Organization Admin
- Access Method: SSO or code-based authentication
- Scope: Full organizational administration
- Use Case: Primary administrators responsible for configuring policies, managing users, and overseeing operations
Coordinator
- Access Method: SSO or code-based authentication
- Scope: Coordinator-level operations
- Use Case: Coordinators responsible for inviting and managing travelers
Guest/Traveler
- Access Method: Code-based authentication
- Scope: Travel booking and expense submission
- Use Case: Non-employee travelers submitting expenses and managing bookings
Custom Roles
Beyond the built-in levels, Juno supports fully customizable role creation with fine-grained permissions:
| Permission | Description |
|---|---|
| Reporting | Access reporting and analytics |
| Travel Management | Invite and coordinate travelers |
| Trip Oversight | View all organizational trips |
| User Management | Add/remove users |
| Configuration | Modify organizational settings |
| Financial | Manage payment accounts |
| Universal Approval | Override approval workflows |
| User Administration | Comprehensive user management |
Creating Custom Roles
Custom roles are configured by a Juno account manager. Contact your account manager to request one.
Import traveler profiles from a CSV
With the User Management permission, you can create users and traveler profiles or update existing traveler details in bulk, before sending invitations or making bookings.
- Go to Settings → User Management and click Import travel profiles.
- Click Download Template CSV and replace the sample rows with your travelers’ details. Use the template for your current organization and include no more than 5,000 rows.
- Upload your CSV. Match each source column to its intended profile field, then click Continue. Unmapped columns are not imported.
- Review the uploaded values. Use Needs attention to find errors, edit cells, or remove rows. Fix all errors before submitting; the review does not show previously saved profile values.
- Click Import with the displayed traveler count. The import runs in the background. Under Recent imports, expand the new batch to check each row’s Processed or Failed result.
Prepare required and optional fields
Every row requires email, legal_first_name, legal_last_name, date_of_birth, gender, and phone_number, including rows that update an existing traveler. Use YYYY-MM-DD for dates, MALE, FEMALE, or UNSPECIFIED for gender, and an international phone number such as +12125550123. Email identifies the traveler; duplicate emails in one file are rejected even if their capitalization differs.
The standard template includes optional legal middle name, display names, Known Traveler Number (KTN), redress number, seat preference, six airline loyalty slots, two hotel loyalty slots, five rental car loyalty slots (rental_car_loyalty_program_1 and rental_car_loyalty_number_1 through rental_car_loyalty_program_5 and rental_car_loyalty_number_5), and, when passport details are available for your organization, passport number, issuing country, nationality, and expiration date. Supply all four passport fields or leave all four blank. Enter both the program and membership number for each supplied loyalty slot. Unrecognized programs and incomplete pairs must be corrected or cleared in review. Keep identifiers as text in your spreadsheet to preserve leading zeroes. A KTN requires 9–10 letters or digits; a redress number requires exactly 7 digits.
The optional first_name and last_name columns set display names only when creating a new user. They do not rename an existing user, even when the import adds that user to your organization or creates their missing traveler profile. An existing user’s display name remains unchanged even if the row is Processed. The separate legal_first_name and legal_last_name columns update the traveler profile’s legal names when populated; they do not change the user’s display name.
When traveler profiles are turned on for your organization, the template also includes:
| Details | What you can supply |
|---|---|
| Air preferences | Preferred and excluded airline and departure-airport codes |
| Hotel preferences | Preferred and excluded hotel-chain codes, room type, floor, and smoking preference |
| Rental car preferences | Preferred and excluded rental-vendor codes |
| Contact and assistance | Preferred contact method and assistance requests |
| Organization note | additional_preferences for your current organization |
If traveler profiles are turned off, you can still use the standard importer, including loyalty columns and any available passport columns, and view prior imports. Preference, contact, assistance, and organization-note columns in an uploaded file remain unmapped and are not imported through that flow.
Format preferences and passport details
- Separate list entries with semicolons, such as
UA;DLfor airlines orJFK;LGAfor departure airports. Preferred lists are ranked strongest first. Exclusions are unordered lists of options the traveler does not want; capturing them does not by itself enforce a booking restriction. - Use recognized codes rather than free-text supplier names. Do not repeat codes, leave empty entries between semicolons, or include the same code in both preferred and excluded lists. Hotel exclusions refer to chains, not individual properties.
- Use
KING,DOUBLE_QUEEN, orSINGLE_QUEENfor room type;LOWorHIGHfor floor;trueorfalsefor smoking; andEMAIL,SMS, orPHONEfor contact method. Use the supported assistance codes, such asCOURTESY_ASSISTANCE, rather than free-text requests. The organization note can contain up to 2,000 characters. - For each rental car loyalty slot, enter the program name, such as
Enterprise PlusorHertz Gold+, and its membership number. Vendor codes likeZEare not recognized as program names. Supply both cells of a pair, and don’t repeat a program across slots. The five slots limit memberships per row, not which rental programs you can use. Saving a membership stores it on the traveler profile; it does not apply it to an existing reservation. - When passport columns are available, supply all four passport fields together:
passport_number,passport_issuing_country_code,passport_nationality_country_code, andpassport_expiration_date. Use two-letter country codes, such asUSandCA, and an unexpiredYYYY-MM-DDdate. Nationality is separate from issuing country and is never inferred. Leave all four cells blank to preserve an existing passport. If passport columns aren’t available, remove passport values before importing.
Edit expanded fields in review
Click an expanded cell to open its editor. Choose supported room, floor, smoking, contact, and country values from the dropdowns; use the date control for passport expiration and the multiline editor for organization notes.
For airline, airport, hotel-chain, rental-vendor, and assistance lists, search and select an option to add it. Preferred lists are numbered strongest first: use Earlier and Later to change rank. Use Remove to delete a specific entry. Invalid uploaded values, duplicates, and empty list entries remain visible until you explicitly correct or remove them.
Click Apply to update the review cell, or Cancel to discard that cell’s edits. Clear cell followed by Apply leaves an optional field out of the import; it does not erase a saved value. Review validation runs again after you apply a change.
Understand what an import changes
Populated traveler-profile fields overwrite the corresponding saved values; the display-name columns described above apply only to new users. Legal identity, phone, passport, seat and structured travel preferences, assistance, and loyalty details are shared across the traveler’s authorized organizations. Only Additional preferences for this organization stays specific to your current organization. There is no import undo.
Blank optional cells and omitted optional columns preserve saved values. Clearing an optional cell in review also means “leave the saved value unchanged,” not “delete it.” To remove a saved value, use an authorized profile edit or API update. Each supplied preference list replaces that list; supplied loyalty memberships update the named programs while preserving unmentioned programs.
If import availability or your account context changes while the drawer is open, an unsubmitted draft may reset with a notice to upload again. Submitted imports continue processing and remain in history.
Correct an unsuccessful import
Review validation catches problems such as invalid values, incomplete passports, duplicate emails, and preference conflicts. Processing also checks current reference data and saved preferences, so a row that passes review can still fail later. For example, a newly preferred airline may conflict with an exclusion already saved on the profile.
Expand Recent imports to identify failed rows. Processed covers new profiles, updates, and rows whose saved values were already the same; it does not reveal whether a user existed previously. Other rows can succeed when one fails.
Check the source data and, where you have permission, the current traveler profile before correcting and uploading only the intended failed rows. A fresh upload applies its populated values again; do not resend successful rows just because another row failed. If the outcome is unclear, contact support before re-uploading.
Security Features
Session Management
- Secure Cookies: Session tokens stored in secure, HTTP-only cookies
- Session Refresh: Automatic token refresh for a seamless experience
- Organization Context: Sessions tied to specific organizational contexts
- Timeout Policies: Configurable session timeout based on organizational policies
Audit and Compliance
- Authentication Logging: Complete audit trail of all authentication events
- Permission Changes: Tracked and logged permission modifications
- Access Attempts: Failed authentication attempts logged for security monitoring
- Integration Events: SSO connection events monitored and recorded
Changes to user permissions may take up to 5 minutes to propagate throughout the system due to caching optimizations.
Best Practices
Role Design
- Principle of Least Privilege: Grant only the minimum permissions required for each role
- Regular Review: Periodically audit user permissions and remove unnecessary access
- Separation of Duties: Avoid combining conflicting permissions in single roles
- Clear Naming: Use descriptive role names that clearly indicate their purpose
User Management
- Automated Provisioning: Leverage SSO attribute mapping for automatic user provisioning
- Offboarding Process: Before removing or deactivating an approver, transfer their pending approval responsibilities to an eligible, active successor, including pending rail card-limit requests. Approvers can approve requests only while they remain active members of your organization.
- Regular Audits: Conduct periodic access reviews to identify and remove stale accounts
- Training: Ensure users understand their permissions and appropriate usage
Troubleshooting
Common SSO Issues
- Connection Failures: Verify domain configuration and certificate validity
- Attribute Mapping: Check user attribute mapping between identity provider and Juno
- Permissions Not Loading: Clear browser cache and verify role assignments
For additional support with SSO configuration or access control issues, contact your Juno account manager or implementation specialist.