Fall 2009 Day 2 - IdM Plumbing for Developers
What would be the right set of services and what would their contracts provide for open source developers?
- start from the point of view of the applications or the user's needs?
- use the word functions instead of contracts
- you have all the information you need but usually you have to manually wire them up, that's the kind of plumbing we need
- Gauge of train tracks used to be different so trains couldn't go all the way, our applications are like trains that need to be unloaded and the contents transferred to a different train that can run on a different track for the next leg of the journey
- If you had an authorization engine, how would you talk to it and what functions would they need to do?
- most developers have a framework that does these things for their specific development group
- what about the issue of consumers misunderstanding what an attribute means, this is a mapping problem
- Levels of user identification
- Definition: outside of applications we have a person's definition (student,staff)
- Roles: then there is stuff that is roles relevant to applications
- Permissions: then there are permissions that is hyper local and very application specific
- If the rest of the world would get their act together, the developers would have a much easier time
- For example, we give people CAS code snippets instead of talking about protocol
- possible starting point would be to look at Spring and see what else it needs to meet this particular problem space
- the solution often seems to be making the library/snippet available to the implementers, it's about the tool set
- What does plumbing mean?
- <spec>
- Web Services
- Spring
- But don't get stuck on technology name
- would like a higher ed ontology for common pieces
- lets start by staring at solutions
- the Kuali identity management solution is a potential starting point
ID Framework Functions
- authorization
- what can subject X access or who has attribute X?
- give X's attributes
- don't care where the answer came from
- manage change in attributes
- change in content/context
- how do I know when the definition of an attribute changes?
- flip side is how do I know when the content of the attribute changes?
- provisioning and de-provisioning based on attribute change
- service should set thresholds to trap exceptional changes
- introduce concept of versioning for attribute definitions
- group management
- a list of subjects
- name of a group is like the name of an attribute
- role management
- a list of subjects with permissions
- this is a deeper match into the security model of an application
, multiple selections available,