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: docs/sso_config.md
+11-7
Original file line number
Diff line number
Diff line change
@@ -32,11 +32,11 @@ For example, the following config would have the following environment variables
32
32
***to** is the cname of the proxied service (this tells sso proxy where to proxy requests that come in on the from field)
33
33
***type** declares the type of route to use, right now there is just *simple* and *rewrite*.
34
34
***options** are a set of options that can be added to your configuration.
35
-
***allowed groups** optional list of authorized google groups that can access the service. If not specified, anyone within an email domain is allowed to access the service. *Note*: We do not support nested group authentication at this time. Groups must be made up of email addresses associated with individual's accounts. See [#133](https://github.com/buzzfeed/sso/issues/133).
36
-
***allowed_email_domains** optional list of authorized email domains that can access the service.
37
-
***allowed_email_addresses** optional list of authorized email addresses that can access the service.
35
+
***allowed_groups** optional list of authorized google groups that can access the service. *Note*: We do not support nested group authentication at this time. Groups must be made up of email addresses associated with individual's accounts. See [#133](https://github.com/buzzfeed/sso/issues/133).
36
+
***allowed_email_domains** optional list of authorized email domains that can access the service. Set to `*` to allow any email domain.
37
+
***allowed_email_addresses** optional list of authorized email addresses that can access the service. Set to `*` to allow any email address.
38
38
***flush_interval** sets an interval to periodically flush the buffered response to the client. If specified, SSO Proxy will not timeout requests to this upstream and will stream the response to the client. NOTE: Use with extreme caution.
39
-
***header_overrides** overrides any heads set either by SSO proxy itself or upstream applications. Useful for modifying browser security headers.
39
+
***header_overrides** overrides any headers set either by SSO proxy itself or upstream applications. Useful for modifying browser security headers.
40
40
***inject_request_headers** adds headers to the request before the request is sent to the proxied service. Useful for adding basic auth headers if needed.
41
41
***provider_slug** determines which identity provider this upstream will use. This provider must first be configured within `sso_auth`.
42
42
***skip_auth_regex** skips authentication for paths matching these regular expressions. NOTE: Use with extreme caution.
@@ -45,6 +45,9 @@ For example, the following config would have the following environment variables
45
45
from their parent routing config if not specified here (e.g. *options*).
46
46
***cluster name <identifier>** are cluster-specific settings. Any configuration specified in the default field can be override here with cluster specific configuration.
47
47
48
+
Note: From the perspective of request validations, if a request meets the requirements set in any of `allowed_groups`, `allowed_email_domains`, and `allowed_email_addresses`,
49
+
then it will be deemed valid. It need only pass _one_, not all of them.
50
+
48
51
### Route Types
49
52
50
53
There are currently two route types used by SSO to route requests, *simple* and *rewrite*.
would be the signing key for the `foobar` upstream service, use the sha256 with the `shared-secret-value` as it's signing key value.
101
104
102
-
This signs the request using defined signature headers found in https://github.com/buzzfeed/sso/blob/main/sso_proxy/oauthproxy.go#L25.
105
+
This signs the request using defined signature headers found in the `SignatureHeaders` variable at https://github.com/buzzfeed/sso/blob/main/internal/proxy/oauthproxy.go#L27-L39.
103
106
Specific implementation details can be found at https://github.com/18F/hmacauth
104
107
105
108
### Headers
@@ -120,7 +123,8 @@ Optional:
120
123
121
124
#### Security Headers
122
125
123
-
`sso_proxy`adds the following headers to every outgoing request, to ensure a baseline level of browser security for every service that it protects. These headers _cannot_ be overridden by upstream services, but _can_ be overridden in the `HEADER_OVERRIDES` environment variable.
126
+
`sso_proxy`adds the following headers to every outgoing request, to ensure a baseline level of browser security for every service that it protects.
127
+
These headers _cannot_ be overridden by upstream services themselves, but _can_ be overridden in invdividual upstream configurations by setting the `header_overrides` variable.
124
128
125
129
* `Strict-Transport-Security`
126
130
* `X-Content-Type-Options`
@@ -144,7 +148,7 @@ The **session\_ttl\_valid** option controls the amount of time it will take for
144
148
will make an _internal request_ to `sso_auth` (i.e. invisible to the
145
149
end user) to revalidate & refresh the session.
146
150
147
-
The **sessioni\_ttl\_lifetime** option controls the maximum lifetime of a
151
+
The **session\_ttl\_lifetime** option controls the maximum lifetime of a
148
152
`sso_proxy`session, after which a user will be 301 redirected to
149
153
`sso_auth`to go through the 3rd party OAuth2 flow again.
0 commit comments