He estado trabajando en un escenario de integración que incluye las siguientes herramientas:
- WSO2 Identity Server 5.0.0 como key manager y gestión de usuarios.
- WSO2 API Manager 1.9.1 para la gestión de las APIs.
La integración se hace bastante rápida y existe un manual bien detallado al respecto en la documentación oficial.
Para ver el uso de las APIs quise integrar además el WSO2 Dashboard Application Server 3.0.0 a esta fiesta de herramientas así que me fui al manual del WSO2 API Manager y seguí los pasos descritos.
Al intentar acceder al Admin Dashboard con las credenciales por defecto admin/admin me topo que no me permite autenticarme. Pruebo autenticarme en el WSO2 IS y funciona, en el DAS también funciona, en el Publisher y en el Store pues también funciona, así que ya es algo extraño.
Activo el modo debug y a bucear en los logs y esto es lo que me encuentro.
Invocación del WSO2 DAS al WSO2 IS para autenticar al usuario vía servicios web:
Request:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soap:Header/> <soap:Body> <aut:login> <aut:username>admin</aut:username> <aut:password>admin</aut:password> <aut:remoteAddress>localhost</aut:remoteAddress> </aut:login> </soap:Body> </soap:Envelope>Response:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <ns:loginResponse xmlns:ns="http://authentication.services.core.carbon.wso2.org"> <ns:return>true</ns:return> </ns:loginResponse> </soapenv:Body> </soapenv:Envelope>
Invocación para obtener el listado de roles del usuario y validar si se le permite el acceso:
Request:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <ser:getRoleListOfUser xmlns:ser="http://service.ws.um.carbon.wso2.org"> <ser:userName>admin</ser:userName> </ser:getRoleListOfUser> </soapenv:Body> </soapenv:Envelope>Response:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <ns:getRoleListOfUserResponse xmlns:ns="http://service.ws.um.carbon.wso2.org" > <ns:return>Internal/admin</ns:return> <ns:return>Internal/subscriber</ns:return> <ns:return>Internal/WSO2.ORG_admin_DefaultApplication_PRODUCTION</ns:return> <ns:return>Internal/WSO2.ORG_admin_DefaultApplication_SANDBOX</ns:return> <ns:return>Internal/everyone</ns:return> </ns:getRoleListOfUserResponse> </soapenv:Body> </soapenv:Envelope>
Como pueden apreciar el listado de roles que se devuelve es el siguiente:
- Internal/admin
- Internal/subscriber
- Internal/WSO2.ORG_admin_DefaultApplication_PRODUCTION
- Internal/WSO2.ORG_admin_DefaultApplication_SANDBOX
- Internal/everyone
Cuando reviso el fichero donde se definen los roles con permito a admin-dashboard, el fichero site.json aparece lo siguiente:
Roles permitidos:
- admin
- subscriber
{ "theme" : { "base" : "default", "subtheme" : "modern" }, "context" : "/admin-dashboard", "request_url":"READ_FROM_REQUEST", "tasksPerPage": 10, "allowedRole":"admin", "allowedRoles":"admin,subscriber", "workflows":{ "applicationWorkFlowServerURL": "https://localhost:9446/services/", "subscriptionWorkFlowServerURL": "https://localhost:9446/services/", "signupWorkFlowServerURL": "https://localhost:9446/services/", "appRegistrationWorkFlowServerURL": "https://localhost:9446/services/" }, "ssoConfiguration" : { "enabled" : "false", "issuer" : "API_WORKFLOW_ADMIN", "identityProviderURL" : "https://localhost:9448/samlsso", "keyStorePassword" : "", "identityAlias" : "", "responseSigningEnabled":"true", "keyStoreName" :"" } }Tuve que adicionar el rol Internal/admin al listado de allowedRoles para que mediera acceso a la aplicación.
De esa manera ya tuve acceso y pude terminar la integración con el DAS. En próximas entradas estaré posteando la integración entre estas 3 herramientas.
Espero les sea de utilidad.
Swiss-gs.com oferta servicios alojamiento en la nube y servidores dedicados en Latinoamerica. Publica ilimitada a 1Gb/s sin costos adicionales.
ResponderEliminarSee more:- Servidores Dedicados Latinoamerica