SlideShare una empresa de Scribd logo
SimpleSAMLphp
SAML made easy
Jaime Pérez
28 de Abril de 2015
¿Qué es?
  Una implementación del estándar SAML* en PHP.
Tanto la versión 1.1 como la 2.0 del estándar de OASIS.
Implementa tanto proveedores de identidad (autenticación institucional) como de servicio
(autenticación delegada en aplicaciones).
Fácil de instalar, gestionar y mantener.
Código abierto.
  Y mucho más…
28 de abril de 2015
 2
* https://www.oasis-open.org/standards#samlv2.0
¿Qué hace?
Autentica usuarios y envia aserciones con su identidad (y,
opcionalmente, atributos) a terceros de confianza (función IdP).
Delega la autenticación del usuario en terceros que albergan las
credenciales e información adicional (función SP).
Implementa Single-Sign-On entre aplicaciones.
Realiza traducción de protocolos (función proxy, soportada
parcialmente).
  PAPI
  CAS
  OpenID
  OAuth
28 de abril de 2015
 3
¿Qué hace?
Implementa reglas de autorización de acceso a recursos.
Controla los atributos enviados a las aplicaciones.
Soporta múltiples formas de autenticación:
Cuentas almacenadas en un fichero
LDAP
Base de datos
Radius
Certificados digitales
O incluso otros protocolos, haciendo que se comporte como un proxy o pasarela: PAPI, CAS,
OpenID, Windows Live, Facebook, Twitter, Myspace, Linked In, etc.
428 de abril de 2015
Ejemplo de uso: Feide*
Federación académica noruega.
Un sólo proveedor de identidad para todas las instituciones.
Apenas unos millones de usuarios potenciales.
Pero más de 75 millones de autenticaciones en 2014.
Basado en SimpleSAMLphp y una arquitectura de altas
prestaciones.
5
* https://www.feide.no/introducing-feide
28 de abril de 2015
Otro ejemplo: WAYF*
Federación académica danesa.
Arquitectura hub&spoke usando SimpleSAMLphp como eje central.
  Proxy o pasarela SAML entre los proveedores de servicio (que usan
SAML) y los proveedores de identidad (las instituciones danesas,
también usando SAML).
Utilizado incluso más allá del ámbito académico para servicios
prestados por la administración pública.
6
* http://www.wayf.dk/
28 de abril de 2015
Último ejemplo: SIR*
Arquitectura hub&spoke usando SimpleSAMLphp como pasarela
SAML.
  Proxy o pasarela entre los proveedores de servicio (que usan SAML)
y los proveedores de identidad (las instituciones españolas, usando
el protocolo PAPI desarrollado en RedIRIS**).
Ahora en proceso de sustituir la pasarela y eliminar la traducción de
protocolos entre SAML y PAPI.
Algunas instituciones ya lo usan con un conector PAPI.
7
* http://www.rediris.es/sir
**http://papi.rediris.es/
28 de abril de 2015
Instalación
Instalar y configurar Apache. También funciona sobre IIS o nginx.
Descargar la última versión estable y descomprimir en el servidor.
Configurar el servidor web para que apunte al directorio www/
dentro de la instalación de SimpleSAMLphp.
Importante: ¡en caso de no realizar correctamente este paso, estaremos dejando al descubierto
información sensible de nuestra instalación!
Usar el instalador proporcionado por RedIRIS, o…
configurarlo manualmente.

828 de abril de 2015
Configuración y mantenimiento
Configuración principal: config/config.php
  Los ficheros de configuración son archivos PHP: eso quiere decir
que podemos hacer lo que queramos con ellos, incluso cambiar la
configuración dinámicamente.
Fuentes de autenticación: config/authsources.php
Certificados: cert/
Metadatos: metadata/
Locales: metadata/saml20-idp-hosted.php
Definen la configuración SAML del proveedor de identidad local.
Remotos: metadata/saml20-sp-remote.php
Definen la configuración SAML de los proveedores de servicio remotos. En este caso, el hub del
SIR.

