Oct 21

OpenAM: some ssoadm commands for reference

Reading time: 3 – 4 minutes

OpenAM is as much powerful as complicated sometimes. In this case I spent a lot of time understanding how to set simple settings because of that I decide to take note about that in this blog entry.

First of all don’t forget to set the environment variables and go to ssoadm path:

export JAVA_HOME="/usr/lib/jvm/java-6-openjdk-amd64/jre"
export CLASSPATH="/var/lib/tomcat7/webapps/openam/WEB-INF/lib/policy-plugins.jar::/var/lib/tomcat7/webapps/openam/WEB-INF/lib/openam-core-11.0.0.jar"

cd /opt/openam/ssoadmin/openam/bin

Getting the list of user identities:

./ssoadm list-identities -u amadmin -f /tmp/oam.pwd -e / -t User -x "*"

anonymous (id=anonymous,ou=user,dc=openam)
demo (id=demo,ou=user,dc=openam)
serviceusername (id=serviceusername,ou=user,dc=openam)
amAdmin (id=amAdmin,ou=user,dc=openam)
Search of Identities of type User in realm, / succeeded.

another useful query would be:

./ssoadm list-identities -u amadmin -f /tmp/oam.pwd -e / -t Role -x "*"

No plug-ins configured for this operation

But as you can see it doesn’t work and I don’t know how to solve it.

Taking a look to GUI get to identities list with: Access Control > / (Top Level Realm) > Privileges

In this webpage you have a list of role identities, in my case I have only this: “All Authenticated Users”. Inside this identity I can set different privileges:

  • REST calls for Policy Evaluation (EntitlementRestAccess)
  • Read and write access to all log files (LogAdmin)
  • REST calls for searching entitlements (PrivilegeRestReadAccess)
  • Read access to all log files (LogRead)
  • Read and write access to all federation metadata configurations (FederationAdmin)
  • Read and write access only for policy properties (PolicyAdmin)
  • Read and write access to all configured Agents (AgentAdmin)
  • Read and write access to all realm and policy properties (RealmAdmin)
  • REST calls for managing entitlements (PrivilegeRestAccess)
  • Write access to all log files (LogWrite)

If we want to remove a privilege:

root@vm:/opt/openam/ssoadmin/openam/bin# ./ssoadm remove-privileges -u amAdmin -f /tmp/oam.pwd -e / -g EntitlementRestAccess -i "All Authenticated Users" -t role

Privileges were removed from identity, All Authenticated Users of type, role in realm, /.

or adding a privilege:

root@vm:/opt/openam/ssoadmin/openam/bin# ./ssoadm add-privileges -u amAdmin -f /tmp/oam.pwd -e / -g EntitlementRestAccess -i "All Authenticated Users" -t role

Talking about policies, exporting:

./ssoadm list-policies -u amadmin -f /tmp/oam.pwd -e / -o /tmp/policies.xml

and if we want to import the policies:

./ssoadm create-policies -u amAdmin -f /tmp/oam.pwd -e / --xmlfile /tmp/policies.xml

creating a user:

./ssoadm create-identity -u amadmin -f /tmp/oam.pwd  -e / -i serviceusername -t User --attributevalues "userpassword=servicepassword"

Useful references:

Dec 18

MVC i PHP

Reading time: 4 – 7 minutes

Com molts sabeu jo no sóc informàtic ni pretenc ser-ho, ara com jo sempre dic, als telemàtics se’ns pre-suposa que sabem informàtica. Alguns diuen que saber programar no és saber informàtica però jo crec que almenys si saps programar algo d’infomàtica saps. Així doncs entre tot aquest dilèma que m’he montat per dir només que, fins no fa massa anys no havia sentit a parlar del sistema de programació MVC (Model Business, View i Controller). Potser algú recorda que fa molt de temps vaig publicar un article on recomanava la web d’en Tony Marston. Doncs aquí van ser on per primer cop vaig coneixer una mica a fons tot aquest tema.

