Authentication Setup¶
This guide covers authentication configuration in SPSA.
Authentication Methods¶
SPSA supports multiple authentication methods:
| Method | Edition | Description |
|---|---|---|
| Local Database | All | Built-in user database |
| TOTP MFA | All | Time-based one-time passwords |
| Cisco DUO | All | DUO Authentication integration |
| Active Directory SSO | All | Windows AD integration |
| Entra ID / SAML | All | Microsoft Entra ID (Azure AD) SSO |
| OpenID Connect | All | OAuth 2.0-based authentication |
Local Authentication¶
Overview¶
Local authentication uses SPSA's built-in user database. This is the default and works with all editions.
Create Local Users¶
- Go to Settings > Users
- Click New User
- Set username and password
- Configure MFA enrollment
- Save
Multi-Factor Authentication (MFA)¶
TOTP Authentication¶
SPSA requires TOTP-based MFA for all portal users. Compatible authenticator apps:
- Google Authenticator
- Microsoft Authenticator
- Authy
- Any TOTP-compatible app
MFA Required
MFA cannot be disabled in SPSA. This is by design for security.
Cisco DUO Authentication¶
SPSA supports Cisco DUO for enterprise MFA:
- Configure DUO application in DUO Admin Panel
- Configure SPSA with DUO integration keys
- Users authenticate via DUO push, SMS, or hardware token
Contact Skillplan for DUO configuration assistance.
Active Directory Integration¶
SPSA integrates with Active Directory for authentication and user management.
Requirements¶
- Network connectivity from SPSA to Domain Controller
- Service account with read access to AD
- LDAP/LDAPS port accessibility (389/636)
Configuration Overview¶
AD integration is configured through the SPSA Portal. Contact Skillplan for detailed setup assistance.
Microsoft Entra ID Integration¶
SPSA supports Microsoft Entra ID (formerly Azure Active Directory) for Single Sign-On using:
- SAML 2.0 - Established standard with broad support
- OpenID Connect (OIDC) - Modern OAuth 2.0-based protocol
Architecture Overview¶
Protocol Comparison¶
| Feature | SAML 2.0 | OpenID Connect |
|---|---|---|
| Standard | XML-based | JSON/JWT-based |
| Configuration | More complex | Simpler |
| Groups Support | Via assertions | Via JWT claims |
| Recommended For | Legacy/compliance | New deployments |
Recommendation
OpenID Connect (OIDC) is recommended for new implementations due to simpler configuration and maintenance.
SAML 2.0 Configuration with Entra ID¶
Step 1: Create Enterprise Application in Entra ID¶
- Sign in to Azure Portal: https://portal.azure.com
- Navigate to: Microsoft Entra ID → Enterprise applications
- Click New application
- Select Create your own application
- Enter a name (e.g., "SPSA Portal")
- Select Integrate any other application you don't find in the gallery (Non-gallery)
- Click Create
Step 2: Configure SAML Single Sign-On¶
- In the created Enterprise Application, navigate to Single sign-on
- Select SAML
- Click Edit on Basic SAML Configuration
- Configure the following values:
| Parameter | Value |
|---|---|
| Identifier (Entity ID) | https://spsa.yourdomain.com |
| Reply URL (ACS URL) | https://spsa.yourdomain.com/guacamole/ |
| Sign on URL | https://spsa.yourdomain.com/guacamole/ |
URL Format
URLs must match exactly, including trailing slashes. Mismatched URLs are a common cause of SAML errors.
Step 3: Download SAML Metadata¶
- Scroll to SAML Certificates
- Copy the App Federation Metadata URL
- Or download the Federation Metadata XML file
Save the metadata URL for SPSA configuration.
Step 4: Assign Users and Groups¶
- Navigate to Users and groups
- Click Add user/group
- Select the users and/or groups that should have access to SPSA
- Click Assign
Step 5: Configure SPSA for SAML¶
Contact Skillplan support to configure SPSA with your SAML settings. You will need:
- App Federation Metadata URL (from Step 3)
- Entity ID (from Step 2)
- Callback URL (from Step 2)
Step 6: Create SPSA Users¶
- Log in to SPSA Portal with local admin account
- Go to Settings → Users
- Create users with email addresses matching Entra ID
- Important: Do NOT set a password for SAML users
- Assign appropriate connection permissions
OpenID Connect (OIDC) Configuration with Entra ID¶
Step 1: Create App Registration in Entra ID¶
- Sign in to Azure Portal: https://portal.azure.com
- Navigate to: Microsoft Entra ID → App registrations
- Click New registration
- Enter a name (e.g., "SPSA OIDC")
- Select Accounts in this organizational directory only (Single tenant)
- Configure Redirect URI:
- Platform: Web
- URI:
https://spsa.yourdomain.com/guacamole/ - Click Register
Step 2: Note Client ID and Tenant ID¶
After registration, note the following from the Overview page:
| Value | Description |
|---|---|
| Application (client) ID | Your Client ID |
| Directory (tenant) ID | Your Tenant ID |
Step 3: Enable Implicit Flow¶
- Navigate to Authentication
- Under Implicit grant and hybrid flows:
- Enable ID tokens (used for implicit and hybrid flows)
- Click Save
Step 4: Configure API Permissions¶
- Navigate to API permissions
- Ensure the following permissions are present:
openidprofileemailUser.Read
Step 5: Configure Groups Claims (Optional)¶
To pass group membership to SPSA:
- Navigate to Token configuration
- Click Add groups claim
- Select Security groups
- Under ID: Enable Group ID
- Click Add
Step 6: Construct Discovery URL¶
The OpenID Connect Discovery URL for Entra ID:
https://login.microsoftonline.com/{TENANT-ID}/v2.0/.well-known/openid-configuration
Replace {TENANT-ID} with your Directory (tenant) ID from Step 2.
Step 7: Configure SPSA for OIDC¶
Contact Skillplan support to configure SPSA with your OIDC settings. You will need:
| Parameter | Value |
|---|---|
| Authorization Endpoint | https://login.microsoftonline.com/{TENANT-ID}/oauth2/v2.0/authorize |
| JWKS Endpoint | https://login.microsoftonline.com/{TENANT-ID}/discovery/v2.0/keys |
| Issuer | https://login.microsoftonline.com/{TENANT-ID}/v2.0 |
| Client ID | Application (client) ID from Step 2 |
| Redirect URI | https://spsa.yourdomain.com/guacamole/ |
| Scope | openid profile email |
| Username Claim | preferred_username |
| Groups Claim | groups (if configured in Step 5) |
Step 8: Create SPSA Users¶
- Log in to SPSA Portal with local admin account
- Go to Settings → Users
- Create users with usernames matching Entra ID (typically email or UPN)
- Important: Do NOT set a password for OIDC users
- Assign appropriate connection permissions
Conditional Access Policies¶
When using Entra ID, you can leverage Conditional Access Policies for enhanced security:
| Policy | Description |
|---|---|
| Require MFA | Force multi-factor authentication via Entra ID |
| Location-based | Restrict access by geographic location |
| Device Compliance | Require compliant/managed devices |
| Risk-based | Block risky sign-ins |
| Session Controls | Limit session duration |
Defense in Depth
Conditional Access Policies in Entra ID complement SPSA's built-in MFA for layered security.
Configure Conditional Access¶
- In Azure Portal, navigate to Microsoft Entra ID → Security → Conditional Access
- Click New policy
- Configure:
- Users: Select users/groups
- Cloud apps: Select your SPSA application
- Conditions: Configure location, device, risk level
- Grant: Require MFA, compliant device, etc.
- Enable policy and save
Troubleshooting¶
SAML Issues¶
| Problem | Symptom | Solution |
|---|---|---|
| Validation Error | "SAML validation failed" | Verify Entity ID and Callback URL match exactly (including trailing slash) |
| User Not Found | Login succeeds but "User not found" | Create user in SPSA with exact email address from Entra ID; do NOT set password |
| Time Sync Error | Intermittent failures | Ensure SPSA time is synchronized (max 5 minutes drift allowed) |
| Certificate Error | SSL/TLS errors | Verify SPSA has valid SSL certificate |
OIDC Issues¶
| Problem | Symptom | Solution |
|---|---|---|
| No ID Token | Redirect works but no login | Enable "ID tokens" in Authentication settings |
| Missing Groups | Auth works but no group membership | Add groups claim in Token configuration |
| Redirect Mismatch | Error after Entra ID login | Verify Redirect URI matches exactly in App Registration |
| Invalid Issuer | Token validation fails | Verify Issuer URL includes correct Tenant ID |
General Issues¶
| Problem | Solution |
|---|---|
| Cannot access SPSA after SSO config | Use local admin account to troubleshoot; local auth remains available |
| Users see wrong connections | Verify user-to-connection permissions in SPSA |
| Session timeout too short | Adjust token validity settings |
Best Practices¶
Security Recommendations¶
- Always use HTTPS - SPSA uses Caddy for automatic SSL
- Implement Conditional Access - Use Entra ID policies for MFA, location, device compliance
- Use Groups for Access Management - Create dedicated Entra ID groups for SPSA access
- Limit Network Access - SPSA should only be accessible to authorized networks
- Enable Audit Logging - Monitor Entra ID sign-in logs and SPSA session history
- Regular Access Reviews - Periodically review user access in both Entra ID and SPSA
User Management¶
| Practice | Recommendation |
|---|---|
| User Creation | Create SPSA users matching Entra ID identities |
| Password Policy | Do NOT set passwords for SSO users |
| Group Mapping | Use Entra ID groups for connection access control |
| Offboarding | Disable in Entra ID AND remove from SPSA |
Support¶
For authentication setup assistance:
| support@skill-plan.com | |
| Website | https://www.skill-plan.com |