Matt Moyer
e25de9e559
Update ID token tests for latest Fosite.
...
The new version has different behavior for the `nonce` claim, which is now omitted if it would be empty (see https://github.com/ory/fosite/pull/570 ).
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-05-28 12:53:37 -05:00
Ryan Richard
81148866e0
URL query escape the upstream OIDC subject in the downstream subject URL
2021-05-27 09:25:48 -07:00
Ryan Richard
033e1f0399
Add user search base to downstream subject for upstream LDAP
...
- Also add some tests about UTF-8 characters in LDAP attributes
2021-05-26 17:04:20 -07:00
Ryan Richard
514ee5b883
Merge branch 'main' into initial_ldap
2021-05-13 14:24:10 -07:00
Ryan Richard
67dca688d7
Add an API version to the Supervisor IDP discovery endpoint
...
Also rename one of the new functional opts in login.go to more
accurately reflect the intention of the opt.
2021-05-13 10:05:56 -07:00
Margo Crawford
b391d5ae02
Also check that the authcode storage is around for a while
2021-05-12 14:22:14 -07:00
Margo Crawford
874f938fc7
unit test for garbage collection time for refresh and access tokens
2021-05-12 13:55:54 -07:00
Ryan Richard
f0652c1ce1
Replace all usages of strPtr() with pointer.StringPtr()
2021-05-12 13:20:00 -07:00
Ryan Richard
044443f315
Rename X-Pinniped-Idp-*
headers to Pinniped-*
...
See RFC6648 which asks that people stop using `X-` on header names.
Also Matt preferred not mentioning "IDP" in the header name.
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-05-12 13:06:08 -07:00
Ryan Richard
f98aa96ed3
Merge branch 'initial_ldap' into ldap-get-kubeconfig
2021-05-11 11:10:25 -07:00
Ryan Richard
675bbb2aba
Merge branch 'main' into initial_ldap
2021-05-11 11:09:37 -07:00
Ryan Richard
e25eb05450
Move Supervisor IDP discovery to its own new endpoint
2021-05-11 10:31:33 -07:00
Margo Crawford
5240f5e84a
Change access token storage lifetime to be the same as the refresh token's
...
to avoid garbage collection breaking the refresh flow
Also changed the access token lifetime to be 2 minutes instead of 15
since we now have cert caching.
2021-05-06 13:14:20 -07:00
Ryan Richard
4bd83add35
Add Supervisor upstream IDP discovery on the server-side
2021-04-28 13:14:21 -07:00
Ryan Richard
263a33cc85
Some updates based on PR review
2021-04-27 12:43:09 -07:00
Ryan Richard
c176d15aa7
Add Supervisor upstream LDAP login to the Pinniped CLI
...
- Also enhance prepare-supervisor-on-kind.sh to allow setup of
a working LDAP upstream IDP.
2021-04-19 17:59:46 -07:00
Ryan Richard
51263a0f07
Return unauthenticated instead of error for bad username or password
...
- Bad usernames and passwords aren't really errors, since they are
based on end-user input.
- Other kinds of authentication failures are caused by bad configuration
so still treat those as errors.
- Empty usernames and passwords are already prevented by our endpoint
handler, but just to be safe make sure they cause errors inside the
authenticator too.
2021-04-13 16:22:13 -07:00
Ryan Richard
05daa9eff5
More LDAP WIP: started controller and LDAP server connection code
...
Both are unfinished works in progress.
2021-04-09 18:49:43 -07:00
Ryan Richard
f6ded84f07
Implement upstream LDAP support in auth_handler.go
...
- When the upstream IDP is an LDAP IDP and the user's LDAP username and
password are received as new custom headers, then authenticate the
user and, if authentication was successful, return a redirect with
an authcode. Handle errors according to the OAuth/OIDC specs.
- Still does not support having multiple upstream IDPs defined at the
same time, which was an existing limitation of this endpoint.
- Does not yet include the actual LDAP authentication, which is
hidden behind an interface from the point of view of auth_handler.go
- Move the oidctestutil package to the testutil directory.
- Add an interface for Fosite storage to avoid a cyclical test
dependency.
- Add GetURL() to the UpstreamLDAPIdentityProviderI interface.
- Extract test helpers to be shared between callback_handler_test.go
and auth_handler_test.go because the authcode and fosite storage
assertions should be identical.
- Backfill Content-Type assertions in callback_handler_test.go.
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2021-04-08 17:28:01 -07:00
Ryan Richard
064e3144a2
auth_handler.go: pre-factor to make room for upstream LDAP IDPs
2021-04-07 17:05:25 -07:00
Ryan Richard
1f5978aa1a
Supervisor pre-factor to make room for upstream LDAP identity providers
2021-04-07 16:12:13 -07:00
Monis Khan
d7edc41c24
oidc discovery: encode metadata once and reuse
...
Signed-off-by: Monis Khan <mok@vmware.com>
2021-03-03 13:37:43 -05:00
Matt Moyer
c832cab8d0
Update internal/oidc/token_exchange.go for latest Fosite version.
...
The `fosite.TokenEndpointHandler` changed and now requires some additional methods.
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-03-01 13:08:41 -06:00
Matt Moyer
5b4e58f0b8
Add some trivial unit tests to internal/oidc/csrftoken.
...
This change is primarily to test that our test coverage reporting is working as expected.
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-02-02 09:38:17 -06:00
Ryan Richard
6ef7ec21cd
Merge branch 'release-0.4' into main
2021-01-25 15:13:14 -08:00
Ryan Richard
b77297c68d
Validate the upstream email_verified
claim when it makes sense
2021-01-25 15:10:41 -08:00
Matt Moyer
04c4cd9534
Upgrade to github.com/coreos/go-oidc v3.0.0.
...
See https://github.com/coreos/go-oidc/releases/tag/v3.0.0 for release notes.
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-01-21 12:08:14 -06:00
Margo Crawford
d11a73c519
PR feedback-- omit empty groups, keep groups as nil until last minute
...
Also log keys and values for claims
2021-01-14 15:11:00 -08:00
Andrew Keesler
6fce1bd6bb
Allow arrays of type interface
...
and always set the groups claim to an
array in the downstream token
Signed-off-by: Margo Crawford <margaretc@vmware.com>
2021-01-14 17:21:41 -05:00
Monis Khan
3c3da9e75d
Wire in new env vars for user info testing
...
Signed-off-by: Monis Khan <mok@vmware.com>
2021-01-12 11:23:25 -05:00
Matt Moyer
3a81fbd1b4
Update fosite error usage.
...
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2020-12-17 16:31:08 -06:00
Ryan Richard
b96d49df0f
Rename all "op" and "opc" usages
...
Signed-off-by: Aram Price <pricear@vmware.com>
2020-12-17 11:34:49 -08:00
Margo Crawford
196e43aa48
Rename off of main
...
Signed-off-by: Ryan Richard <richardry@vmware.com>
2020-12-16 14:27:09 -08:00
Matt Moyer
7dae166a69
Merge branch 'main' into username-and-subject-claims
2020-12-16 15:23:19 -06:00
Matt Moyer
72ce69410e
Merge pull request #273 from vmware-tanzu/secret-generation
...
Generate secrets for Pinniped Supervisor
2020-12-16 15:22:23 -06:00
Matt Moyer
8527c363bb
Rename the "pinniped.sts.unrestricted" scope to "pinniped:request-audience".
...
This is a bit more clear. We're changing this now because it is a non-backwards-compatible change that we can make now since none of this RFC8693 token exchange stuff has been released yet.
There is also a small typo fix in some flag usages (s/RF8693/RFC8693/)
Signed-off-by: Matt Moyer <moyerm@vmware.com>
2020-12-16 14:24:13 -06:00
Ryan Richard
40c6a67631
Merge branch 'main' into username-and-subject-claims
2020-12-15 18:09:44 -08:00
Andrew Keesler
056afc17bd
Merge remote-tracking branch 'upstream/main' into secret-generation
2020-12-15 15:55:46 -05:00
aram price
2edcdc92f4
Log when unexpected Upstream OIDC Providers found
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2020-12-15 10:49:13 -08:00
Ryan Richard
43bb7117b7
Allow upstream group claim values to be either arrays or strings
2020-12-15 08:34:24 -08:00
Andrew Keesler
d2498c96e0
Merge remote-tracking branch 'upstream/main' into secret-generation
2020-12-15 09:27:23 -05:00
Ryan Richard
16dfab0aff
token_handler_test.go: Add tests for username and groups custom claims
2020-12-14 18:27:14 -08:00
Margo Crawford
afcd5e3e36
WIP: Adjust subject and username claims
...
Signed-off-by: Ryan Richard <richardry@vmware.com>
2020-12-14 17:05:53 -08:00
Ryan Richard
16907e4453
Add Cache-Control, Pragma, Expires, and X-DNS-Prefetch-Control headers
...
Signed-off-by: Margo Crawford <margaretc@vmware.com>
2020-12-14 15:28:32 -08:00
Andrew Keesler
cae0023234
Merge remote-tracking branch 'upstream/main' into secret-generation
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2020-12-14 11:44:01 -05:00
Andrew Keesler
2f28d2a96b
Synchronize the OIDCProvider secrets cache
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2020-12-14 11:32:33 -05:00
Andrew Keesler
b043dae149
Finish first implementation of generic secret generator controller
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2020-12-14 10:36:45 -05:00
Ryan Richard
7cda6628a6
Merge branch 'main' into fosite-settings
2020-12-11 18:19:37 -08:00
Ryan Richard
020fbcf190
Adjust some expectations about the state and nonce lengths
2020-12-11 17:39:58 -08:00
Margo Crawford
2a19dd0d2e
Pass prompt through to upstream login request
...
Signed-off-by: Ryan Richard <rrichard@vmware.com>
2020-12-11 17:13:27 -08:00