928 de abril de 2015
A tener en cuenta: seguridad
  Es necesario crear un certificado digital con el que firmar las
respuestas de autenticación y los metadatos. No es necesario que
esté firmado por una CA.
  La clave privada debe estar segura en el servidor.
  Hay que generar siempre un salt aleatorio. Opción secretsalt en el
archivo config/config.php. Un salt por defecto o fácil de adivinar es
un problema de seguridad.
Evitar que la raíz de la instalación sea accesible desde la web.
  Poner una contraseña de administrador decente. Por ejemplo,
usando SHA256 + salt. Se puede generar fácilmente usando bin/
pwgen.php
1028 de abril de 2015
A tener en cuenta: automatización
  Los metadatos describen cómo intercambiar información entre dos
entidades SAML. Para el correcto funcionamiento del protocolo, los
metadatos tienen que mantenerse mutuamente actualizados entre
el proveedor de servicio y el de identidad.
  Lo más recomendable es gestionar los metadatos de forma
automática, usando el módulo metarefresh.
metarefresh usa una URL permanente para descargar los
metadatos de forma periódica y dejarlos disponibles en el formato
adecuado para SimpleSAMLphp.
  Es necesario configurar un trabajo programado (por ejemplo, con
cron) en el servidor.
Ventaja: si cambia algo en el SIR, los cambios se propagan de forma
automática y sin intervención.
1128 de abril de 2015
Otras ventajas interesantes
  Se puede usar SimpleSAMLphp para tener Single-Sign-On entre las
aplicaciones locales. Una aplicación = un SimpleSAMLphp. Fácil de
integrar, pero eso si, para aplicaciones PHP. Otras soluciones para otro
tipo de aplicaciones. Y de paso: ¡Single-Sign-On también con el SIR!
Personalización de la interfaz de usuario. SimpleSAMLphp permite crear
temas para modificar la apariencia a nuestro gusto.
Autenticación de dos factores: es posible configurar authentication
processing filters para autenticar de nuevo al usuario con otro factor. Por
ejemplo: Yubikey.
Manipulación de los atributos y los datos de autenticación mediante
authentication processing filters. Distintas configuraciones dependiendo
de quién pide autenticar al usuario.
Agregación de atributos. Es posible utilizar autoridades externas para
añadir nuevos atributos a la autenticación, que no tenemos disponibles
en el momento en que se realiza la misma.
1228 de abril de 2015
Roadmap: hacia SimpleSAMLphp 2.0
  Se eliminará mucho código e interfaces antiguos.
Muchas clases cambiarán de nombre o desaparecerán.
Más sencillo de desarrollar, mantener y personalizar:
Traducciones mediante herramientas estándar.
Apariencia personalizable mediante lenguajes también estándar.
  Con la vista en el futuro: SimpleSAMLphp Consortium:
Creación de un consorcio que garantice la estabilidad del proyecto y la disponibilidad de los
recursos necesarios para su mantenimiento y desarrollo.
Posibilidad de unirse al consorcio contribuyendo económicamente, lo que garantiza la vida del
software y la capacidad de influir en la toma de decisiones.


1328 de abril de 2015
Más información
https://simplesamlphp.org/
Documentación: https://simplesamlphp.org/docs
  Internacionalización: https://simplesamlphp.org/translation
  Listas de correo: https://simplesamlphp.org/lists
Código: https://github.com/simplesamlphp/simplesamlphp
1428 de abril de 2015
¡Preguntas!
1528 de abril de 2015
¡Gracias!
jaime.perez@uninett.no
1628 de abril de 2015

Más contenido relacionado

