mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-03 16:38:35 +08:00
GitLab Delegated Joining (#22705)
* Add type for GitLab ProvisionToken * Add default behaviour for domain * Add IDTokenClaims for GitLab * Add gitlab token source and token validator * Thread GitLab support through auth and tbot packages * Adjust cluster name fetching in token validator * Initialize GitLab token validator in auth * Improve comment on `sub` * Working GitLab CI delegated joining * Add additional token rule fields * Add checking for new configuration fields * add additional test cases for validation of gitlab config struct * Add TestAuth_RegisterUsingToken_GitLab * Add tests for IDTokenSource * Fix imports * Add tests for GitLab Token Validator * Fix some comments that were incomplete * Add license headers
This commit is contained in:
@@ -74,6 +74,7 @@ import (
|
||||
"github.com/gravitational/teleport/lib/defaults"
|
||||
"github.com/gravitational/teleport/lib/events"
|
||||
"github.com/gravitational/teleport/lib/githubactions"
|
||||
"github.com/gravitational/teleport/lib/gitlab"
|
||||
"github.com/gravitational/teleport/lib/inventory"
|
||||
kubeutils "github.com/gravitational/teleport/lib/kube/utils"
|
||||
"github.com/gravitational/teleport/lib/kubernetestoken"
|
||||
@@ -316,6 +317,17 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) {
|
||||
},
|
||||
)
|
||||
}
|
||||
if as.gitlabIDTokenValidator == nil {
|
||||
as.gitlabIDTokenValidator, err = gitlab.NewIDTokenValidator(
|
||||
gitlab.IDTokenValidatorConfig{
|
||||
Clock: as.clock,
|
||||
ClusterNameGetter: services,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
}
|
||||
if as.circleCITokenValidate == nil {
|
||||
as.circleCITokenValidate = func(
|
||||
ctx context.Context, organizationID, token string,
|
||||
@@ -529,6 +541,10 @@ type Server struct {
|
||||
// by the auth server. It can be overridden for the purpose of tests.
|
||||
ghaIDTokenValidator ghaIDTokenValidator
|
||||
|
||||
// gitlabIDTokenValidator allows ID tokens from GitLab CI to be validated by
|
||||
// the auth server. It can be overridden for the purpose of tests.
|
||||
gitlabIDTokenValidator gitlabIDTokenValidator
|
||||
|
||||
// circleCITokenValidate allows ID tokens from CircleCI to be validated by
|
||||
// the auth server. It can be overridden for the purpose of tests.
|
||||
circleCITokenValidate func(ctx context.Context, organizationID, token string) (*circleci.IDTokenClaims, error)
|
||||
|
||||
Reference in New Issue
Block a user