mirror of
https://github.com/coder/coder.git
synced 2025-07-18 14:17:22 +00:00
feat: implement disabling oidc issuer checks (#13991)
* use DANGEROUS prefix and drop a warning log
This commit is contained in:
@ -106,7 +106,7 @@ import (
|
||||
"github.com/coder/coder/v2/tailnet"
|
||||
)
|
||||
|
||||
func createOIDCConfig(ctx context.Context, vals *codersdk.DeploymentValues) (*coderd.OIDCConfig, error) {
|
||||
func createOIDCConfig(ctx context.Context, logger slog.Logger, vals *codersdk.DeploymentValues) (*coderd.OIDCConfig, error) {
|
||||
if vals.OIDC.ClientID == "" {
|
||||
return nil, xerrors.Errorf("OIDC client ID must be set!")
|
||||
}
|
||||
@ -114,6 +114,12 @@ func createOIDCConfig(ctx context.Context, vals *codersdk.DeploymentValues) (*co
|
||||
return nil, xerrors.Errorf("OIDC issuer URL must be set!")
|
||||
}
|
||||
|
||||
// Skipping issuer checks is not recommended.
|
||||
if vals.OIDC.SkipIssuerChecks {
|
||||
logger.Warn(ctx, "issuer checks with OIDC is disabled. This is not recommended as it can compromise the security of the authentication")
|
||||
ctx = oidc.InsecureIssuerURLContext(ctx, vals.OIDC.IssuerURL.String())
|
||||
}
|
||||
|
||||
oidcProvider, err := oidc.NewProvider(
|
||||
ctx, vals.OIDC.IssuerURL.String(),
|
||||
)
|
||||
@ -167,6 +173,9 @@ func createOIDCConfig(ctx context.Context, vals *codersdk.DeploymentValues) (*co
|
||||
Provider: oidcProvider,
|
||||
Verifier: oidcProvider.Verifier(&oidc.Config{
|
||||
ClientID: vals.OIDC.ClientID.String(),
|
||||
// Enabling this skips checking the "iss" claim in the token
|
||||
// matches the issuer URL. This is not recommended.
|
||||
SkipIssuerCheck: vals.OIDC.SkipIssuerChecks.Value(),
|
||||
}),
|
||||
EmailDomain: vals.OIDC.EmailDomain,
|
||||
AllowSignups: vals.OIDC.AllowSignups.Value(),
|
||||
@ -657,7 +666,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
|
||||
// Missing:
|
||||
// - Userinfo
|
||||
// - Verify
|
||||
oc, err := createOIDCConfig(ctx, vals)
|
||||
oc, err := createOIDCConfig(ctx, options.Logger, vals)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("create oidc config: %w", err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user