You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Simple Backbone Usage Scenario for which TIER will Demo Solutions (4/27/2016)

 

This TIER WG work item is intended to lead to the delivery of one or more Proof of Concept (PoC) implementations of a “Backbone Usage Scenario”. The scenario captures a very simple end-to-end story that begins with the addition of a new (SoR or invitee) person to the IAM infrastructure and ends with that individual gaining appropriate access to an SSO- or SAML (Shibboleth)-protected service.  The registry workgroup recommends that adequate TIER resources be devoted to the PoC work so that running implementations can be shared with and vetted by TIER developers and potential TIER adopters. 

  1. The installing institution should already have in place an IDP authenticating against Kerberos, pulling attributes from user objects in LDAP.  These steps are now part of what is to be demonstrated in the Backbone Usage Scenario Proof of Concept (PoC) implementations.
  2. COmanage should be the basis for one proof of concept (PoC) implementation.
  3. A second PoC implementation is in the early stages of development at https://testbed.tier.internet2.edu/secure/
  4. One challenge for the PoC: How do we successfully complete all steps of this story without implementing a full-fledged rules engine?
    1. The now famous ‘lizard brain’ (simple) rules engine is one answer. It would need to be barely smart enough to do the simple logic behind the (SoR feed)-to-(Registry user attribute)-to-(Grouper Group), and behind the process that adding to ‘faculty’ group should trigger provisioning to LDAP and Kerberos.
  5. The PoC Entity Registry may simply inform a Provisioning Consumer: “This Resource changed and here’s its current representation”. This can be accomplished via either a push over RESTful APIs or as an event message payload on a queue or channel–or both.
  6. Beyond simple add/remove faculty; one individual tends to have multiple hats, each hat implies access to a particular set of services 
  7. People receiving (or at least “me receiving”) information may need to treat the stated “previous value” information (if it’s included) as advisory.
    1. Do we assume that messages would contain "what (about the object) changed", "old value", "new value", and "verb (change type)". In the model outlined in 4.b below. (where content is "current state" and an indication that something changed) this point may not be relevant. There are potential performance issues if the recipient has to compare previous state of a resource to its current state, a possibly expensive operation. (E.g., compare all current group memberships to all expected group memberships might be expensive to calculate on every object update).

 

 

 

Identity Ecosystem Column

 TIER Functional Service

Functionality in BackBone Scenario

Systems of Record

Registration and Enrollment from SoR

1.1) Provides periodic feed (most SoRs can do this today, daily, hourly, etc)

Filtering/Routing/Integration Rule Engine

Rule Engine Service,

 

Registration and Enrollment from SoR>Search/Match   Entity

 

 

 

 

Credential Management

2.1) Translate the syntax/semantics of the local feed to standard TIER format

2.2) Invoke TIER utility to process that file

For each person, use the IdMatch API (stub only for now) to see if this person already exists in the Registry

2.3) For ADD operations

2.3.1) If IdMatch found, update the existing Registry entry (un-soft-delete if necessary)

2.3.2) If no match found, create a new Registry entry, and   send “new user” event in the Lifecycle Management Engine (lizard brain or ?)   which triggers replication to LDAP and Credential Store

2.3.2.1) LDAP and Kerberos for reference implementation? The Shib plug-in for Web SSO authentication is the integration point for alternate AuthN methods

2.3.3) Assignment of a one-time token good for a userid/password credential (or challenge questions? (both approaches have   been discussed) 2.3.4) Notify user to visit “Activate” page.

2.3.5) Create group memberships based on affiliation attributes in the input feed. Drive this from a rule in lizard brain.

2.3.5.1) If AFFILIATION from SoR = faculty or staff then add person to Group “Instructor”

2.3.5.2) If AFFILIATION from SoR = student then add person to Group “Learner”

2.4) For DROP operations, TAG the user appropriately in the Registry (“soft delete”); this would cause updates in LDAP and Kerberos(expire   account), and remove them from groups.

Repositories

Repository Components

3.1) Provide  IdMatch API

3.2) Provide Add Person API

3.3) Provide DROP Person API

3.4) Provide add person X to group Y API

3.5) Provide remove person X from group Y API

Provisioning

/Rules Engine

Provision/De-provision>  Person Entity

Rules Engine

 

 

4.1) When person is added replicate them to ldap

4.2) When person is added replicate them to kerberos

4.3) When person is dropped remove them from ldap

4.4) When person is dropped remove/disable them from kerberos

4.5) When person is added to group update linked ldap group

4.6) When person is dropped from a group update the linked ldap group

Capabilities of the backbone and associated   application.  Demo in this manner…

 

5.1) Configure the sample application (TBD) to use Shibboleth as its Web SSO mechanism

5.2) Configure requested attributes element on Shib session protected endpoints, ask for displayName and isMemberOf

5.3) Have a registered user browse to the protected application

5.4) They authenticate at the IDP

5.5) Depend on Kerberos for the initial user authentication behind the IDP, Release attributes X, Y, Z to the sample   application

5.6.1) If authenticated user isMemberOf the Instructor Group, show an hello {name} “Instructor Manual” Page

5.6.2) If authenticated user isMemberOf the Learner Group, show a hello {name} “Student Workbook” Page

 

  • What minimal Lego-Block collection of functional interfaces are needed to actually build a proof of concept implementation?  
    • Minimal IDmatch API implementation for first round proof of concept
    • Evaluation of rules engine longer term will include a review of http://activiti.org and its process and rules capabilities
    • Suggestion to review more use cases, considering the human beings' role in the processes, as a guide to requirements on the UI
    • Leverage a tool like PWM https://github.com/pwm-project/pwm for account and credential management. Evaluate its utility as a way to do all the messy work around account and credential management. It can do tokens, password recover questions, reset to personal email, SMS message to mobile, and more. Based on initial look at the documentation this looks like a good "lego" for the TIER package.
  • No labels