Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

sso:manuales:manual_desarrollador [2018/07/17 07:43] (actual)
Línea 1: Línea 1:
 +====== Manual para el Desarrollador ======
 +
 +{{tag>​saml2 manual desarrollador}}
 +
 +El sistema Single Sign-On de la [[http://​www.uhu.es|Universidad de Huelva]] le permite integrar aplicaciones usando el protocolo: [[http://​saml.xml.org/​saml-specifications|SAML 2.0]]
 +
 +===== Atributos disponibles =====
 +
 +Un usuario autenticado en el sistema Single Sign-On de la [[http://​www.uhu.es|Universidad de Huelva]] ​ tiene asociado un conjunto de atributos que componen su identidad. Estos atributos siguen la recomendación [[http://​wiki.rediris.es/​gtschema/​Iriseduperson#​irisEduPerson:​Recomendaciones_de_atributos_para_la_aplicaci.C3.B3n_de_las_tecnolog.C3.ADas_de_directorio_en_las_universidades|irisEduPerson]] para la  aplicación de las tecnologías de directorio en las universidades. Algunos de los atributos más usados son:
 +
 +==== Características personales ====
 +
 +^Nombre del atributo ^Posibles valores ^Descripción ^ Ejemplo ^
 +| cn | - | Nombre y apellidos completos (en mayúsculas y sin acentos). | LEANDRO PEREZ RODRIGUEZ|
 +| displayName | - | Nombre y apellidos completos (en mayúsculas y sin acentos). | LEANDRO PEREZ RODRIGUEZ|
 +| gn | - | Nombre de pila de la persona (en mayúsculas y sin acentos). | LEANDRO |
 +| givenName | - | Nombre de pila de la persona (en mayúsculas y sin acentos). | LEANDRO |
 +| sn  | - | Apellidos de la persona (en mayúsculas y sin acentos). | PEREZ RODRIGUEZ |
 +| schacSn1 | - | Primer apellido de la persona (en mayúsculas y sin acentos). | PEREZ |
 +| schacSn2 | - | Segundo apellido de la persona (en mayúsculas y sin acentos). | RODRIGUEZ |
 +| schacgender | 0 (neutro), 1 (hombre), 2 (mujer) | Sexo del usuario actual. | 2 |
 +
 +==== Contacto/​localización ====
 +
 +^Nombre del atributo ^Posibles valores ^Descripción ^ Ejemplo ^
 +| irismailmainaddress | - | Dirección de correo institucional del usuario. | leandro.perez@alu.uhu.es |
 +| mail | - | Equivalente ​ a //​irismailmainaddress//​. | ueandro.perez@alu.uhu.es |
 +| organizationName | Universidad de Huelva | Nombre de la Organización.| Universidad de Huelva |
 +| o | Universidad de Huelva | Nombre de la Organización. | Universidad de Huelva |
 +| organizationalUnitName | - | Unidad organizativa. | Centro de Investigación Internacional en Inteligencia Territorial |
 +| ou | - | Unidad organizativa. | Centro de Investigación Internacional en Inteligencia Territorial |
 +
 +==== Datos laborales ==== 
 +
 +^Nombre del atributo ^Posibles valores ^Descripción ^ Ejemplo ^
 +| eduPersonAffiliation | faculty, staff y student | Especifica la vinculación del usuario con la Universidad. | faculty |
 +| eduPersonPrimaryAffiliation | faculty, staff y student | Especifica la vinculación principal del usuario con la Universidad. | faculty |
 +| employeeNumber | - | Identificador numérico o alfanumérico que se asigna a una persona para relacionarlo a una institución. Debe ser localmente único. Se recomienda el uso del atributo //​schacPersonalUniqueCode//​. | a3b123c12 |
 +
 +==== Identificadores de enlace ==== 
 +
 +^Nombre del atributo ^Posibles valores ^Descripción ^ Ejemplo ^
 +| schacpersonaluniqueid | -| Especifica un "​identificador legal único"​. ​ | urn:​mace:​terena.org:​schac:​personalUniqueID:​es:​DNI:​31241312L ​ |
 +| schacPersonalUniqueCode | - | Especifica un valor único para la entrada a la que se asocia. | urn:​mace:​terena.org:​schac:​personalUniqueCode:​es:​uma:​estudiante:​a3b123c12 |
 +| uid | - | Según el RFC1274 este atributo especifica un nombre de usuario de una máquina. | leandro.perez.alu | 
 +| eduPersonPrincipalName | - | Un valor único en el formato formuser@domain,​ donde el dominio representa el dominio de seguridad del usuario y user es el ui. | leandro.perez.alu@uhu.es |
 +
 +==== Autorización/​derechos de acceso ====
 +
 +^Nombre del atributo ^Posibles valores ^Descripción ^ Ejemplo ^
 +| schacuserstatus | - | Usado para almacenar el conjunto de estados de una persona como usuario de los servicios de la uhu. | urn:​mace:​terena.org:​schac:​userStatus:​es:​uma.es:​getMail:​active |
 +| irisUserEntitlement | - | Usado para almacenar el conjunto de derechos de acceso a recursos. | irisUserEntitlement:​ urn:​mace:​rediris.es:​uhu.es:​entitlement:​numExp:​307000010:​N:​I | 
 +
 +
 +===== Descripción y uso del servicio =====
 +
 +==== Requisitos técnicos ====
 +
 +Para integrar una aplicación en el SSO su aplicación debe cumplir los siguientes requisitos técnicos:
 +
 +  - La dirección IP del servidor en que se aloje la aplicación debe ser estática.
 +  - Ser accedida mediante el protocolo https, para que las comunicaciones vayan cifradas.
 + 
 +Si no cumple estos requisitos no podrá solicitar la integración de su aplicación en el sistema SSO.
 +
 +Es fundamental que habilite la comprobación de certificados al usar cualquiera de los protocolos. Tanto el entorno de preproducción como el de producción utilizan certificados expedidos por la Fábrica Nacional de Moneda y Timbre. Puede descargar los certificados raíz para utilizarlos en las validaciones.
 +
 +==== Procedimiento de solicitud ====
 +
 +Cuando haya decidido que quiere integrar su aplicación en el sistema SSO, debe ponerse en contacto con nosotros. Debe indicarnos la dirección de las que obtener sus metadados así como todos los atributos solicitados para que el acceso se otorgue lo más pronto posible.
 +
 +Para obtener los metadados de proveedor de identidad de la UHU puede consultar la dirección https://​idp3.uhu.es/​idp/​saml2/​idp/​metadata.php o usar el servidor de metadatos en https://​janus.uhu.es/​idp/​module.php/​janus/​metadataexport.php?​id=prod_idp
 +
 +
 +==== Certificados ====
 +
 +El servicio de SSO utilizan certificados firmados por TERENA y validados por la CA AddTrust AB o por la Fábrica Nacional de Moneda y Timbre. ​
 +
 +===== Software =====
 +
 +No necesita conocer a fondo los protocolos de integración en el sistema SSO para que su aplicación haga uso de él. Basta con usar alguna biblioteca de las mencionadas a continuación.
 +
 +  * PHP: **[[simplesamlphp|simpleSAMLphp]]** o [[https://​www.onelogin.com/​ | OneLogin]]
 +  * Java: **[[https://​wiki.shibboleth.net/​confluence/​display/​OpenSAML/​Home|OpenSAML]]**