Fall 2009 Day 2 - IdM Plumbing for Developers

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