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
Refactor documentation for clarity and consistency
- Updated sidebar links to correct paths, ensuring accurate navigation to Kubernetes deployment references.
- Standardized formatting across multiple files, including titles and descriptions, for improved readability.
- Enhanced documentation by correcting typos and ensuring consistent terminology, particularly in the context of device identity and Kubernetes configurations.
- Consolidated and improved the organization of documentation related to Pomerium's capabilities and integrations, including the introduction of new sections for WebAuthn device identity.
These changes enhance the overall usability and clarity of the documentation, ensuring users have access to a more coherent and organized resource for managing Pomerium.
Pomerium enforces dynamic, context-aware authorization on every request. This capability extends across deployments of any size or complexity, from single-route use cases to multi-namespace or multi-cluster enterprise environments.
27
34
@@ -35,15 +42,6 @@ Pomerium's approach to authorization is continuous and context-aware, integratin
35
42
-**Namespace-based** and **cluster-based** organization in Enterprise and Zero
36
43
-**Policy languages**: [PPL](#pomerium-policy-language-ppl) for most use cases, [Rego](#rego-policies) for advanced logic
Copy file name to clipboardexpand all lines: content/docs/capabilities/getting-users-identity.mdx
+10-10
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
4
4
title: Identity & Context Verification with JWTs
5
5
description: Learn how Pomerium uses JWTs for identity and context verification, how it fits into a zero trust environment, and four ways to validate the JWT in your upstream service.
6
-
sidebar_label: Identity & Context Verification
6
+
sidebar_label: Continious Identity Verification
7
7
keywords:
8
8
- jwt
9
9
- jwt authentication
@@ -28,6 +28,15 @@ import ExpressApp from '/content/examples/js-sdk/express-server.md';
Pomerium uses JSON Web Tokens (JWTs) to help your upstream services verify a user's identity and additional context (like group membership) at the **application layer**. In a zero trust environment, verifying that **both** the client and server are who they say they are is crucial. Pomerium handles user authentication, then mints a **signed JWT** for every verified and authorized request.
32
41
33
42
By validating that JWT, your application or service confirms:
@@ -43,15 +52,6 @@ This article explains **why** identity & context verification at the application
43
52
3.**Custom application** (using an existing JWT library or Pomerium's SDK)
Copy file name to clipboardexpand all lines: content/docs/capabilities/routing.mdx
+4-6
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
# cSpell:ignore cm9vdDpodW50ZXI0Mg
3
3
4
-
title: Routing, Proxying, and Load Balancing
4
+
title: Routing, Proxying, and Load Balancing with Pomerium
5
5
lang: en-US
6
6
sidebar_label: 'Proxying & Routing'
7
7
description: How to get Pomerium's CLI which be used to proxy TCP services and kubernetes commands
@@ -20,19 +20,17 @@ keywords:
20
20
]
21
21
---
22
22
23
-
# Routing, Proxying, and Load Balancing
24
-
25
-
## Routes
26
-
27
23
<iframe
28
24
width="100%"
29
-
height="500"
25
+
height="600"
30
26
src="https://www.youtube.com/embed/-wAKnj_cY-E"
31
27
frameborder="0"
32
28
webkitallowfullscreen="true"
33
29
mozallowfullscreen="true"
34
30
allowfullscreen="true"></iframe>
35
31
32
+
## Routing
33
+
36
34
A **Route** defines how to access a service running behind Pomerium. This includes authentication (both for Pomerium and passed through to the service), rewrites, header management, load balancing, etc.
37
35
38
36
When first installing Pomerium Enterprise, users may want to import existing routes from the open-source Pomerium core. The **Migrate Routes** button accepts the open-source `config.yaml` file and imports routes from it to Pomerium Enterprise.
Copy file name to clipboardexpand all lines: content/docs/deploy/k8s/configure.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ Integration with your Identity Provider is configured using [`identityProvider`]
48
48
49
49
### Authenticate endpoint
50
50
51
-
Each Pomerium installation has a special route that unauthenticated users are redirected to that handles sign-in via your Identity Provider. It is configured via the [`authenticate`](/docs/deploy/k8s//reference#authenticate) parameter of the [CRD](./reference#authenticate).
51
+
Each Pomerium installation has a special route that unauthenticated users are redirected to that handles sign-in via your Identity Provider. It is configured via the [`authenticate`](/docs/deploy/k8s/reference#authenticate) parameter of the [CRD](./reference#authenticate).
52
52
53
53
The authenticate endpoint DNS address should resolve to an external IP address assigned by your Kubernetes Load Balancer to the `pomerium-proxy` service. If you use `external-dns`, that may be [done automatically](#external-dns).
Copy file name to clipboardexpand all lines: content/docs/deploy/k8s/gateway-api.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -74,7 +74,7 @@ To install the Pomerium Ingress Controller with support for Gateway API:
74
74
75
75
This installs and configures the Ingress Controller, and adds a [GatewayClass](https://gateway-api.sigs.k8s.io/concepts/api-overview/#gatewayclass) named `pomerium-gateway` for use with the Gateway API.
76
76
77
-
1. You will also need to set up a [global Pomerium configuration](/docs/deploy/k8s//configure). This is a minimal example for use with Gateway API:
77
+
1. You will also need to set up a [global Pomerium configuration](/docs/deploy/k8s/configure). This is a minimal example for use with Gateway API:
Copy file name to clipboardexpand all lines: content/docs/deploy/k8s/ingress.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -29,12 +29,12 @@ This document shows you how to configure an Ingress resource that's compatible w
29
29
30
30
**Before you start:**
31
31
32
-
This document assumes you've installed the Pomerium Ingress Controller and added global configuration settings with the [Pomerium CRD](/docs/deploy/k8s//configure).
32
+
This document assumes you've installed the Pomerium Ingress Controller and added global configuration settings with the [Pomerium CRD](/docs/deploy/k8s/configure).
33
33
34
34
If you haven't completed these steps, see the following docs:
The default installation adds `pomerium` [IngressClass](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to your cluster. In order for Pomerium to service your Ingress objects, please set `spec.ingressClassName` to `pomerium`.
89
89
90
-
It is also possible to [set Pomerium to be a default ingress controller](/docs/deploy/k8s//install#set-pomerium-as-default-ingressclass) cluster-wide.
90
+
It is also possible to [set Pomerium to be a default ingress controller](/docs/deploy/k8s/install#set-pomerium-as-default-ingressclass) cluster-wide.
91
91
92
92
### Set Ingress annotations
93
93
@@ -544,7 +544,7 @@ spec:
544
544
545
545
## Metrics
546
546
547
-
Pomerium [exposes](/docs/deploy/k8s//install#metrics) a number of Prometheus style metrics that you may use to monitor your Ingress.
547
+
Pomerium [exposes](/docs/deploy/k8s/install#metrics) a number of Prometheus style metrics that you may use to monitor your Ingress.
548
548
549
549
In order to filter out metrics for a particular Ingress, use `envoy_cluster_name` metric label, that has a `ingressnamespace-ingressname-host-domain-com` format.
Copy file name to clipboardexpand all lines: content/docs/guides/helm.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ This guide will show you how to deploy Pomerium with [Helm] on [Kubernetes].
25
25
26
26
:::warning
27
27
28
-
After re-evaluating the complexity required to both use and manage Helm for Pomerium, we've opted not to continue updating our Helm chart. Instead we've created a simpler deployment method, which you can read about on our [Kubernetes Quickstart](/docs/deploy/k8s//quickstart) page.
28
+
After re-evaluating the complexity required to both use and manage Helm for Pomerium, we've opted not to continue updating our Helm chart. Instead we've created a simpler deployment method, which you can read about on our [Kubernetes Quickstart](/docs/deploy/k8s/quickstart) page.
Copy file name to clipboardexpand all lines: content/docs/integrations/device-context/device-identity.mdx
-133
Original file line number
Diff line number
Diff line change
@@ -67,139 +67,6 @@ The nature of cross-platform keys mean they are not associated with a single end
67
67
68
68
Device identity is the unique ID associated with a device. In the context of zero trust, device identity can be used to authenticate and authorize users and to determine if a device can be trusted before granting a user access to a protected application or service.
Pomerium versions [0.16.0](/docs/core/upgrading#policy-for-device-identity) and up support the use of device identity as a criteria in authorization policies. Pomerium uses the [Web Authentication](https://www.w3.org/TR/webauthn-2/#registration-extension) (WebAuthn) API to bring authentication and authorization based on device identity into your security framework. With Pomerium's device identity support, users can register devices and administrators can limit access to devices they trust.
82
-
83
-
## Device identity features
84
-
85
-
Pomerium Enterprise and Core both support device identity, but Enterprise users can enroll and manage devices in the Enterprise Console.
86
-
87
-
| Features (Enterprise) | Device Identity |
88
-
| --- | :-: |
89
-
|**Pre-approved device enrollment**| Administrators can enroll a new device and generate a registration link for a specific user. |
90
-
|**Device management**| Administrators can view and manage approved and pending devices in the Enterprise Console. |
91
-
|**User-initiated device enrollment**| Users can register their device if a route requires device identity authentication, but can only access the route if their device is approved in the Enterprise Console. |
92
-
|**Features (Core)**|**Device Identity**|
93
-
|**User-initiated device enrollment**| Users can register their device if a route requires device identity authentication and access the route without device approval. |
94
-
95
-
## New enrollment (Enterprise)
96
-
97
-
Device identity with Pomerium relies on a [trust on first use](https://en.wikipedia.org/wiki/Trust_on_first_use) (TOFU) authentication scheme:
98
-
99
-
- Administrators can enroll a device and generate a custom registration link for a specific user. (Registration links are only valid for the selected user.)
100
-
- When a user registers their device with a registration link, the device will automatically be approved following the TOFU authentication scheme.
101
-
102
-
## Manage devices (Enterprise)
103
-
104
-
When an administrator enrolls a device, the Enterprise Console displays the device's status as **Pending Enrollment**.
105
-
106
-
When a user visits the registration link and registers their device, the Enterprise Console updates the device's status to **Approved**.
107
-
108
-
If an administrator deletes a device, the device will be revoked and the link becomes invalid.
109
-
110
-
## Enroll devices as an administrator (Enterprise)
111
-
112
-
Enterprise users can build policies that only grant access to a route if a user's device is approved in the Enterprise Console. (See [Device Matcher](/docs/capabilities/ppl#device-matcher) for more information.)
113
-
114
-
The Enterprise Console's **Manage Devices** GUI provides a dashboard where administrators can enroll devices and generate custom registration links for users in their directory.
115
-
116
-
:::enterprise
117
-
118
-
Before you can generate device registration links for users within your directory, you must sync your directory data first.
119
-
120
-
See [**Directory Sync**](/docs/capabilities/directory-sync) for more information.
**Select Users**: Select a user to send a registration link (the link is only valid for the selected user) <br /> **Route**: Enter a pre-configured route from your Console; Pomerium will use this route to create the custom registration link <br /> **Redirect URL** (optional): Enter a route that users will redirect to after registering their device <br /> **Enrollment Type**:
135
-
136
-
- Select **Any** to allow a user to register any device
137
-
- Select **Secure Enclave Only** to restrict the user to secure enclaves
138
-
139
-

If a Pomerium route [requires device authentication](/docs/capabilities/ppl#device-matcher), the user must register a [trusted execution environment](/docs/concepts/device-identity#authenticated-device-types) (**TEE**) device before accessing the route. Registration differs depending on the device.
150
-
151
-
The steps below cover enrollment of a device by a user. This is available for both Pomerium Core and [Pomerium Enterprise](/docs/deploy/enterprise/install) installations. However, Enterprise users may also receive registration links [generated by their administrators](/docs/integrations/device-context/device-identit), which will mark the newly enrolled device as approved in the Enterprise Console.
152
-
153
-
1. Users are prompted to register a new device when accessing a route that requires device authentication:
154
-
155
-

156
-
157
-
Users can also access the registration page from the special `.pomerium` endpoint available on any route at the bottom of the page:
158
-
159
-

160
-
161
-
1. Select **Register New Device**. Your browser will prompt you to provide access to a device. This will look different depending on the browser, operating system, and device type:
162
-
163
-
<Tabs>
164
-
165
-
<TabItemvalue="Windows"label="Windows">
166
-
167
-

168
-
169
-
</TabItem>
170
-
171
-
<TabItemvalue="Chrome"label="Chrome">
172
-
173
-

174
-
175
-
</TabItem>
176
-
177
-
<TabItemvalue="Firefox"label="Firefox">
178
-
179
-

180
-
181
-
</TabItem>
182
-
183
-
<TabItemvalue="ChromeOS"label="ChromeOS">
184
-
185
-

186
-
187
-
</TabItem>
188
-
189
-
</Tabs>
190
-
191
-
### Find the device ID
192
-
193
-
If a route's policy is configured to only allow specific device IDs, you will see a `450` error even after registering:
194
-
195
-

196
-
197
-
From the `.pomerium` endpoint you can copy your device ID to provide to your Pomerium administrator.
198
-
199
-

200
-
201
-
You can also delete the ID for devices that should no longer be associated with your account.
0 commit comments