mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
chore: implement organization sync and create idpsync package (#14432)
* chore: implement filters for the organizations query * chore: implement organization sync and create idpsync package Organization sync can now be configured to assign users to an org based on oidc claims.
This commit is contained in:
@ -55,6 +55,7 @@ import (
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/sloghuman"
|
||||
"github.com/coder/coder/v2/coderd/entitlements"
|
||||
"github.com/coder/pretty"
|
||||
"github.com/coder/quartz"
|
||||
"github.com/coder/retry"
|
||||
@ -605,6 +606,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
|
||||
SSHConfigOptions: configSSHOptions,
|
||||
},
|
||||
AllowWorkspaceRenames: vals.AllowWorkspaceRenames.Value(),
|
||||
Entitlements: entitlements.New(),
|
||||
NotificationsEnqueuer: notifications.NewNoopEnqueuer(), // Changed further down if notifications enabled.
|
||||
}
|
||||
if httpServers.TLSConfig != nil {
|
||||
|
13
cli/testdata/coder_server_--help.golden
vendored
13
cli/testdata/coder_server_--help.golden
vendored
@ -433,6 +433,11 @@ OIDC OPTIONS:
|
||||
groups. This filter is applied after the group mapping and before the
|
||||
regex filter.
|
||||
|
||||
--oidc-organization-assign-default bool, $CODER_OIDC_ORGANIZATION_ASSIGN_DEFAULT (default: true)
|
||||
If set to true, users will always be added to the default
|
||||
organization. If organization sync is enabled, then the default org is
|
||||
always added to the user's set of expectedorganizations.
|
||||
|
||||
--oidc-auth-url-params struct[map[string]string], $CODER_OIDC_AUTH_URL_PARAMS (default: {"access_type": "offline"})
|
||||
OIDC auth URL parameters to pass to the upstream provider.
|
||||
|
||||
@ -479,6 +484,14 @@ OIDC OPTIONS:
|
||||
--oidc-name-field string, $CODER_OIDC_NAME_FIELD (default: name)
|
||||
OIDC claim field to use as the name.
|
||||
|
||||
--oidc-organization-field string, $CODER_OIDC_ORGANIZATION_FIELD
|
||||
This field must be set if using the organization sync feature. Set to
|
||||
the claim to be used for organizations.
|
||||
|
||||
--oidc-organization-mapping struct[map[string][]uuid.UUID], $CODER_OIDC_ORGANIZATION_MAPPING (default: {})
|
||||
A map of OIDC claims and the organizations in Coder it should map to.
|
||||
This is required because organization IDs must be used within Coder.
|
||||
|
||||
--oidc-group-regex-filter regexp, $CODER_OIDC_GROUP_REGEX_FILTER (default: .*)
|
||||
If provided any group name not matching the regex is ignored. This
|
||||
allows for filtering out groups that are not needed. This filter is
|
||||
|
13
cli/testdata/server-config.yaml.golden
vendored
13
cli/testdata/server-config.yaml.golden
vendored
@ -319,6 +319,19 @@ oidc:
|
||||
# Ignore the userinfo endpoint and only use the ID token for user information.
|
||||
# (default: false, type: bool)
|
||||
ignoreUserInfo: false
|
||||
# This field must be set if using the organization sync feature. Set to the claim
|
||||
# to be used for organizations.
|
||||
# (default: <unset>, type: string)
|
||||
organizationField: ""
|
||||
# If set to true, users will always be added to the default organization. If
|
||||
# organization sync is enabled, then the default org is always added to the user's
|
||||
# set of expectedorganizations.
|
||||
# (default: true, type: bool)
|
||||
organizationAssignDefault: true
|
||||
# A map of OIDC claims and the organizations in Coder it should map to. This is
|
||||
# required because organization IDs must be used within Coder.
|
||||
# (default: {}, type: struct[map[string][]uuid.UUID])
|
||||
organizationMapping: {}
|
||||
# This field must be set if using the group sync feature and the scope name is not
|
||||
# 'groups'. Set to the claim to be used for groups.
|
||||
# (default: <unset>, type: string)
|
||||
|
Reference in New Issue
Block a user