Authentication Providers
Authentication providers determine how users log in to your captive portal. You can enable multiple providers (email, social login, SMS, vouchers, SAML, or payment) to give users options that match your venue and audience.
Quick Start
- Open your Captive Portal settings
- Navigate to Authentication Providers
- Click Add Provider
- Select provider type (Email, Social, SMS, etc.)
- Configure provider-specific settings
- Add required domains to your Walled Garden
- Test authentication flow
Provider Comparison
Choose the right authentication method for your use case:
| Provider | User Friction | Data Collected | Best For | Setup Complexity |
|---|---|---|---|---|
| Low | Email, optional name | Marketing, newsletters | Simple | |
| Very Low | Email, name, profile | General public | Moderate | |
| Very Low | Email, name, profile | Cafés, retail | Moderate | |
| Low | Email, name, company | Business venues, co-working | Moderate | |
| Twitter/X | Low | Username, name | Events, media | Moderate |
| Apple | Very Low | Email (may be hidden) | Privacy-conscious users | Complex |
| SMS | Medium | Phone number | High security, verification | Moderate |
| Voucher | Low | None (pre-registered) | Hotels, events, controlled access | Simple |
| Username/Password | Medium | Credentials | Returning users, membership | Simple |
| SAML/SSO | Very Low | Enterprise profile | Corporate, education | Complex |
| Payment | High | Payment + contact info | Paid WiFi, premium access | Moderate |
Quick Selection Guide
Maximize sign-ups (lowest friction):
- Google + Facebook + Email
Collect marketing data:
- Email (with custom fields) + Social login
Enterprise/Corporate:
- SAML + Email (for visitors)
Hotels/Hospitality:
- Voucher (room guests) + Payment (day visitors)
Events/Conferences:
- Voucher (pre-registered) + SMS (walk-ins)
High security requirements:
- SMS + SAML
Available Providers
Email Authentication
Users enter their email address to receive access or a verification link.
Configuration:
- Enable email verification (sends confirmation link)
- Set email validity period
- Customize email template
Use cases:
- Marketing data collection
- Simple guest access
- Email-based promotions
Email Template Customization
Customize the emails sent to users with HTML templates and variables.
Available Variables:
| Variable | Description |
|---|---|
| User's email address |
| User's full name (if collected) |
| Email verification URL |
| Numeric verification code |
| WiFi network SSID |
| Captive portal name |
| Link/code expiration time |
| Your company name |
Welcome Email Template Example:
Password Reset Email Template:
Email Domain Restrictions
Control which email domains can register:
Allow List (Whitelist): Only allow specific domains (e.g., corporate emails only):
Block List (Blacklist): Block disposable/temporary email providers:
Configuration:
- Navigate to Captive Portal > Authentication Providers > Email
- Enable Domain Restrictions
- Select Allow List or Block List mode
- Enter domains (one per line)
Rate Limiting
Prevent abuse with rate limits:
| Setting | Recommended Value | Description |
|---|---|---|
| Emails per address | 3 per hour | Prevent spam to same address |
| Emails per IP | 10 per hour | Prevent bulk registrations |
| Failed attempts | 5 per 15 min | Lock after failed verifications |
| Cooldown period | 15 minutes | Wait time after lockout |
Social Login
Allow users to authenticate with their existing social accounts.
Supported Platforms:
- Twitter/X
- Apple
Data Collected from Social Providers
Each provider returns different user data:
| Provider | Data Available | Notes |
|---|---|---|
| Email, Name, Profile Picture, Locale | Most reliable email verification | |
| Email, Name, Profile Picture, Age Range | Email may require additional permission | |
| Email, Name, Profile Picture, Company, Position | Best for B2B/professional venues | |
| Twitter/X | Username, Name, Profile Picture | Email requires elevated access |
| Apple | Email, Name | Users can hide real email (relay address) |
Data Mapping Configuration:
Map social provider data to IronWiFi user fields:
Setup Requirements:
- Create an OAuth app on the platform
- Configure redirect URIs
- Enter Client ID and Secret in IronWiFi
Detailed Setup Guides:
Google Login Setup
- Go to Google Cloud Console
- Create a new project or select existing
- Navigate to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID
- Select Web application
- Add authorized redirect URI:
https://splash.ironwifi.com/api/signin/google/callback - Copy Client ID and Client Secret
- In IronWiFi, add Google provider with these credentials
Walled Garden entries:
Facebook Login Setup
- Go to Facebook Developers
- Click My Apps > Create App
- Select Consumer or Business type
- Add Facebook Login product
- Navigate to Settings > Basic
- Copy App ID and App Secret
- In Facebook Login > Settings, add redirect URI:
- In IronWiFi, add Facebook provider with credentials
Walled Garden entries:
LinkedIn Login Setup
- Go to LinkedIn Developers
- Click Create App
- Fill in app details and verify your company page
- Navigate to Auth tab
- Add redirect URL:
- Copy Client ID and Client Secret
- Under Products, request access to Sign In with LinkedIn
- In IronWiFi, add LinkedIn provider with credentials
Walled Garden entries:
Apple Login Setup
- Go to Apple Developer
- Navigate to Certificates, Identifiers & Profiles
- Create an App ID with Sign In with Apple capability
- Create a Services ID for web authentication
- Configure the Services ID with your domain and redirect URL
- Create a Key for Sign In with Apple
- Download the key file ()
.p8 - In IronWiFi, configure with Team ID, Key ID, Services ID, and key file
Walled Garden entries:
Twitter/X Login Setup
- Go to Twitter Developer Portal
- Create a new project and app
- Navigate to Keys and tokens
- Generate OAuth 2.0 Client ID and Client Secret
- In app settings, add callback URL:
https://splash.ironwifi.com/api/signin/twitter/callback - Enable OAuth 2.0 with appropriate scopes
- In IronWiFi, add Twitter provider with credentials
Walled Garden entries:
SMS Verification
Users receive a verification code via text message.
Requirements:
- SMS gateway integration (Twilio, Clickatell, etc.)
- SMS credits/account balance
Twilio Setup
- Create account at Twilio
- Go to Console Dashboard
- Note your Account SID and Auth Token
- Navigate to Phone Numbers > Buy a Number
- Purchase a phone number with SMS capability
- In IronWiFi:
- Select Twilio as SMS provider
- Enter Account SID
- Enter Auth Token
- Enter From Number (your Twilio number, format: +1234567890)
- Configure message template (use for verification code)
{{code}} - Set code expiration time (recommended: 5-10 minutes)
Example message template:
Walled Garden entries:
*.twilio.com
Clickatell Setup
- Create account at Clickatell
- Navigate to SMS > Create Integration
- Select REST API
- Copy your API Key
- In IronWiFi:
- Select Clickatell as SMS provider
- Enter API Key
- Configure sender ID (if applicable)
- Set message template and expiration
Walled Garden entries:
*.clickatell.com
Configuration options:
- Code length: 4-8 digits (default: 6)
- Code expiration: 1-30 minutes
- Retry limit: Maximum verification attempts
- Phone number format: International format recommended
Voucher Codes
Pre-generated access codes for controlled distribution.
Configuration:
- Enable voucher authentication
- Set voucher validation rules
- Configure input field appearance
See also: Vouchers
Username/Password
Traditional authentication against IronWiFi user database.
Configuration:
- Enable username/password login
- Optional: Allow self-registration
- Optional: Enable password reset
SAML Single Sign-On
Enterprise authentication via SAML identity providers.
Supported IdPs:
- Microsoft Entra ID
- Okta
- Google Workspace
- OneLogin
- Any SAML 2.0 compliant IdP
SAML URLs (from Captive Portal settings):
- ACS URL (Assertion Consumer Service)
- Logout URL
- Entity ID
Microsoft Entra ID Setup (SAML)
- Go to Azure Portal > Microsoft Entra ID
- Navigate to Enterprise Applications > New Application
- Click Create your own application
- Name it "IronWiFi Captive Portal" and select non-gallery application
- Go to Properties and set User assignment required? to No
- Go to Single sign-on > Select SAML
- In Basic SAML Configuration:
- Identifier (Entity ID): e.g.,
https://us-west1.ironwifi.com/api/signin/saml2 - Reply URL (ACS URL): e.g.,
https://us-west1.ironwifi.com/api/signin/saml2?acs - Sign on URL: Your splash page URL
- (Get exact URLs from IronWiFi Console > Captive Portals > Authentication Providers)
- Identifier (Entity ID): e.g.,
- Critical: In Attributes & Claims, click Unique User Identifier (Name ID):
- Change Source attribute to user.mail
- Add additional claims:
- → user.mail
emailaddress - → user.givenname
givenname - → user.surname
surname
- In SAML Signing Certificate, copy:
- Login URL
- Microsoft Entra Identifier
- Certificate (Base64) - download and copy contents
- In IronWiFi, add SAML2 provider with:
- SSO URL: Login URL from Azure
- IDP Entity ID: Microsoft Entra Identifier
- Certificate: Certificate content
- NameID Format:
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Walled Garden entries:
Microsoft Entra ID Setup (OAuth)
For simpler setup without SAML, use OAuth:
- Go to Azure Portal > Microsoft Entra ID > App registrations
- Click New registration
- Configure:
- Name: IronWiFi OAuth
- Redirect URI: (adjust for your region)
https://us-west1.ironwifi.com/api/signin/azure
- Copy the Application (client) ID
- Go to Certificates & secrets > New client secret
- Copy the secret value immediately
- Go to API permissions > Add Microsoft Graph > Delegated permissions:
- ,
openid,profile,emailUser.Read - Click Grant admin consent if required
- In IronWiFi, add Social Login - OAuth 2.0 provider:
- Provider: Azure
- Client ID: Application ID
- Client Secret: Secret value
Walled Garden entries: Same as SAML above
Okta Setup
- Go to Okta Admin Console
- Navigate to Applications > Create App Integration
- Select SAML 2.0 > Click Next
- Configure General Settings:
- App name: IronWiFi Captive Portal
- App logo: Optional
- Configure SAML Settings:
- Single sign-on URL: ACS URL from IronWiFi
- Audience URI (SP Entity ID): Entity ID from IronWiFi
- Name ID format: EmailAddress
- Application username: Email
- Add Attribute Statements:
- → user.email
email - → user.firstName
firstName - → user.lastName
lastName
- Click Next > Finish
- Go to Sign On tab > View SAML setup instructions
- Copy Identity Provider SSO URL and Certificate to IronWiFi
Walled Garden entries:
Google Workspace Setup
- Go to Google Admin Console
- Navigate to Apps > Web and mobile apps
- Click Add app > Add custom SAML app
- Enter app name: "IronWiFi Captive Portal"
- Copy Google IdP information (SSO URL, Entity ID, Certificate)
- Configure Service Provider details:
- ACS URL: From IronWiFi Captive Portal settings
- Entity ID: From IronWiFi Captive Portal settings
- Name ID format: EMAIL
- Name ID: Basic Information > Primary email
- Add attribute mapping:
- → Primary email
email - → First name
firstName - → Last name
lastName
- Click Finish
- Enable the app for your organizational units
- In IronWiFi, enter Google IdP details
Walled Garden entries:
OneLogin Setup
- Go to OneLogin Admin
- Navigate to Applications > Add App
- Search for "SAML Custom Connector" > Select it
- Configure:
- Display Name: IronWiFi Captive Portal
- Audience (EntityID): Entity ID from IronWiFi
- ACS URL: ACS URL from IronWiFi
- ACS URL Validator: Same as ACS URL (escaped)
- Go to SSO tab, copy:
- SAML 2.0 Endpoint
- X.509 Certificate
- Configure attribute mappings in Parameters tab
- In IronWiFi, enter OneLogin IdP details
Walled Garden entries:
*.onelogin.com
Payment Integration
Require payment for network access.
Supported Gateways:
- Stripe
- Braintree
- PayPal
Stripe Setup
- Create account at Stripe
- Go to Developers > API keys
- Copy Publishable key and Secret key
- In IronWiFi Captive Portal settings:
- Enable Payment provider
- Select Stripe
- Enter Publishable Key
- Enter Secret Key
- Configure webhook (optional but recommended):
- In Stripe: Developers > Webhooks > Add endpoint
- URL:
https://splash.ironwifi.com/api/webhooks/stripe - Events: ,
payment_intent.succeededpayment_intent.payment_failed
Creating Access Plans:
- In IronWiFi, go to Access Plans
- Click Add Plan
- Configure:
- Name: e.g., "1 Hour Access", "Day Pass"
- Duration: Session length
- Price: Amount in your currency
- Bandwidth: Optional speed limits
- Data cap: Optional data limit
Example plans:
| Plan | Duration | Price | Bandwidth |
|---|---|---|---|
| Quick Access | 1 hour | $2.99 | Unlimited |
| Day Pass | 24 hours | $9.99 | Unlimited |
| Week Pass | 7 days | $29.99 | Unlimited |
| Premium | 24 hours | $14.99 | 100 Mbps |
Walled Garden entries:
Braintree Setup
- Create account at Braintree
- Go to Settings > API
- Note your Merchant ID, Public Key, and Private Key
- In IronWiFi:
- Enable Payment provider
- Select Braintree
- Enter credentials
- Select environment (Sandbox for testing, Production for live)
- Configure accepted payment methods:
- Credit/Debit cards
- PayPal
- Apple Pay
- Google Pay
Walled Garden entries:
PayPal Setup
- Create business account at PayPal
- Go to Developer Dashboard
- Create an app under REST API apps
- Copy Client ID and Secret
- In IronWiFi:
- Enable Payment provider
- Select PayPal
- Enter Client ID and Secret
- Select environment (Sandbox/Live)
Walled Garden entries:
Payment Best Practices
- Test in sandbox first - Use test credentials before going live
- Clear pricing - Display all fees upfront
- Provide receipts - Enable email confirmations
- Handle failures gracefully - Show clear error messages
- Offer multiple plans - Give users options
- Consider refund policy - Document in terms of service
Provider Priority
When multiple providers are enabled, you can set the display order:
- Drag providers to reorder
- First provider appears most prominently
- Consider user preferences for your venue
Combining Providers
Common Combinations
Hotel/Hospitality:
- Voucher (primary - included in room rate)
- Payment (for extended access)
Café/Restaurant:
- Email (simple, captures data)
- Social login (faster)
Enterprise Guest:
- SAML (employees)
- Email (visitors)
Events:
- Voucher (registered attendees)
- SMS (walk-ins)
Custom Authentication
For advanced needs, implement custom authentication:
REST API Provider
Authenticate against your own backend:
Response: Return HTTP 200 for success, 401 for failure.
Walled Garden Requirements
Each provider may require specific domains in your Walled Garden:
| Provider | Required Domains |
|---|---|
| accounts.google.com, googleapis.com | |
| facebook.com, fbcdn.net | |
| SMS | Your SMS provider's domains |
| Payment | Stripe.com, Braintree domains |
See Walled Garden Guide for complete lists.
Best Practices
- Minimize friction - Fewer steps = higher completion
- Match your audience - Business events may prefer LinkedIn, cafés may prefer email
- Always have a fallback - Offer at least two options
- Test thoroughly - Verify all providers work on different devices
- Consider privacy - Be transparent about data collection
Troubleshooting
OAuth Error: Redirect URI Mismatch
The redirect URI in your OAuth app doesn't match IronWiFi's expected URI.
Solution: Verify the exact redirect URI from your IronWiFi Captive Portal settings and update your OAuth app configuration.
Social Login Button Not Appearing
Causes:
- Provider not enabled
- Missing API credentials
- JavaScript errors
Solution: Check browser console for errors, verify credentials are entered correctly.
"Access Denied" After Social Login
Causes:
- OAuth app not approved/published
- Missing required scopes
- Account restrictions
Solution: Ensure your OAuth app is in production mode (not development/testing only).
Quick Reference
Walled Garden Cheat Sheet
Copy these entries based on your enabled providers:
Setup Checklist
Use this checklist when configuring a new authentication provider:
- Create OAuth app / API account on provider platform
- Copy credentials (Client ID, Secret, API Key)
- Enter credentials in IronWiFi Captive Portal settings
- Add required domains to Walled Garden
- Configure redirect URI (if OAuth)
- Set to Production mode (not Sandbox/Development)
- Test on desktop browser
- Test on iOS device (in CNA and Safari)
- Test on Android device
- Verify user data is being collected
Frequently Asked Questions
Q: How many authentication providers can I enable on a single captive portal?
You can enable as many providers as needed. Users see all enabled options on the splash page. Drag providers to reorder them — the first provider appears most prominently. Common combinations include Google + Email for public venues or Voucher + Payment for hotels.
Q: Why does social login fail with a "redirect URI mismatch" error?
The redirect URI configured in your OAuth app (Google, Facebook, LinkedIn, etc.) does not match the URI expected by IronWiFi. Check your IronWiFi Captive Portal settings for the exact redirect URI, then update your OAuth app configuration to match. The URIs must be identical, including the protocol (https) and path.
Q: Do I need to add walled garden entries for every authentication provider?
Yes. Unauthenticated users cannot reach any external domains by default. Each provider's OAuth or API domains must be added to the walled garden (pre-authorization access list) on your access point or controller. Without these entries, users cannot reach the login pages for social providers, SMS verification, or payment gateways.
Q: Can I use Microsoft Entra ID for both employee SAML login and guest access?
Yes. Configure SAML as a provider for employees who authenticate via their corporate Entra ID accounts. Add a separate Email or Social Login provider for visitors who do not have corporate credentials. Both providers can be active simultaneously on the same captive portal.
Q: How do I set up paid WiFi with different access tiers?
Enable a payment provider (Stripe, Braintree, or PayPal), then create multiple access plans with different durations, prices, and bandwidth limits. For example, offer a $2.99 one-hour pass and a $9.99 day pass. Users choose their plan on the splash page and pay before gaining access.
Related Topics
- Captive Portal Configuration -- create and manage portals that use these authentication providers
- Portal Page Customization -- design splash, success, and error pages for your portal
- Walled Garden Configuration -- add provider domains to the pre-authentication access list
- WiFi Access Vouchers -- generate and distribute access codes for guest networks
- Facebook Social Login Setup -- step-by-step Facebook OAuth app creation
- Troubleshooting Social Login -- resolve OAuth, popup, and redirect issues
Was this page helpful?