You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-4Lines changed: 36 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -94,12 +94,42 @@ TSFlow can embed a Tailscale node and serve itself directly on your tailnet, eli
94
94
|`TSFLOW_FUNNEL`| Expose via Tailscale Funnel |`false`|
95
95
|`TSFLOW_STATE_DIR`| tsnet state persistence directory |`./data/tsnet-state`|
96
96
97
+
##### Workload Identity Federation
98
+
99
+
tsnet mode supports [workload identity federation](https://tailscale.com/kb/1236/workload-identity) as an alternative to OAuth secrets. This lets tsflow authenticate using platform identity (AWS, GCP, GitHub Actions, Azure) without managing secrets.
100
+
101
+
| Variable | Description | Default |
102
+
|----------|-------------|---------|
103
+
|`TS_CLIENT_ID`| Federated client ID | - |
104
+
|`TS_ID_TOKEN`| ID token from identity provider | - |
105
+
|`TS_AUDIENCE`| Audience for requesting platform tokens | - |
106
+
107
+
When `TS_CLIENT_ID` is set, tsflow uses WIF instead of OAuth `ClientSecret` for the tsnet node. The platform token is auto-detected from the runtime environment. Set either `TS_ID_TOKEN` or `TS_AUDIENCE`, not both. You must also set `TSFLOW_TAGS`.
108
+
109
+
> **Note:** OAuth credentials (`TAILSCALE_OAUTH_CLIENT_ID` and `TAILSCALE_OAUTH_CLIENT_SECRET`) are still required for Tailscale API access (fetching devices, network logs). WIF only replaces the tsnet node authentication secret.
110
+
97
111
**Requirements:**
98
-
- OAuth credentials (API keys are not supported in tsnet mode)
99
-
- ACL tags must be allowed for the OAuth client to register nodes
112
+
- OAuth credentials or workload identity federation (API keys are not supported in tsnet mode)
113
+
- ACL tags must be allowed for the OAuth client or federated identity to register nodes
100
114
- For Funnel, the ACL must grant funnel access to the tag
101
115
102
-
**Example:**
116
+
**tsnet mode serves on both port 80 (HTTP) and port 443 (HTTPS).**
0 commit comments