Subject: Re: [scim] group membership information and additional metadata

From: Jaap Francke <[email-masked]>
Date: Wed, 11 Oct 2017 05:40:04 +0000

Hi all,

I agree that having startDate and endDate for groupmembership would be a usefull extension for groupmemberships.

A way of solving it while still being compliant and making use of current extensibility, would be to define a custom schema extension to the GROUP-schema.
This group-extension could have a multi-valued complex attribute
‘membershipinfo':
- memberId
- startDate
- endDate
- membershiptype.
So this multi-valued attribute could have a value for each member of the group, where the memberId would link the attribute to the specfic member.
It doesn’t really look nice, but it does do the trick.

At iWelcome, we have used a similar trick to record metadata for attributes in the user’s profile: we have defined an extension to the user schema to record attribute value metadata like verification level and consent. In this case the ‘linking’ cannot be done using an id (attribute values don’t have one), so instead use a reference-by-value trick.

Hope this helps, kind regards

Jaap

Hi,

We have the requirement to be able to describe during which time a user will be active in a group, not by adding and removing her in a timely manner, but by actually have startDate and endDate attributes on in the complex members attribute. This is because we need to be able do describe historical information and also information in advance, about when a student has attended or will attend a class/group so attendance records can be correctly maintained.

Since scim has a limitation that it does not allow custom schema elements in complex attributes, sadly his means that a normal scim Group cannot be used at all. instead we need to define a specific StudentGroup that mimics the beahviour of the standard group, but has a different complex attribute,  StudentMembers:

{
"schemas": [
 "urn:ietf:params:scim:schemas:core:2.0:Group",
],
"id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"externalId": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"displayName": "N3A Kurser",
"urn:scim:schemas:extension:sis:school:1.0:StudentGroup": {
 "studentMemberships": [
   {
     "value": "2819c223-7f76-453a-919d-413861904646",
     "$ref": "/v2/Users/2819c223-7f76-453a-919d-413861904646",
     "displayName": "Barbara Jensen",
     "startDate": "2015-01-01",
     "endDate": "2015-10-30"
   }
 ],
 "studentGroupType": "Undervisning",
 "schoolType": "GY",
 "schoolYears": [
   2
 ]
},
"meta": {
 "resourceType": "Group",
 "created": "2010-01-23T04:56:22Z",
 "lastModified": "2011-05-13T04:42:34Z",
 "version": "W/\"3694e05e9dff592\"",
 "location": "/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
}
}

Would it possibly to discuss an alternative path where startDate and endDate where part of the complex attribut "members"? This would allow a much greater interoperability since a scim system that does not know about the startDate/endDate attributes would just ignore them.

Any other ideas or thoughs about this?

Thanks,
Palle

_______________________________________________
scim mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/scim