Commit graph

3669 commits

Author SHA1 Message Date
Bobby DeSimone
5284c8c32b
deployment: update helm and add quick-start docs (#75)
- adds quick-start documentation for using helm
- update helm deployment charts to match outstanding official charts repo.
2019-03-29 08:35:31 -07:00
Bobby DeSimone
7c7939cf5b
deployment: add google analytics 2019-03-28 22:28:37 -07:00
Bobby DeSimone
b18a462681
internal/log: fix setting log level (#74)
- POMERIUM_DEBUG no longer sets log level.
- LOG_LEVEL now responsible for setting global log level.
2019-03-28 11:40:36 -07:00
Bobby DeSimone
a39e84cef8
internal/identity: use email for group identifier for gsuite (#72) 2019-03-26 20:29:57 -07:00
Bobby DeSimone
b93a8aa79c
proxy: add debug message for cert pool 2019-03-24 17:12:37 -07:00
Bobby DeSimone
45e6a8dc57
docs: update changelog, documentaiton, and helm configurations. (#63)
- Update changelog.
- Update docs to cover authorization support.
- Updates helm to support authorization, and policy file.
2019-03-19 10:55:41 -07:00
Bobby DeSimone
eb9dff0c48
scripts: fix kubernetes script 2019-03-12 15:44:54 -07:00
Bobby DeSimone
0a501b61ed
authenticate: support kubernetes (#62)
- cmd/pomerium: made ping a toplevel route for all services.
- docs: updated kubernetes script and corresponding configuration yaml's
2019-03-12 15:31:17 -07:00
Bobby DeSimone
c13459bb88
authorize: add authorization (#59)
* authorize: authorization module adds support for per-route access policy. In this release we support the most common forms of identity based access policy: `allowed_users`, `allowed_groups`, and `allowed_domains`. In future versions, the authorization module will also support context and device based authorization policy and decisions. See website documentation for more details.
 * docs: updated `env.example` to include a `POLICY` setting example.
 * docs:  added `IDP_SERVICE_ACCOUNT` to  `env.example` .
 * docs: removed `PROXY_ROOT_DOMAIN` settings which has been replaced by `POLICY`.
 * all: removed `ALLOWED_DOMAINS` settings which has been replaced by `POLICY`. Authorization is now handled by the authorization service and is defined in the policy configuration files.
 * proxy: `ROUTES` settings which has been replaced by `POLICY`.
* internal/log: `http.Server` and `httputil.NewSingleHostReverseProxy` now uses pomerium's logging package instead of the standard library's built in one.

Closes #54
Closes #41
Closes #61
Closes #58
2019-03-07 12:47:07 -08:00
Bobby DeSimone
1187be2bf3
authenticator: support groups (#57)
- authenticate/providers: add group support to azure
- authenticate/providers: add group support to google
- authenticate/providers: add group support to okta
- authenticate/providers: add group support to onelogin
- {authenticate/proxy}: change default cookie lifetime timeout to 14 hours
- proxy: sign group membership
- proxy: add group header
- deployment: add CHANGELOG
- deployment: fix where make release wasn’t including version
2019-02-28 19:34:22 -08:00
Bobby DeSimone
a2d647ee5b
deployment: add automatic travis releases 2019-02-19 14:40:47 -08:00
Bobby DeSimone
1848899152
v0.0.2 2019-02-19 14:02:15 -08:00
Bobby DeSimone
afd5abdc09
cmd/pomerium: add service mode to log 2019-02-19 11:23:10 -08:00
Bobby DeSimone
e3f4bcae19
authenticate/providers: add onelogin (#53)
- docs: fixes various typos and grammar errors
2019-02-19 10:41:27 -08:00
Bobby DeSimone
a31721a239
docs: add configuration variables (#52) 2019-02-18 18:48:14 -08:00
Michael Barrientos
7b1e832b45 proxy: support certificate authority to verify server (#49) 2019-02-18 09:58:05 -08:00
Bobby DeSimone
ede412448a
docs: add benchmarking script 2019-02-17 18:57:48 -08:00
Bobby DeSimone
88b7766c7d
proxy/authenticator: fix check to ensure port assigned (#51) 2019-02-17 18:29:11 -08:00
Michael Barrientos
6f93909194 all: fix misspelling of override (#50) 2019-02-17 12:35:26 -08:00
Bobby DeSimone
dbafc691c3
all: general cleanup readying for tagged release (#48)
- docs: add code coverage to readme
- internal/sessions: refactor sessions to clarify lifetime
- authenticate: simplified signin flow
- deployment: update go mods
- internal/testutil: removed package
- internal/singleflight: removed package
2019-02-16 12:43:18 -08:00
Bradley Weston
13c03a2b5c docs: remove port from internal service url in k8s example (#47) 2019-02-14 10:35:34 -08:00
Bobby DeSimone
805f0198d2
authenticate: add tests, fix signout (#45)
- authenticate: a bug where sign out failed to revoke the remote session
- docs: add code coverage to readme
- authenticate: Rename shorthand receiver variable name
- authenticate: consolidate sign in
2019-02-14 00:01:50 -08:00
Bobby DeSimone
35ee3247d7
proxy: fix missing port 2019-02-12 16:43:22 -08:00
Bobby DeSimone
09744f6adb
proxy: add tests (#44) 2019-02-12 16:38:17 -08:00
Bobby DeSimone
4f4f3965aa
proxy: add unit tests (#43) 2019-02-11 20:15:01 -08:00
Bobby DeSimone
cedf9922d3
proxy: add unit tests (#42)
- Fixed pomerium.io site description
- Updated kubernetes examples to use the latest docker images.
- Use cryputil hash function for proxy hmac.
- Add unit tests for proxy handlers.
2019-02-08 22:39:48 -08:00
Bobby DeSimone
c886b924e7
authenticate: use gRPC for service endpoints (#39)
* authenticate: set cookie secure as default.
* authenticate: remove single flight provider.
* authenticate/providers: Rename “ProviderData” to “IdentityProvider”
* authenticate/providers: Fixed an issue where scopes were not being overwritten
* proxy/authenticate : http client code removed.
* proxy: standardized session variable names between services.
* docs: change basic docker-config to be an “all-in-one” example with no nginx load.
* docs:  nginx balanced docker compose example with intra-ingress settings.
* license:  attribution for adaptation of goji’s middleware pattern.
2019-02-08 10:10:38 -08:00
Bobby DeSimone
9ca3ff4fa2
cmd/pomerium : restore /ping without hostname (#37)
Re-adding the hostless /ping for the authenticate service. Without these 4 lines, Pomerium fails to stay running when using the helm chart that's checked into the repo; the Kubernetes liveness/readiness probes don't see the pod as successfully running, and Kubernetes goes into an endless restart loop.

I have tried the following:

Adding httpHeaders: {name: "Host", value: "insert_redirect_uri_hostname_here"} to both probes to try to force it to recognize. Pomerium fails to stay running.
Removing the probes from the deployment definition. Pomerium successfully stays running and responds correctly. Thus it's certain that it's one of the probes failing.
Modifying the code here to log the request.host golang reports. It reports "10.x.x.x:443". (Actual pod internal IP address for the 10.x.x.x). That won't match the authHost.
2019-01-31 13:02:51 -08:00
Michael Barrientos
4f605aa757
Restore /ping without hostname 2019-01-31 10:28:16 -08:00
Bobby DeSimone
ebc1453292
proxy: use internal/httputil for error handling (#36)
- General formatting and comment cleanup.
- Inject pomerium version at compiletime via template package.
2019-01-30 12:22:03 -08:00
Bobby DeSimone
236e5cd7de
authenticate: remove extra login page (#34)
- Fixed a bug where Lifetime TTL was set to a minute.
- Remove nested mux in authenticate handlers.
- Remove extra ping endpoint in authenticate and proxy.
- Simplified sign in flow with multi-catch case statement.
- Removed debugging logging.
- Broke out cmd/pomerium options into own file.
- Renamed msicreant cipher to just cipher.

Closes #23
2019-01-29 20:28:55 -08:00
Bobby DeSimone
bcecee5ee3
docs: add kubernetes (#33)
- Update PR template to use Go language conventions.
- Moved healthcheck middleware to hijack a request before logging.
- Rewrote the quickstart guides to follow a similar pattern.
- Added an overview blurb on pomerium and its goals.
- Add an "example config" section to docs.
2019-01-27 22:22:14 -08:00
Bobby DeSimone
b1912128f3
proxy: fixed bug where ping wouldn't fire 2019-01-26 22:12:15 -08:00
Michael Barrientos
6b6e79aced docs: add helm charts (#10) 2019-01-26 20:51:24 -08:00
Bobby DeSimone
4a52835baa
docs: add issue templates 2019-01-26 13:00:17 -08:00
Bobby DeSimone
661fd89feb
docs: add build from source guide (#32) 2019-01-26 12:10:27 -08:00
Bobby DeSimone
7e1d1a7896
authenticate: refactor middleware, logging, and tests (#30)
- Abstract remaining middleware from authenticate into internal.
- Use middleware chaining in authenticate.
- Standardize naming of Request and ResponseWriter to match std lib.
- Add healthcheck / ping as a middleware.
- Internalized wraped_writer package adapted from goji/middleware.
- Fixed indirection issue with reverse proxy map.
2019-01-25 20:58:50 -08:00
Bobby DeSimone
b9c298d278
authenticate/providers : add gitlab support (#28)
- Add UserInfo struct and implementation to gather additional
  user information if the endpoint exists.
- Add example docker-compose.yml for on-prem gitlab.
- Add gitlab docs.
- Removed explicit email checks in handlers.
- Providers are now a protected type on provider data.
- Alphabetized provider list.
- Refactored authenticate.New to be more concise.
2019-01-24 15:10:16 -08:00
Bobby DeSimone
426e003b03
proxy: add JWT request signing support (#19)
- Refactored middleware and request hander logging.
- Request refactored to use context.Context.
- Add helper (based on Alice) to allow middleware chaining.
- Add helper scripts to generate elliptic curve self-signed certificate that can be used to sign JWT.
- Changed LetsEncrypt scripts to use acme instead of certbot.
- Add script to have LetsEncrypt sign an RSA based certificate.
- Add documentation to explain how to verify headers.
- Refactored internal/cryptutil signer's code to expect a valid EC priv key.
- Changed JWT expiries to use default leeway period.
- Update docs and add screenshots.
- Replaced logging handler logic to use context.Context.
- Removed specific XML error handling.
- Refactored handler function signatures to prefer standard go idioms.
2019-01-22 21:44:22 -08:00
Bobby DeSimone
98b8c7481f
Merge pull request #25 from desimone/bug/skip-provider, fixes #24.
authenticate: fixes incorrect error check
2019-01-22 21:12:30 -08:00
Bobby DeSimone
f9c0961c77
authenticate: fixes incorrect error check 2019-01-22 21:10:20 -08:00
Michael Barrientos
356aa33970 Add SKIP_PROVIDER_BUTTON env 2019-01-22 17:34:06 -08:00
Bobby DeSimone
44527662fd
Rename Authenticator to Authenticate.
Rename single-constructor packages NewProxy and NewAuthenticator to New
Removed unused upstreamTransport.
2019-01-20 12:15:29 -08:00
Bobby DeSimone
2c7a7f2e02
cmd/pomerium: add check for service validity
proxy: update key check error message to check 32 bytes
authenticate: update key check error message to check 32 bytes
docs: update readme for clarity
2019-01-19 11:32:36 -08:00
Bobby DeSimone
9404dafcf4
internal/cryputil: combines aead and cryptutil packages
- Refactored encrypt / decrypt methods to use aead's NonceSize() interface method.
- Add explicit GenerateKey function.
- Remove mutex on XChaCha20.
2019-01-18 12:08:54 -08:00
Bobby DeSimone
24b11b0428
internal/cryputil: combines aead and cryptutil packages.
- Refactored encrypt / decrypt methods to use aead's NonceSize() interface method.
- Add explicit GenerateKey function.
- Remove mutex on XChaCha20.
2019-01-18 11:55:04 -08:00
Bobby DeSimone
131810ccfe
docs : add docker automated build icon to readme 2019-01-17 12:05:34 -08:00
Bobby DeSimone
b312357c01
docs : update readme and quickstart 2019-01-17 09:20:16 -08:00
Bobby DeSimone
ae4fd837a0
Typo in readme 2019-01-17 00:23:05 -08:00
Bobby DeSimone
929a1ca7b0
deployment : add docker support, docker-compose example, & quick-start guide. 2019-01-17 00:22:10 -08:00