Class ScimUser
- Namespace
- Kuestenlogik.Bowire.Scim
- Assembly
- Kuestenlogik.Bowire.Scim.dll
A provisioned identity (RFC 7643 §4.1).
public sealed class ScimUser
- Inheritance
-
ScimUser
- Inherited Members
Remarks
The subset an IdP actually sends, kept deliberately narrow. Every attribute here has a consumer: UserName and ExternalId are how a token gets matched to a record, Active is what deprovisioning flips, and the rest is what a connector reads back to decide the round-trip succeeded.
Attributes outside this set are preserved in Extensions rather than dropped. A connector that sends the Enterprise User extension and reads back a record without it treats the provisioning as failed, and inventing a field for every mapping an operator might configure is not a thing that finishes.
Constructors
ScimUser()
public ScimUser()
Properties
Active
Whether the identity may use Bowire. This is the attribute deprovisioning flips, and the one thing that has to be enforced rather than merely recorded.
[JsonPropertyName("active")]
public bool Active { get; set; }
Property Value
DisplayName
Name to show in a UI.
[JsonPropertyName("displayName")]
public string? DisplayName { get; set; }
Property Value
Emails
E-mail addresses.
[JsonPropertyName("emails")]
public List<ScimValue> Emails { get; init; }
Property Value
Extensions
Everything the connector sent that this implementation does not model, kept verbatim so it survives a round-trip.
[JsonExtensionData]
public Dictionary<string, JsonElement> Extensions { get; init; }
Property Value
ExternalId
The IdP's own identifier for this person.
[JsonPropertyName("externalId")]
public string? ExternalId { get; set; }
Property Value
Groups
Groups this user belongs to. Read-only per RFC 7643 §4.1.2.
[JsonPropertyName("groups")]
public List<ScimValue> Groups { get; init; }
Property Value
Id
Server-assigned, immutable, opaque.
[JsonPropertyName("id")]
public string Id { get; set; }
Property Value
Meta
Resource metadata.
[JsonPropertyName("meta")]
public ScimMeta Meta { get; set; }
Property Value
Name
Structured name.
[JsonPropertyName("name")]
public ScimName? Name { get; set; }
Property Value
Schemas
Schema URNs this resource conforms to.
[JsonPropertyName("schemas")]
public List<string> Schemas { get; init; }
Property Value
UserName
The login name. Unique across the service provider, case-insensitively.
[JsonPropertyName("userName")]
public string UserName { get; set; }