Pinniped is the easy, secure way to log in to your Kubernetes clusters.
Go to file
Ryan Richard e0ecdc004b Allow dynamic clients to be used in downstream OIDC flows
This is only a first commit towards making this feature work.
- Hook dynamic clients into fosite by returning them from the storage
  interface (after finding and validating them)
- In the auth endpoint, prevent the use of the username and password
  headers for dynamic clients to force them to use the browser-based
  login flows for all the upstream types
- Add happy path integration tests in supervisor_login_test.go
- Add lots of comments (and some small refactors) in
  supervisor_login_test.go to make it much easier to understand
- Add lots of unit tests for the auth endpoint regarding dynamic clients
  (more unit tests to be added for other endpoints in follow-up commits)
- Enhance crud.go to make lifetime=0 mean never garbage collect,
  since we want client secret storage Secrets to last forever
- Move the OIDCClient validation code to a package where it can be
  shared between the controller and the fosite storage interface
- Make shared test helpers for tests that need to create OIDC client
  secret storage Secrets
- Create a public const for "pinniped-cli" now that we are using that
  string in several places in the production code
2022-07-14 09:51:11 -07:00
.github Run CodeQL on dynamic_clients branch 2022-06-06 16:41:38 -04:00
apis TotalClientSecrets field gets omitempty and becomes int32 2022-07-14 09:30:03 -07:00
cmd Allow PINNIPED_UPSTREAM_IDENTITY_PROVIDER_FLOW env var to override flow 2022-06-02 10:30:03 -07:00
deploy TotalClientSecrets field gets omitempty and becomes int32 2022-07-14 09:30:03 -07:00
generated TotalClientSecrets field gets omitempty and becomes int32 2022-07-14 09:30:03 -07:00
hack Merge branch 'dynamic_clients' into client-secret-api-noop 2022-06-13 15:52:34 -07:00
internal Allow dynamic clients to be used in downstream OIDC flows 2022-07-14 09:51:11 -07:00
pkg Switch to go.uber.org/zap for JSON formatted logging 2022-05-24 11:17:42 -04:00
proposals Accept LDAP UI proposal 2022-05-16 16:21:33 -07:00
public added search functionality to docs on Pinniped.dev 2021-04-09 10:58:39 -05:00
site Merge pull request #1183 from anjaltelang/main 2022-06-08 15:14:31 -07:00
test Allow dynamic clients to be used in downstream OIDC flows 2022-07-14 09:51:11 -07:00
.dockerignore dockerignore gets same contents as gitignore 2021-07-26 11:28:25 -07:00
.gitattributes Target hack/Dockerfile_fips correctly 2022-04-06 15:32:08 -04:00
.gitignore dockerignore gets same contents as gitignore 2021-07-26 11:28:25 -07:00
.golangci.yaml Update to github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.2 2022-03-08 12:28:09 -08:00
.pre-commit-config.yaml Introduce FIPS compatibility 2022-03-29 16:58:41 -07:00
ADOPTERS.md Add OK a.m.b.a. to adopters.md file 2021-04-14 18:38:11 -05:00
CODE_OF_CONDUCT.md Rename the CoC and contributor guide to the names GitHub recognizes. 2020-10-02 15:53:48 -05:00
CONTRIBUTING.md Use vmware-tanzu/carvel instead of the deprecated k14/tap to install deps with brew 2022-04-05 16:43:22 +02:00
Dockerfile Bump project deps, including kube 0.23.6->0.24.1 and Go 1.18.1->1.18.3 2022-06-07 15:26:30 -04:00
GOVERNANCE.md Auto-format GOVERNANCE.md 2022-02-17 10:08:37 -08:00
LICENSE Add Apache 2.0 license. 2020-07-06 13:50:31 -05:00
MAINTAINERS.md Update MAINTAINERS.md 2022-03-21 13:17:14 -05:00
README.md Update main README.md for 2022 2022-03-10 14:23:27 -08:00
ROADMAP.md Roadmap updates for future 2022-05-19 15:53:53 -04:00
SCOPE.md Move scope doc out of website to SCOPE.md. 2021-02-23 11:11:07 -06:00
SECURITY.md SECURITY.md: follow established pattern 2021-02-09 09:08:19 -05:00
go.mod Bump all deps to latest 2022-06-07 15:26:30 -04:00
go.sum Bump all deps to latest 2022-06-07 15:26:30 -04:00

README.md

Pinniped Logo

Overview

Pinniped provides identity services to Kubernetes.

  • Easily plug in external identity providers into Kubernetes clusters while offering a simple install and configuration experience. Leverage first class integration with Kubernetes and kubectl command-line.
  • Give users a consistent, unified login experience across all your clusters, including on-premises and managed cloud environments.
  • Securely integrate with an enterprise IDP using standard protocols or use secure, externally managed identities instead of relying on simple, shared credentials.

To learn more, please visit the Pinniped project's website, https://pinniped.dev.

Getting started with Pinniped

Care to kick the tires? It's easy to install and try Pinniped.

Discussion

Got a question, comment, or idea? Please don't hesitate to reach out via GitHub Discussions, GitHub Issues, or in the Kubernetes Slack Workspace within the #pinniped channel.

Contributions

Want to get involved? Contributions are welcome.

Please see the contributing guide for more information about reporting bugs, requesting features, building and testing the code, submitting PRs, and other contributor topics.

Community meetings

Pinniped is better because of our contributors and maintainers. It is because of you that we can bring great software to the community. Please join us during our online community meetings, occurring every first and third Thursday of the month at 9 AM PT / 12 PM ET.

Use this Zoom Link to attend and add any agenda items you wish to discuss to the notes document. Join our Google Group to receive invites to this meeting.

If the meeting day falls on a US holiday, please consider that occurrence of the meeting to be canceled.

Adopters

Some organizations and products using Pinniped are featured in ADOPTERS.md. Add your own organization or product here.

Reporting security vulnerabilities

Please follow the procedure described in SECURITY.md.

License

Pinniped is open source and licensed under Apache License Version 2.0. See LICENSE.

Copyright 2020-2022 the Pinniped contributors. All Rights Reserved.