Class ScimFilter

Namespace
Kuestenlogik.Bowire.Scim
Assembly
Kuestenlogik.Bowire.Scim.dll

The subset of the SCIM filter language (RFC 7644 §3.4.2.2) that identity providers actually send.

public sealed class ScimFilter
Inheritance
ScimFilter
Inherited Members

Remarks

The full grammar has ten operators, complex attribute paths and value sub-filters. Okta and Entra ID use one shape between them — userName eq "someone@example.com" — with externalId eq and the occasional and where a connector was configured by hand.

So this parses eq, pr, and and or, with and binding tighter, and refuses everything else with a 400 and invalidFilter. Refusing is the point: a parser that silently ignores the half of an expression it did not understand answers a different question than the one asked, and the caller has no way to tell. A connector that gets invalidFilter logs something an operator can act on.

Methods

Matches(Func<string, string?>)

Whether a resource matches, where attribute resolves an attribute name to its value (null when absent).

public bool Matches(Func<string, string?> attribute)

Parameters

attribute Func<string, string>

Returns

bool

Parse(string)

Parse text.

public static ScimFilter Parse(string text)

Parameters

text string

Returns

ScimFilter

Exceptions

ScimFilterException

The expression uses something outside the supported subset.