Tailscale
This guide explains how to set up Single Sign-On (SSO) between SmartLink and Tailscale using OpenID Connect with WebFinger for simplified configuration.
Prerequisites
- Tailscale account with a plan supporting custom SSO (Business or Enterprise)
- Administrative access to Tailscale
- Domain verified in Tailscale
- Application configured in SmartLink with OpenID Connect
- WebFinger configured on SmartLink (optional but recommended)
Overview
Tailscale supports SSO authentication via OpenID Connect with a unique feature: WebFinger. This allows users to simply log in with their email address without needing to know the provider's URL.
Configuration in SmartLink
1. Create the application
- Log in to SmartLink as an administrator
- Go to Applications → Add
- Create a new application:
- Name: Tailscale
- URL:
https://login.tailscale.com - Description: VPN Mesh Tailscale
- Icon: Choose or upload the Tailscale icon
2. Configure OpenID Connect
- In the Authentication tab
- Select OpenID Connect as the authentication type
- Configure the parameters:
- Client ID:
tailscale-xxxxxx(will be generated automatically) - Client Secret:
secret-xxxxxx(will be generated automatically) - App ID:
[appid](unique identifier of the application in SmartLink) - Client Type: Confidential
- Client ID:
3. Configure Redirect URLs
Add the following URLs to Allowed Redirect URLs:
https://login.tailscale.com/a/oauth_response
https://controlplane.tailscale.com/a/oauth_response
4. Configure Scopes and Claims
Required Scopes:
openidprofileemail
Additional Claims (optional):
groups: To map SmartLink groups to Tailscale ACLspicture: For user avatar
5. WebFinger Configuration (Recommended)
WebFinger allows users to log in with their email instead of the full provider URL.
Verify WebFinger Configuration
Your domain (not your SmartLink) should automatically expose WebFinger at:
https://<yourdomain>/.well-known/webfinger
Test with:
curl "https://example.com/.well-known/webfinger"
The response should contain:
{
"subject": "acct:user@example.com",
"links": [
{
"rel": "http://openid.net/specs/connect/1.0/issuer",
"href": "https://your-smartlink.link.vaultys.org/api/oidc/[appid]"
}
]
}
Configuration in Tailscale
1. Access SSO Settings
- Log in to Tailscale Admin Console
- Go to Settings → Identity provider
- Click on Configure custom OIDC
2. Configure OpenID Connect Provider
Fill in the following fields:
- Issuer URL:
https://your-smartlink.link.vaultys.org - Client ID:
[Copy from SmartLink] - Client Secret:
[Copy from SmartLink]
Note: The application created in SmartLink automatically generates an
[appid]that will be used in the endpoint URLs.
3. Endpoint Configuration (if not auto-discovered)
If Tailscale does not automatically detect the endpoints via .well-known/openid-configuration, configure manually:
- Configuration URL:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration - Authorization endpoint:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/authorize - Token endpoint:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/token - UserInfo endpoint:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo - JWKS endpoint:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/jwks
4. Attribute Mapping
User mapping configuration:
- Email claim:
email - Name claim:
nameoremail - Groups claim:
groups(if using group-based ACLs)
5. Domain Configuration
In Email domain requirements:
- Add your email domain:
@example.com - Enable Allow only verified domains