1 ago 2012

Configuración REST para WebCenter Spaces (PS3, PS4)

WebCenter Spaces incluye una API REST para consumir sus servicios, esta API es necesaria para alguno de los siguientes casos:

  • Utilizar la aplicación de iPhone / iPad
  • Utilizar datos de Spaces desde una aplicación WebCenter Portal
  • Subir recursos a Spaces (PageTemplate, Content Presenter Templates, etc...)

Para mi ejemplo voy a configurar mi máquina virtual (owc) para que permita este tipo de conexiones.

Es importante indicar que esto solo es necesario en WebCenter PS3 y PS4, en la nueva PS5 ya viene configurado de serie.

Probamos a conectar a la siguiente URL:

  • http://<host>:<port>/rest/api/resourceIndex
En mi caso: http://owc1:8888/rest/api/resourceIndex





Como se puede observar no tenemos acceso, realizaremos los pasos que incluye la documentación oficial, que consiste en:
  • Configurar Identity Asserter
  • Configurar el servidor de almacenes de credenciales.

Pasos a seguir


1.- Creamos el keystore

cd /oracle/jdk/bin (cualquier directorio Java)

./keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=oracle,dc=com" -alias orakey -keypass welcome1 -keystore /home/oracle/default-keystore.jks -storepass welcome1 -validity 1064

./keytool -exportcert -v -alias orakey -keystore /home/oracle/default-keystore.jks -storepass welcome1 -rfc -file /home/oracle/orakey.cer

./keytool -importcert -alias webcenter_spaces_ws -file /home/oracle/orakey.cer -keystore /home/oracle/default-keystore.jks -storepass welcome1

./keytool -importcert -alias df_orakey_public -file /home/oracle/orakey.cer -keystore /home/oracle/default-keystore.jks -storepass welcome1

2.- Lo copiamos a (Todos los manejados)

cp /home/oracle/default-keystore.jks /oracle/middleware/user_projects/domains/dev_domain/config/fmwconfig

scp /home/oracle/default-keystore.jks oracle@owc2:/oracle/middleware/user_projects/domains/dev_domain/config/fmwconfig/

vi /oracle/middleware/user_projects/domains/dev_domain/config/fmwconfig/jps-config.xml

Añadimos:

<propertySet name="trust.provider.embedded">
<property value="oracle.security.jps.internal.trust.provider.embedded.EmbeddedProviderImpl" name="trust.provider.className"/>
<property value="60" name="trust.clockSkew"/>
<property value="1800" name="trust.token.validityPeriod"/>
<property value="false" name="trust.token.includeCertificate"/>
<property value="orakey" name="trust.aliasName"/>
<property value="orakey" name="trust.issuerName"/>
</propertySet>





3.- Configuro el JKS a través de wlst.sh

/oracle/middleware/Oracle_WC1/common/bin/wlst.sh

connect('weblogic','Oracle11g','t3://owc1:7001')
updateCred(map="oracle.wsm.security", key="keystore-csf-key", user="owsm", password="welcome1", desc="Keystore key")

updateCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey", password="welcome1", desc="Encryption key")

updateCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey", password="welcome1", desc="Signing key")

disconnect()

exit()





4.- Reiniciamos los servidores

Reiniciamos todos los servidores manejados.

5.- Configuramos WLS Trust Service Asserter


  1. Accedemos a la consola de WLS
  2. Navegamos a Security Realms -> myrealm
  3. Nuevo proveedor de autenticación
  4. Nombre del "asserter" (por ejemplo, TrustServiceIdAsserter).
  5. Seleccionamos TrustServiceIdentityAsserter como tipo.
  6. Activar cambios




6.- Configuramos a través de WLST

/oracle/middleware/Oracle_WC1/common/bin/wlst.sh

connect('weblogic','Oracle11g','t3://owc1:7001')

createCred(map="o.webcenter.jf.csf.map", key="keygen.algorithm", user="keygen.algorithm", password="AES")

createCred(map="o.webcenter.jf.csf.map", key="cipher.transformation", user="cipher.transformation", password="AES/CBC/PKCS5Padding")

disconnect()
exit()



7.- Reiniciamos los servidores

Reiniciamos los nodos manejados



Por último, accedo a: http://owc1:8888/rest/api/resourceIndex y vemos el resultado obtenido



Fuentes de información: