Monis Khan
eae55a8595
Fix typo in group removed warning
...
Signed-off-by: Monis Khan <mok@vmware.com >
2022-03-02 12:58:30 -05:00
Margo Crawford
609b55a6d7
Pinniped Supervisor should issue a warning when groups change during refresh
2022-03-01 14:01:57 -08:00
Margo Crawford
fdac4d16f0
Only run group refresh when the skipGroupRefresh boolean isn't set
...
for AD and LDAP
2022-02-17 12:50:28 -08:00
Margo Crawford
662f2cef9c
Integration test for updating group search base
...
Also a small change to a comment
2022-02-17 11:29:59 -08:00
Margo Crawford
ca523b1f20
Always update groups even if it's nil
...
Also de-dup groups and various small formatting changes
2022-02-17 11:29:59 -08:00
Margo Crawford
013b521838
Upstream ldap group refresh:
...
- Doing it inline on the refresh request
2022-02-17 11:29:59 -08:00
Margo Crawford
38d184fe81
Integration test + making sure we get the session correctly in token handler
2022-01-20 13:48:50 -08:00
Margo Crawford
b0ea7063c7
Supervisor should emit a warning when access token lifetime is too short
2022-01-20 13:48:50 -08:00
Ryan Richard
a4ca44ca14
Improve error handling when upstream groups is invalid during refresh
2022-01-19 12:57:47 -08:00
Ryan Richard
548977f579
Update group memberships during refresh for upstream OIDC providers
...
Update the user's group memberships when possible. Note that we won't
always have enough information to be able to update it (see code
comments).
2022-01-14 16:38:21 -08:00
Margo Crawford
5b161be334
Refactored oidcUpstreamRefresh
...
Various style changes, updated some comments and variable names and
extracted a helper function for validation.
2022-01-12 18:05:22 -08:00
Margo Crawford
62be761ef1
Perform access token based refresh by fetching the userinfo
2022-01-12 18:05:10 -08:00
Margo Crawford
2958461970
Addressing PR feedback
...
store issuer and subject in storage for refresh
Clean up some constants
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2022-01-10 11:03:37 -08:00
Margo Crawford
f2d2144932
rename ValidateToken to ValidateTokenAndMergeWithUserInfo to better reflect what it's doing
...
Also changed a few comments and small things
2022-01-10 11:03:37 -08:00
Margo Crawford
c9cf13a01f
Check for issuer if available
...
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2022-01-10 11:03:37 -08:00
Margo Crawford
0cd086cf9c
Check username claim is unchanged for oidc.
...
Also add integration tests for claims changing.
2022-01-10 11:03:37 -08:00
Margo Crawford
b098435290
Refactor validatetoken to handle refresh case without id token
...
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2022-01-10 11:03:37 -08:00
Margo Crawford
59d999956c
Move ad specific stuff to controller
...
also make extra refresh attributes a separate field rather than part of
Extra
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-12-09 16:16:36 -08:00
Margo Crawford
acaad05341
Make pwdLastSet stuff more generic and not require parsing the timestamp
...
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-12-09 16:16:36 -08:00
Margo Crawford
da9b4620b3
Active Directory checks whether password has changed recently during
...
upstream refresh
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-12-09 16:16:35 -08:00
Margo Crawford
8db0203839
Add test for upstream ldap idp not found, wrong idp uid, and malformed
...
fosite session storage
2021-12-09 16:16:35 -08:00
Margo Crawford
b5b8cab717
Refactors:
...
- pull construction of authenticators.Response into searchAndBindUser
- remove information about the identity provider in the error that gets
returned to users. Put it in debug instead, where it may show up in
logs.
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-11-05 14:22:43 -07:00
Margo Crawford
f988879b6e
Addressing code review changes
...
- changed to use custom authenticators.Response rather than the k8s one
that doesn't include space for a DN
- Added more checking for correct idp type in token handler
- small style changes
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-11-05 14:22:43 -07:00
Margo Crawford
84edfcb541
Refactor out a function, add tests for getting the wrong idp uid
2021-11-05 14:22:43 -07:00
Margo Crawford
8396937503
Updates to tests and some error assertions
2021-11-05 14:22:43 -07:00
Margo Crawford
7a58086040
Check that username and subject remain the same for ldap refresh
2021-11-05 14:22:43 -07:00
Margo Crawford
19281313dd
Basic upstream LDAP/AD refresh
...
This stores the user DN in the session data upon login and checks that
the entry still exists upon refresh. It doesn't check anything
else about the entry yet.
2021-11-05 14:22:42 -07:00
Ryan Richard
e0db59fd09
More small updates based on PR feedback
2021-10-22 10:23:21 -07:00
Ryan Richard
79ca1d7fb0
Perform an upstream refresh during downstream refresh for OIDC upstreams
...
- If the upstream refresh fails, then fail the downstream refresh
- If the upstream refresh returns an ID token, then validate it (we
use its claims in the future, but not in this commit)
- If the upstream refresh returns a new refresh token, then save it
into the user's session in storage
- Pass the provider cache into the token handler so it can use the
cached providers to perform upstream refreshes
- Handle unexpected errors in the token handler where the user's session
does not contain the expected data. These should not be possible
in practice unless someone is manually editing the storage, but
handle them anyway just to be safe.
- Refactor to share the refresh code between the CLI and the token
endpoint by moving it into the UpstreamOIDCIdentityProviderI
interface, since the token endpoint needed it to be part of that
interface anyway
2021-10-13 12:31:20 -07:00
Ryan Richard and Margo Crawford
c6f1d29538
Use PinnipedSession type instead of fosite's DefaultSesssion type
...
This will allow us to store custom data inside the fosite session
storage for all downstream OIDC sessions.
Signed-off-by: Margo Crawford <margaretc@vmware.com >
2021-10-06 15:28:13 -07:00
Andrew Keesler
03806629b8
Cleanup code via TODOs accumulated during token endpoint work
...
We opened https://github.com/vmware-tanzu/pinniped/issues/254 for the TODO in
dynamicOpenIDConnectECDSAStrategy.GenerateToken().
This commit also ensures that linting and unit tests are passing again.
Signed-off-by: Andrew Keesler <akeesler@vmware.com >
2020-12-04 10:09:42 -05:00
Andrew Keesler
09e6c86c46
token_handler.go: complete some TODOs and strengthen double auth code test
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com >
2020-12-02 15:33:57 -05:00
Andrew Keesler
970be58847
token_handler.go: first draft of token handler, with a bunch of TODOs
...
Signed-off-by: Andrew Keesler <akeesler@vmware.com >
2020-12-02 11:14:45 -05:00