dimecres, 29 de novembre del 2006

CWL architecture and integration methodologies

Meeting amb en Kent Fong (Manager Access Applications) i en Hari Mailvaganam (Senior Programmer Analyst)

El sistema d'autenticació de la UBC és el CWL, les sigles volen dir Campus Wide Login. La web amb tota la informaciço referent al CWL és: http://www.cwl.ubc.ca/. El Kent fa una definició molt gràfica de què és el CWL i l'anomena The connecting LEGO piece.
Aquest sistema va néixer l'any 2002. Tal com ens va passar a nosaltres, van començar a tenir diversos sistemes en entorn web pels quals necessitaven autenticació: portal, e-learning tool, biblioteca... La idea principal era oferir un nom d'usuari i password únics per a totes les aplicacions i facilitar el SSO des del portal.
Han fet molta publicitat a la universitat sobre el CWL, fins i tot té un logo i un lema ("simple and secure").
Van començar amb 15.000 comptes i ara mateix en tenen 190.000 (ja veureu més endevant que no fan baixes). Per que us feu una idea, a SAU tenim unes 25.000 comptes actives actualment.

CWL Accounts
La política d'assignació de comptes és molt diferent de la del nostre SAU. A la UBC, és l'usuari el que ha de fer la petició per tal d'aconseguir un compte CWL. No fan carregues automàtiques diàries de les BBDD de RRHH i Gestió Acadèmica. Tenen 3 tipus de comptes:
  • Basic. Aquest tipus de comptes només serveixen per poder accedir a myCV o al Researcher Information Services, però no tenen cap privilegi per accedir a la resta de serveis informàtics (portal, library, wireless, ...). Qualsevol pot demanar un compte basic. Les úniques dades que es demanen a l'hora de fer l'alta són les personals: nom, cognom, adreça, email i password desitjat. Un cop s'han omplert aquestes dades, s'enviarà un mail a l'usuari per demanar una validació. Aquesta es fa de la manera següent: l'usuari ha de clicar un link que li apareix al mail i un cop arriba a la plana web en qüestió, ha d'introduïr el seu password. Després de la validació ja estarà activat el compte.
  • Standard. Els comptes standard són les que es donen als empleats i estudiants de la UBC. En aquest cas l'usuari ha de saber el seu número d'empleat (NIU) o d'estudiant (NIA) perquè el sistema, a més de les dades personals, li demanarà. Com a propietari d'un compte d'aquest tipus l'usuari tindrà accés a IAP, VPN i wireless. L'autorització per la resta de serveis informàtics, com ara email, webCT, etc., és responsabilitat de cada una de les aplicacions. El CWL els hi oferirà únicament autenticació. Per les comptes standard l'alta és instantània.
  • Guest. Els usuaris amb comptes guest són els que nosaltres anomenem autoritzats. Per poder obtenir un compte d'aquest tipus és necessari tenir un sponsor (algun empleat que l'autoritzi, ja sigui staff o faculty). Pot funcionar de dues maneres: o be qui et vol autoritzar crea el compte per tu i et passa el password que s'ha inventat (en aquest cas rebs un email amb les condicions de privacy), o be qui et vol autoritzar genera una identity key per tu, te la passa, i et dones d'alta tu mateix. A nosaltres ens han donat comptes amb el primer sistema.
En la creació de qualsevol tipus de comptes és demanen 3 preguntes personals (les que l'usuari prefereixi) perquè en el cas que s'oblidés el password, ell mateix podria resetejar-lo contestant a aquestes preguntes.
Un altre mètode de seguretat que utilitzen per evitar creacions massives de comptes és CAPTCHA (http://es.wikipedia.org/wiki/Captcha). En cas que l'usuari hagi oblidat el password, a més a més de les 3 preguntes també apareix un captcha.
Si aneu a la pantalla de sign up podreu veure les dades que es demanen a cada un dels passos de la creació del compte: https://www.cwl.ubc.ca/SignUp/cwlsubscribe/SelfSubscribeIndex.do
A la web del SSC (Student Service Centre) hi ha aquest video com a ajuda per a l'estudiant per crear el seu compte CWL:
http://www.students.ubc.ca/go2/help/general_Creating_a_Campus_Wide_Login_viewlet_swf.html

CWL Modules

Internament el sistema està dividit en diversos mòduls:

  • Self subscription
  • Self administration
  • Sponsored accounts
  • Authenticate engine
  • Administration tools. Tenen 4 eines d'administració delegada diferents. Una per delegar la gestió dels staff, una altra pels faculty, una pels students i una de superadministració.
Des de les eines d'administració es poden comprovar passwords, canviar-los, afegir rols a un usuari, canviar dades personals, ...

Arquitectura interna


El repositori és una BBDD Oracle i un LDAP. La base de dades està replicada. La principal és RW i la secundària és READ ONLY. De manera que si la principal falla, no podran donar d'alta nous usuaris mentre estigui fora de servei però continuarà funcionant l'autenticació sense problemes. A més d'aquesta replicació també tenen el LDAP perquè hi ha aplicacions que només poden autenticar contra LDAP.
El sistema està desenvolupat en Java i fan servir XML i RPCs sobre protocol HTTP per a l'autenticació.

Integració
L'equip del CWL té molt ben documentat el funcionament del CWL tant per usuaris com per partners. Els partners són cadascuna de les APIs que volen fer ús del CWL per autenticar.
Com veieu en el dibuixet les aplicacions necessiten un adaptor per manegar els tickets d'autenticació. Ofereixen suport i ajuda a l'hora d'integrar aplicacions però els responsables de desenvolupar els adaptors són els partners.


Podeu llegir més informació sobre la integració a http://www.it.ubc.ca/cwl/integration.shtml. És interessant sobretot veure que tenen molt ben organitzat i documentat el procés, que té els següents passos:
  1. Discovery Meeting
  2. Requirements Definition
  3. Workflow Diagram
  4. Project Schedule
  5. Design
  6. Development
  7. Testing in the CWL Verification (Verf) Environment
  8. Move to Production
De moment porten fetes 58 integracions.

Futur
S'estan plantejant crear comptes automàticament.
També els falta implementar les baixes, ara mateix no fan mai baixa de comptes! Els ha semblat molt interessant el nostres sistema de dates de proposta de fi per cada perfil/pertany.
El SUN Identity Manager l'estan mirant per a veure si els pot ajudar a implementar les coses que els falten, per a tenir-lo com un afegit al CWL, no com un substitut. Però encara no ho tenen clar.