PPTX
Qué es un api
PPTX
Desarrollando con APIs
PPTX
Definición de apis con swagger
PDF
WORKSHOP I: Introducción a API REST
PPTX
Presentacion sobre asp
PPTX
Arquitectura REST
PPTX
Creando y Orquestando APIs en MuleSoft
Qué es un api
Desarrollando con APIs
Definición de apis con swagger
WORKSHOP I: Introducción a API REST
Presentacion sobre asp
Arquitectura REST
Creando y Orquestando APIs en MuleSoft

La actualidad más candente (20)

PDF
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
DOCX
Arquitectura Rest
PPTX
Introducción a REST - SymfonyVLC
PPT
Asp .net
PPTX
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
PPTX
REST, JERSEY & SOAP
PDF
PPTX
ASP.NET MVC
PPTX
Ecosistema laravel
PPT
Kumbia PHP Framework - Inicios, Presente y Futuro
ODP
Spring Mvc Final
PPTX
Desarrollo Web con Kohana Framework PHP
DOCX
Apache axis v1.1
PDF
Introducción Spring Framework
PPTX
Desarrollo Web con ASP.NET MVC
PPTX
Active mq - adopción
PPTX
Cuadro comparativo 2
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
Arquitectura Rest
Introducción a REST - SymfonyVLC
Asp .net
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
REST, JERSEY & SOAP
ASP.NET MVC
Ecosistema laravel
Kumbia PHP Framework - Inicios, Presente y Futuro
Spring Mvc Final
Desarrollo Web con Kohana Framework PHP
Apache axis v1.1
Introducción Spring Framework
Desarrollo Web con ASP.NET MVC
Active mq - adopción
Cuadro comparativo 2
Publicidad

Destacado (7)

