Back to Guides
Intermediate
40 minutes
SSO Configuration Guide
Configure single sign-on with your identity provider. Support for OIDC and SAML protocols with automatic role mapping and user provisioning.
Overview
TigerAccess supports both OIDC and SAML protocols for SSO integration:
- OIDC Support: Okta, Azure AD, Google Workspace, Auth0, and more
- SAML 2.0: Compatible with all major enterprise IdPs
- Auto Provisioning: Create users automatically on first login
- Role Mapping: Map IdP groups to TigerAccess roles
Prerequisites
- TigerAccess auth service running with HTTPS enabled
- Admin access to your identity provider
- Public domain name for TigerAccess (e.g., tigeraccess.example.com)
- Valid SSL certificate for your domain
Okta (OIDC) Configuration
Step 1: Create Okta Application
- Log in to Okta Admin Console
- Navigate to Applications → Create App Integration
- Select "OIDC - OpenID Connect"
- Choose "Web Application"
- Set redirect URI:
https://tigeraccess.example.com:3080/v1/webapi/oidc/callback - Note the Client ID and Client Secret
Step 2: Configure Groups Claims
In Okta, configure group claims to send group membership:
- In your app, go to Sign On → OpenID Connect ID Token
- Add a groups claim with filter: "Matches regex: .*"
- Value type: "Expression" with value:
getFilteredGroups(app.profile.groupwhitelist, "group.name", 100)
Step 3: Configure TigerAccess
tac connectors create okta --spec - <<EOF
kind: oidc
version: v3
metadata:
name: okta
spec:
issuer_url: "https://your-org.okta.com"
client_id: "YOUR_CLIENT_ID"
client_secret: "YOUR_CLIENT_SECRET"
redirect_url: "https://tigeraccess.example.com:3080/v1/webapi/oidc/callback"
display: "Okta"
scope: ["openid", "profile", "email", "groups"]
claims_to_roles:
- claim: "groups"
value: "TigerAccess-Admins"
roles: ["access", "editor"]
- claim: "groups"
value: "TigerAccess-Developers"
roles: ["developer"]
EOFAzure AD (OIDC) Configuration
Step 1: Register Application
- Log in to Azure Portal
- Navigate to Azure Active Directory → App registrations
- Click "New registration"
- Set redirect URI:
https://tigeraccess.example.com:3080/v1/webapi/oidc/callback - Click "Register"
Step 2: Create Client Secret
- In your app, go to Certificates & secrets
- Click "New client secret"
- Add description and expiration
- Copy the secret value (shown only once)
Step 3: Configure API Permissions
- Go to API permissions
- Add Microsoft Graph permissions: User.Read, GroupMember.Read.All
- Grant admin consent
Step 4: Configure TigerAccess
tac connectors create azure-ad --spec - <<EOF
kind: oidc
version: v3
metadata:
name: azure-ad
spec:
issuer_url: "https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0"
client_id: "YOUR_APPLICATION_ID"
client_secret: "YOUR_CLIENT_SECRET"
redirect_url: "https://tigeraccess.example.com:3080/v1/webapi/oidc/callback"
display: "Azure AD"
scope: ["openid", "profile", "email", "User.Read", "GroupMember.Read.All"]
claims_to_roles:
- claim: "groups"
value: "ADMIN_GROUP_ID"
roles: ["access", "editor"]
- claim: "groups"
value: "DEVELOPER_GROUP_ID"
roles: ["developer"]
EOFGoogle Workspace (OIDC) Configuration
Step 1: Create OAuth 2.0 Client
- Go to Google Cloud Console
- Navigate to APIs & Services → Credentials
- Create OAuth 2.0 Client ID
- Application type: Web application
- Authorized redirect URI:
https://tigeraccess.example.com:3080/v1/webapi/oidc/callback - Note Client ID and Client Secret
Step 2: Configure TigerAccess
tac connectors create google --spec - <<EOF
kind: oidc
version: v3
metadata:
name: google
spec:
issuer_url: "https://accounts.google.com"
client_id: "YOUR_CLIENT_ID.apps.googleusercontent.com"
client_secret: "YOUR_CLIENT_SECRET"
redirect_url: "https://tigeraccess.example.com:3080/v1/webapi/oidc/callback"
display: "Google"
scope: ["openid", "profile", "email"]
google_admin_email: "admin@example.com"
google_service_account_uri: "path/to/service-account.json"
claims_to_roles:
- claim: "hd"
value: "example.com"
roles: ["access"]
EOFSAML Configuration
Step 1: Get SAML Metadata
# Download TigerAccess metadata
curl https://tigeraccess.example.com:3080/v1/webapi/saml/metadata > tigeraccess-metadata.xmlStep 2: Configure SAML in IdP
In your IdP (Okta, OneLogin, etc.):
- Create a new SAML application
- Upload the TigerAccess metadata file
- Or manually configure:
- ACS URL:
https://tigeraccess.example.com:3080/v1/webapi/saml/acs - Entity ID:
https://tigeraccess.example.com:3080 - Name ID format: EmailAddress
- ACS URL:
- Download IdP metadata file
Step 3: Configure TigerAccess
tac connectors create saml-idp --spec - <<EOF
kind: saml
version: v2
metadata:
name: saml-idp
spec:
acs: "https://tigeraccess.example.com:3080/v1/webapi/saml/acs"
entity_descriptor: |
$(cat idp-metadata.xml | sed 's/^/ /')
attributes_to_roles:
- name: "groups"
value: "Admins"
roles: ["access", "editor"]
- name: "groups"
value: "Developers"
roles: ["developer"]
display: "Corporate SSO"
EOFRole Mapping
Dynamic Role Assignment
Map IdP groups/claims to TigerAccess roles dynamically:
# Multiple role mappings
claims_to_roles:
# Exact match
- claim: "groups"
value: "TigerAccess-SuperAdmins"
roles: ["access", "editor", "auditor"]
# Regex match
- claim: "groups"
value: "TigerAccess-.*-Admins"
roles: ["access", "editor"]
# Email domain
- claim: "email"
value: "*@example.com"
roles: ["access"]Default Roles
# Assign default roles to all SSO users spec: # ... other config ... default_roles: ["access"] # Optional: require explicit role mapping allow_default_role: true
Testing SSO
Test SSO Login
# CLI SSO login
tac login --auth=okta --proxy=proxy.example.com:3023
# Or use web UI
# Navigate to https://tigeraccess.example.com:3080Verify User Roles
# Check your current user info
tac status
# View all SSO users
tac users ls --auth-type=ssoTest Role Mapping
# View connector configuration
tac connectors show okta
# Test role mapping
tac connectors test okta --user=test@example.comTroubleshooting
Redirect URI Mismatch
Ensure the redirect URI in your IdP exactly matches TigerAccess configuration:
# Check configured redirect URL
tac connectors show okta | grep redirect_urlGroups Not Mapping
Verify group claims are included in the ID token:
# Enable debug logging
# In config.yaml:
log:
severity: DEBUG
# Check auth logs
journalctl -u tigeraccess -f | grep OIDCCertificate Errors
Ensure TigerAccess has a valid SSL certificate:
# Test SSL certificate
openssl s_client -connect tigeraccess.example.com:3080
# Verify in browser
# Navigate to https://tigeraccess.example.com:3080On This Page
Ready to Secure Your Infrastructure?
Join thousands of security-conscious teams using TigerAccess to protect their critical infrastructure and AI agents.
No credit card required • 14-day free trial • Enterprise support available