Skip to content

Commit 85c7389

Browse files
backport-actions-token[bot]ZPain8464kenjenkins
authored
Updates self-hosted authn doc (#1588)
Updates self-hosted authn doc (#1566) * updates self-hosted authn doc * runs prettier * reformats self-hosted authn page * runs prettier * suggested revisions to self-hosted authenticate service page Also make a small tweak to the hosted authenticate service page for consistent language around the supported products, and update the Identity Providers guides index page to link to all the guides right on that page. * actually make product info langauge consistent * remove example configuration * prettier * small text updates * adds a why subsection * prettier * simplify explanation, move to info admonition * update info admonition title --------- Co-authored-by: zachary painter <[email protected]> Co-authored-by: Kenneth Jenkins <[email protected]>
1 parent dffedce commit 85c7389

File tree

3 files changed

+40
-57
lines changed

3 files changed

+40
-57
lines changed

content/docs/capabilities/hosted-authenticate-service.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ description: Use Pomerium's Hosted Authenticate Service to set up and deploy Pom
1010

1111
Pomerium's **Hosted Authenticate Service** provides a hosted alternative to the self-hosted authenticate service.
1212

13-
Introduced in Pomerium v0.22, the hosted authenticate service is available in Pomerium Zero, open-source Pomerium Core, and Pomerium Enterprise.
13+
Introduced in Pomerium v0.22, the hosted authenticate service is available for open-source Pomerium, Pomerium Zero, and Pomerium Enterprise.
1414

1515
## How the hosted authenticate service works
1616

content/docs/capabilities/self-hosted-authenticate-service.md

Lines changed: 31 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,81 +3,60 @@ id: self-hosted-authenticate-service
33
title: Self-Hosted Authenticate Service
44
sidebar_label: Self-Hosted Authenticate Service
55
keywords: [self-hosted authenticate service url, self-hosted identity provider]
6-
description: Use Pomerium's Self-Hosted Authenticate Service to set up and deploy Pomerium with your own hosted settings.
6+
description: Use Pomerium's Self-Hosted Authenticate Service to deploy Pomerium with your own identity provider.
77
---
88

99
# Self-Hosted Authenticate Service
1010

11-
Pomerium's **Self-Hosted Authenticate Service** allows you to configure your own **Authenticate Service URL** and **Identity Provider**.
11+
Pomerium's **Self-Hosted Authenticate Service** allows you to configure Pomerium with the identity provider of your choice.
1212

13-
The Self-Hosted Authenticate Service is available for both open-source Pomerium Core and Enterprise users.
13+
The self-hosted authenticate service is available for open-source Pomerium, Pomerium Zero, and Pomerium Enterprise.
1414

15-
## How the Self-Hosted Authenticate Service works
15+
:::info
1616

17-
Self-hosting your Pomerium instance requires you to configure an [Authenticate Service URL](/docs/reference/service-urls#authenticate-service-url) and an OIDC-compliant [identity provider](/docs/identity-providers) (IdP).
17+
The _authenticate service_ is one of the [four logical services](/docs/internals/architecture#component-level) that make up Pomerium. The authenticate service is unique in that Pomerium can either run this service itself, or instead use the [Hosted Authenticate Service](/docs/capabilities/hosted-authenticate-service).
18+
19+
:::
20+
21+
## How the self-hosted authenticate service works
22+
23+
To configure the self-hosted authenticate service, you will need to set up:
24+
25+
- a URL for the authenticate service
26+
- an identity provider (IdP)
1827

1928
### Authenticate service URL
2029

21-
The authenticate service URL is an externally accessible URL used by Pomerium's Authenticate Service. You can include your own URL for testing or use Pomerium's localhost URL, which is hardcoded to point to `127.0.0.1`.
30+
The authenticate service URL is a public-facing URL that should resolve to your Pomerium instance. (If running in split service mode, this URL should resolve to the authenticate service.) Whenever a user is required to log in to access a route, Pomerium will redirect the user to the authenticate service using this URL.
2231

23-
```yaml
24-
authenticate_service_url: https://authenticate.localhost.pomerium.io
25-
```
32+
This URL should not contain a path or query parameters. For example, `https://authenticate.corp.example.com`.
2633

27-
### Identity provider
34+
This URL must be different from any of the route URLs you use with Pomerium.
2835

29-
Pomerium's Authenticate Service requires an IdP to authenticate and authorize users. Pomerium supports all major IdP solutions and any IdP that uses OAuth 2.0 and OIDC protocols as well.
36+
See the [Authenticate Service URL](/docs/reference/service-urls#authenticate-service-url) reference page for details on how to configure this setting.
3037

31-
## Configure the Self-Hosted Authenticate Service
38+
:::info Why does Pomerium use a separate authenticate service URL?
3239

33-
To configure Pomerium to use self-hosted services:
40+
In a typical OIDC authentication flow, all redirect URLs must be pre-registered with the IdP. Pomerium uses a single authenticate service URL so that you need to register only one redirect URL with your IdP. This way, Pomerium can protect multiple upstream services without requiring you to update your IdP client whenever you add a new service.
3441

35-
1. Add your authenticate service URL
42+
:::
3643

37-
```yaml pomerium-config.yaml
38-
authenticate_service_url: https://authenticate.localhost.pomerium.io
39-
```
44+
### Identity provider
4045

41-
1. Include your IdP settings
46+
Pomerium relies on an IdP to authenticate users. Pomerium can use any IdP that implements the OpenID Connect (OIDC) protocol.
4247

43-
```yaml pomerium-config.yaml
44-
idp_provider: google
45-
idp_client_id: my_client_id
46-
idp_client_secret: my_client_secret
47-
```
48+
The steps to configure your IdP will vary depending on the specific provider. See [**Identity Providers**](/docs/identity-providers) for a list of guides to configure commonly-used IdPs.
4849

49-
1. Build a route and policy
50+
You will generally need to configure your IdP client to allow an OAuth redirect URL based on your chosen authenticate service URL, with the path `/oauth2/callback` appended to it.
5051

51-
```yaml pomerium-config.yaml
52-
routes:
53-
- from: https://verify.localhost.pomerium.io
54-
to: http://verify:8000
55-
policy:
56-
- allow:
57-
or:
58-
- email:
59-
60-
pass_identity_headers: true
61-
```
52+
For example, if your authenticate service URL is `https://authenticate.corp.example.com`, you should configure your identity provider to allow the redirect URI `https://authenticate.corp.example.com/oauth2/callback`.
6253

63-
Your self-hosted configuration file might look like this:
54+
:::tip
6455

65-
```yaml pomerium-config.yaml
66-
authenticate_service_url: https://authenticate.localhost.pomerium.io
56+
If you require a different callback path than `/oauth2/callback`, you can use the [Authenticate Callback Path](/docs/reference/authenticate-callback-path) setting to change the callback path.
6757

68-
idp_provider: google
69-
idp_client_id: my_client_id
70-
idp_client_secret: my_client_secret
58+
:::
7159

72-
routes:
73-
- from: https://verify.localhost.pomerium.io
74-
to: http://verify:8000
75-
policy:
76-
- allow:
77-
or:
78-
- email:
79-
80-
pass_identity_headers: true
81-
```
60+
Once you have set up an IdP client, you will need to configure Pomerium with the IdP name, client ID and client secret, and possibly a URL assigned to your individual IdP client.
8261

83-
See the [Pomerium Core Docker quickstart](/docs/core/quickstart) for more examples.
62+
See the [Identity Provider Settings](/docs/reference/identity-provider-settings#identity-provider-client-id) reference page for details on how to configure these settings.

content/docs/identity-providers/index.md renamed to content/docs/identity-providers/index.mdx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ pagination_prev: null
1616
pagination_next: null
1717
---
1818

19+
import DocCardList from '@theme/DocCardList';
20+
1921
Pomerium provides authentication through your existing identity provider (**IdP**) and supports all major single sign-on (**SSO**) providers.
2022

2123
Pomerium uses the OAuth 2.0 and OIDC protocols to integrate with your IdP so you can configure any IdP solution that supports these protocols.
@@ -32,13 +34,15 @@ For example, `https://{authenticate_service_url}.com/oauth2/callback`.
3234

3335
See the guides in this section for specific steps to integrate your IdP with Pomerium.
3436

35-
## Hosted identity provider
37+
:::tip
38+
39+
If you want to try out Pomerium without configuring an IdP, you can use our [Hosted Authenticate Service](/docs/capabilities/hosted-authenticate-service) instead.
3640

37-
Pomerium’s [**Hosted Authenticate Service**](/docs/capabilities/hosted-authenticate-service) provides a **Hosted Authenticate Service URL** and a **Hosted Identity Provider**.
41+
:::
3842

39-
If you use the hosted services, you don’t need to include IdP settings or an authenticate service URL in your configuration.
43+
## Identity provider guides
4044

41-
See [Configure hosted services](/docs/capabilities/hosted-authenticate-service#configure-the-hosted-authenticate-service) for more information.
45+
<DocCardList />
4246

4347
[client id]: /docs/reference/identity-provider-settings#identity-provider-client-id
4448
[client secret]: /docs/reference/identity-provider-settings#identity-provider-client-secret

0 commit comments

Comments
 (0)