PPTX
Monitores transaccionales
PDF
About SimpleSAMLphp 2009
PPTX
Middleware
PPT
Sistemas de información distribuidos
DOCX
PDF
Guía para las madres que amamantan
PDF
Evaluación de las pruebas y programas de detección precoz (criabao o screengi...
Monitores transaccionales
About SimpleSAMLphp 2009
Middleware
Sistemas de información distribuidos
Guía para las madres que amamantan
Evaluación de las pruebas y programas de detección precoz (criabao o screengi...
Publicidad

Similar a SimpleSAMLphp (20)

PDF
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
PPTX
Mada metodología ágil de desarrollo de apis
PPTX
Google Cloud Platform y Python
PDF
"Los Imprescindibles de .NetCore"
KEY
Presentación html5
PPTX
Seguridad en las apis desde un punto de vista de developer
PDF
Apli t1 ejr
PDF
MuleSoft Anypoint Platform - Releases 2019
PPTX
Mulesoft Anypoint platform: Design Center
ODP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
PPT
Seguridad en el Desarrollo de Aplicaciones Web PHP
PPTX
RAML
PDF
Programación web con PHP con Tecnología Bootstrap.
PPTX
MuleSoft Meetups Panama City 04 - MuleSoft API Manager
PDF
API como SaaS
PPT
02 webinar gestion_expedientes_v0.6.1-intix
DOCX
Act1 tecnologiaweb uni1
PDF
Gestión documental colaborativa con Alfresco ECM
PDF
Análisis del TCO del Uso de Sofia2 como backend vs desarrollo a medida sobre ...
PPT
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Mada metodología ágil de desarrollo de apis
Google Cloud Platform y Python
"Los Imprescindibles de .NetCore"
Presentación html5
Seguridad en las apis desde un punto de vista de developer
Apli t1 ejr
MuleSoft Anypoint Platform - Releases 2019
Mulesoft Anypoint platform: Design Center
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP
RAML
Programación web con PHP con Tecnología Bootstrap.
MuleSoft Meetups Panama City 04 - MuleSoft API Manager
API como SaaS
02 webinar gestion_expedientes_v0.6.1-intix
Act1 tecnologiaweb uni1
Gestión documental colaborativa con Alfresco ECM
Análisis del TCO del Uso de Sofia2 como backend vs desarrollo a medida sobre ...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...

Último (11)

PPTX
Fundamentos de Python - Curso de Python dia 1
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
sistemas de informacion.................
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
Fundamentos de Python - Curso de Python dia 1
Derechos_de_Autor_y_Creative_Commons.pptx
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
sistemas de informacion.................
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
Implementación equipo monitor12.08.25.pptx
Conceptos basicos de Base de Datos y sus propiedades
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
Su punto de partida en la IA: Microsoft 365 Copilot Chat
AutoCAD Herramientas para el futuro, Juan Fandiño

SimpleSAMLphp

  • 1. SimpleSAMLphp SAML made easy Jaime Pérez 28 de Abril de 2015
  • 2. ¿Qué es?   Una implementación del estándar SAML* en PHP. Tanto la versión 1.1 como la 2.0 del estándar de OASIS. Implementa tanto proveedores de identidad (autenticación institucional) como de servicio (autenticación delegada en aplicaciones). Fácil de instalar, gestionar y mantener. Código abierto.   Y mucho más… 28 de abril de 2015 2 * https://www.oasis-open.org/standards#samlv2.0
  • 3. ¿Qué hace? Autentica usuarios y envia aserciones con su identidad (y, opcionalmente, atributos) a terceros de confianza (función IdP). Delega la autenticación del usuario en terceros que albergan las credenciales e información adicional (función SP). Implementa Single-Sign-On entre aplicaciones. Realiza traducción de protocolos (función proxy, soportada parcialmente).   PAPI   CAS   OpenID   OAuth 28 de abril de 2015 3
  • 4. ¿Qué hace? Implementa reglas de autorización de acceso a recursos. Controla los atributos enviados a las aplicaciones. Soporta múltiples formas de autenticación: Cuentas almacenadas en un fichero LDAP Base de datos Radius Certificados digitales O incluso otros protocolos, haciendo que se comporte como un proxy o pasarela: PAPI, CAS, OpenID, Windows Live, Facebook, Twitter, Myspace, Linked In, etc. 428 de abril de 2015
  • 5. Ejemplo de uso: Feide* Federación académica noruega. Un sólo proveedor de identidad para todas las instituciones. Apenas unos millones de usuarios potenciales. Pero más de 75 millones de autenticaciones en 2014. Basado en SimpleSAMLphp y una arquitectura de altas prestaciones. 5 * https://www.feide.no/introducing-feide 28 de abril de 2015
  • 6. Otro ejemplo: WAYF* Federación académica danesa. Arquitectura hub&spoke usando SimpleSAMLphp como eje central.   Proxy o pasarela SAML entre los proveedores de servicio (que usan SAML) y los proveedores de identidad (las instituciones danesas, también usando SAML). Utilizado incluso más allá del ámbito académico para servicios prestados por la administración pública. 6 * http://www.wayf.dk/ 28 de abril de 2015
  • 7. Último ejemplo: SIR* Arquitectura hub&spoke usando SimpleSAMLphp como pasarela SAML.   Proxy o pasarela entre los proveedores de servicio (que usan SAML) y los proveedores de identidad (las instituciones españolas, usando el protocolo PAPI desarrollado en RedIRIS**). Ahora en proceso de sustituir la pasarela y eliminar la traducción de protocolos entre SAML y PAPI. Algunas instituciones ya lo usan con un conector PAPI. 7 * http://www.rediris.es/sir **http://papi.rediris.es/ 28 de abril de 2015
  • 8. Instalación Instalar y configurar Apache. También funciona sobre IIS o nginx. Descargar la última versión estable y descomprimir en el servidor. Configurar el servidor web para que apunte al directorio www/ dentro de la instalación de SimpleSAMLphp. Importante: ¡en caso de no realizar correctamente este paso, estaremos dejando al descubierto información sensible de nuestra instalación! Usar el instalador proporcionado por RedIRIS, o… configurarlo manualmente. 828 de abril de 2015
  • 9. Configuración y mantenimiento Configuración principal: config/config.php   Los ficheros de configuración son archivos PHP: eso quiere decir que podemos hacer lo que queramos con ellos, incluso cambiar la configuración dinámicamente. Fuentes de autenticación: config/authsources.php Certificados: cert/ Metadatos: metadata/ Locales: metadata/saml20-idp-hosted.php Definen la configuración SAML del proveedor de identidad local. Remotos: metadata/saml20-sp-remote.php Definen la configuración SAML de los proveedores de servicio remotos. En este caso, el hub del SIR. 928 de abril de 2015
  • 10. A tener en cuenta: seguridad   Es necesario crear un certificado digital con el que firmar las respuestas de autenticación y los metadatos. No es necesario que esté firmado por una CA.   La clave privada debe estar segura en el servidor.   Hay que generar siempre un salt aleatorio. Opción secretsalt en el archivo config/config.php. Un salt por defecto o fácil de adivinar es un problema de seguridad. Evitar que la raíz de la instalación sea accesible desde la web.   Poner una contraseña de administrador decente. Por ejemplo, usando SHA256 + salt. Se puede generar fácilmente usando bin/ pwgen.php 1028 de abril de 2015
  • 11. A tener en cuenta: automatización   Los metadatos describen cómo intercambiar información entre dos entidades SAML. Para el correcto funcionamiento del protocolo, los metadatos tienen que mantenerse mutuamente actualizados entre el proveedor de servicio y el de identidad.   Lo más recomendable es gestionar los metadatos de forma automática, usando el módulo metarefresh. metarefresh usa una URL permanente para descargar los metadatos de forma periódica y dejarlos disponibles en el formato adecuado para SimpleSAMLphp.   Es necesario configurar un trabajo programado (por ejemplo, con cron) en el servidor. Ventaja: si cambia algo en el SIR, los cambios se propagan de forma automática y sin intervención. 1128 de abril de 2015
  • 12. Otras ventajas interesantes   Se puede usar SimpleSAMLphp para tener Single-Sign-On entre las aplicaciones locales. Una aplicación = un SimpleSAMLphp. Fácil de integrar, pero eso si, para aplicaciones PHP. Otras soluciones para otro tipo de aplicaciones. Y de paso: ¡Single-Sign-On también con el SIR! Personalización de la interfaz de usuario. SimpleSAMLphp permite crear temas para modificar la apariencia a nuestro gusto. Autenticación de dos factores: es posible configurar authentication processing filters para autenticar de nuevo al usuario con otro factor. Por ejemplo: Yubikey. Manipulación de los atributos y los datos de autenticación mediante authentication processing filters. Distintas configuraciones dependiendo de quién pide autenticar al usuario. Agregación de atributos. Es posible utilizar autoridades externas para añadir nuevos atributos a la autenticación, que no tenemos disponibles en el momento en que se realiza la misma. 1228 de abril de 2015
  • 13. Roadmap: hacia SimpleSAMLphp 2.0   Se eliminará mucho código e interfaces antiguos. Muchas clases cambiarán de nombre o desaparecerán. Más sencillo de desarrollar, mantener y personalizar: Traducciones mediante herramientas estándar. Apariencia personalizable mediante lenguajes también estándar.   Con la vista en el futuro: SimpleSAMLphp Consortium: Creación de un consorcio que garantice la estabilidad del proyecto y la disponibilidad de los recursos necesarios para su mantenimiento y desarrollo. Posibilidad de unirse al consorcio contribuyendo económicamente, lo que garantiza la vida del software y la capacidad de influir en la toma de decisiones. 1328 de abril de 2015
  • 14. Más información https://simplesamlphp.org/ Documentación: https://simplesamlphp.org/docs   Internacionalización: https://simplesamlphp.org/translation   Listas de correo: https://simplesamlphp.org/lists Código: https://github.com/simplesamlphp/simplesamlphp 1428 de abril de 2015