providers/scim: fix vCenter compatibility mode (#21830)

This commit is contained in:
Dominic R
2026-04-27 08:00:00 -04:00
committed by GitHub
parent 9dfc4e76ee
commit 620387f294
8 changed files with 17 additions and 1 deletions
+3
View File
@@ -97,6 +97,9 @@ class SCIMClient[TModel: "Model", TConnection: "Model", TSchema: "BaseModel"](
if cached_config is not None:
return cached_config
if self.provider.compatibility_mode == SCIMCompatibilityMode.VCENTER:
return default_config
# Attempt to fetch from remote
path = "/ServiceProviderConfig"
if self.provider.compatibility_mode == SCIMCompatibilityMode.SALESFORCE:
@@ -94,6 +94,7 @@ class Migration(migrations.Migration):
("slack", "Slack"),
("sfdc", "Salesforce"),
("webex", "Webex"),
("vcenter", "vCenter"),
],
default="default",
help_text="Alter authentik behavior for vendor-specific SCIM implementations.",
+1
View File
@@ -83,6 +83,7 @@ class SCIMCompatibilityMode(models.TextChoices):
SLACK = "slack", _("Slack")
SALESFORCE = "sfdc", _("Salesforce")
WEBEX = "webex", _("Webex")
VCENTER = "vcenter", _("vCenter")
class SCIMProvider(OutgoingSyncProvider, BackchannelProvider):
+2 -1
View File
@@ -11099,7 +11099,8 @@
"aws",
"slack",
"sfdc",
"webex"
"webex",
"vcenter"
],
"title": "SCIM Compatibility Mode",
"description": "Alter authentik behavior for vendor-specific SCIM implementations."
+1
View File
@@ -22,6 +22,7 @@ export const CompatibilityModeEnum = {
Slack: "slack",
Sfdc: "sfdc",
Webex: "webex",
Vcenter: "vcenter",
UnknownDefaultOpenApi: "11184809",
} as const;
export type CompatibilityModeEnum =
+1
View File
@@ -36180,6 +36180,7 @@ components:
- slack
- sfdc
- webex
- vcenter
type: string
Config:
type: object
@@ -206,6 +206,13 @@ export function renderForm({ provider, errors, update }: SCIMProviderFormProps)
value: CompatibilityModeEnum.Webex,
description: html`${msg("Altered behavior for usage with Cisco Webex.")}`,
},
{
label: msg("vCenter"),
value: CompatibilityModeEnum.Vcenter,
description: html`${msg(
"Altered behavior for usage with VMware vCenter.",
)}`,
},
]}
help=${msg(
"Alter authentik's behavior for vendor-specific SCIM implementations.",
@@ -102,6 +102,7 @@ Available compatibility modes are:
- **Slack**: Enables filtering support for Slack's SCIM implementation
- **Salesforce**: Uses the non-standard `/ServiceProviderConfigs` endpoint
- **Webex**: Uses the vendor-specific behavior required for Webex SCIM
- **vCenter**: Skips the `ServiceProviderConfig` endpoint, which is not implemented in VMware vCenter
To configure a compatibility mode, select the appropriate option in the **SCIM Compatibility Mode** field when creating or editing a SCIM provider.