Malgrat no ho necessito per res en especial fa uns dies vaig pensar que seria bona idea aprofundir una mica més en aquest tema del MVC i he estat llegint una miqueta sobre el tema. Com que el llenguatge de programació que més uso és el PHP vaig buscar informació de frameWorks que implementessin el model MVC sobre aquest llenguatge que en principi no implementa per defecta una estructura MVC. Perquè us feu una idea en aplicacions ASP (Applications Service Provider) el sistema MVC per excel·lència és els servlets de Java, per exemple, la implementació Tomcat. Pels que conegueu millor el tema que jo és el que en java en diuen struts. Si algú de vosaltres ja ho coneix i vol una implementació dels mateixos feta en PHP us recomano que us mireu el phpMVC.

Com us comentava abans tot això ho vaig descobrir a fons a través d’en Tony i ell mateix té un document que crec que és molt bo, que explica com implementar un model MVC directament sobre PHP sense passar per un frameWork concret. El document en qüestió es diu The Model-View-Controller (MVC) Design Pattern for PHP. Si com jo abans d’atacar documents com aquest heu de fer una intro al tema, la documentació de Java sobre el MVC i els struts jo diria que és molt bona. Concretament us recomano els següents capitols:

Un bon dibuix perquè veieu pels que no us soni de res el que dic, que el model és molt útil:

web-tier8.gif

Des de la documentació d’Oracle sobre els models MVC he trobat un gràfic que aplica la teoria exposada en el gràfic i documents anteriors des d’un gràfic aplicat directament a explicar les sigles MVC:

mvc.jpg

Tornant al tema PHP hi ha molts més frameworks i webs que parlen d’MVC sobre aquest llenguatge. Però potser els que més bona pinta m’han fet, sense haver tingut la sort de poder-los provar amb calma i tranquil·litat, són els que us poso a continuació:

  • phpMVC com us he comentat abans jo diria que és un dels frameworks que implementen MVC més complerts, sobretot perquè en la capa d’accés a dades i en la capa de presentació suporta llibreries tan conegudes com: PEAR, phpLIB, Smarty i moltes d’altres. Com us he comentat és una implementació directa del model struts que usen els servlets de java.
  • cakePHP jo diria que és la llibreria MVC perfecte per programar ràpidament una aplciació sense tenir una curva d’aprenentatge que es dilati massa en el temps.
  • WACT (Web Application Component Toolkit) també té pinta de no ser massa complicat i jo diria que esta prou bé. Sembla que esta pensat perquè no ens perdem a l’hora de programar aplicacions segures. Però no veig massa clar quines carències té. Potser la petita comunitat d’usuaris?

Com que sobre aquest tema no en sé gaire més, us remeto a una discusió que he trobat en un forum que sembla prou interessant i de nivell. A més molta gent hi parla amb coneixement de causa, cosa que és d’agraïr, Tired of non-standards? Take a look. si aquesta us sembla poc concreta, una altre: PHP Frameworks.

Si algún dels lectors que sigui informàtic, o que senzillament, en sapigue molt més que jo i ens pot donar eines per mortals per dominar aquestes tècniques encantat de mirarme-les.

Nov 16

Groovy: simplificant Java

Reading time: 1 – 2 minutes

groovy.png

Groovy és un llenguatge que usa les APIs de Java però que simplifica la programació al màxim. Sembla que no esta malament algún dia li podria donar un cop d’ull. També he trobat un article d’IBM que en fa una petita introducció, sembla molt senzill realment.

A O’Reilly Network es va publicar no fa massa un codi fet en Groovy que servia per crear un lector de feeds (tipus liferea) que treballava contra les APIs de bloglines. Això et pot interessar pof. L’article: A Complete Bloglines API Application ( versió imprimible )

Si algú l’ha provat o l’arriva a provar que avisi que tinc curiositat de saber fins on arriba la implementació de la API o del paquet de classes de java millor dit.