# Manual para el Desarrollador

El sistema Single Sign-On de la [Universidad de Huelva](http://www.uhu.es/ "http://www.uhu.es") le permite integrar aplicaciones usando el protocolo: [SAML 2.0](http://saml.xml.org/saml-specifications "http://saml.xml.org/saml-specifications")

## Atributos disponibles

Un usuario autenticado en el sistema Single Sign-On de la [Universidad de Huelva](http://www.uhu.es/ "http://www.uhu.es") tiene asociado un conjunto de atributos que componen su identidad. Estos atributos siguen la recomendación [irisEduPerson](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 "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") para la aplicación de las tecnologías de directorio en las universidades. Algunos de los atributos más usados son:

### Características personales

<div id="bkmrk-%C2%A0-nombre-del-atribut"><div><table border="2" class="inline table table-striped table-condensed"><caption> </caption><thead><tr class="row0"><th class="col0" style="width: 132.812px;">Nombre del atributo</th><th class="col1" style="width: 181.438px;">Posibles valores</th><th class="col2" style="width: 326.219px;">Descripción</th><th class="col3" style="width: 169.469px;">Ejemplo</th></tr></thead><tbody><tr class="row1"><td class="col0" style="width: 132.812px;">cn</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Nombre y apellidos completos (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">LEANDRO PEREZ RODRIGUEZ</td></tr><tr class="row2"><td class="col0" style="width: 132.812px;">displayName</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Nombre y apellidos completos (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">LEANDRO PEREZ RODRIGUEZ</td></tr><tr class="row3"><td class="col0" style="width: 132.812px;">gn</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Nombre de pila de la persona (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">LEANDRO</td></tr><tr class="row4"><td class="col0" style="width: 132.812px;">givenName</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Nombre de pila de la persona (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">LEANDRO</td></tr><tr class="row5"><td class="col0 leftalign" style="width: 132.812px;">sn</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Apellidos de la persona (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">PEREZ RODRIGUEZ</td></tr><tr class="row6"><td class="col0" style="width: 132.812px;">schacSn1</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Primer apellido de la persona (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">PEREZ</td></tr><tr class="row7"><td class="col0" style="width: 132.812px;">schacSn2</td><td class="col1" style="width: 181.438px;">-</td><td class="col2" style="width: 326.219px;">Segundo apellido de la persona (en mayúsculas y sin acentos).</td><td class="col3" style="width: 169.469px;">RODRIGUEZ</td></tr><tr class="row8"><td class="col0" style="width: 132.812px;">schacgender</td><td class="col1" style="width: 181.438px;">0 (neutro), 1 (hombre), 2 (mujer)</td><td class="col2" style="width: 326.219px;">Sexo del usuario actual.</td><td class="col3" style="width: 169.469px;">2</td></tr></tbody></table>

</div></div>### Contacto/localización

<div id="bkmrk-nombre-del-atributo-"><div><table class="inline table table-striped table-condensed" style="height: 5px;" width="19"><thead><tr class="row0"><th class="col0 align-left" style="width: 185px;">Nombre del atributo</th><th class="col1 align-left" style="width: 156px;">Posibles valores</th><th class="col2 align-left" style="width: 181px;">Descripción</th><th class="col3 align-left" style="width: 285px;">Ejemplo</th></tr></thead><tbody><tr class="row1"><td class="col0 align-left" style="width: 185px;">irismailmainaddress</td><td class="col1 align-left" style="width: 156px;">-</td><td class="col2 align-left" style="width: 181px;">Dirección de correo institucional del usuario.</td><td class="col3 align-left" style="width: 285px;">leandro.perez@alu.uhu.es</td></tr><tr class="row2"><td class="col0 align-left" style="width: 185px;">mail</td><td class="col1 align-left" style="width: 156px;">-</td><td class="col2 align-left" style="width: 181px;">Equivalente a *irismailmainaddress*.</td><td class="col3 align-left" style="width: 285px;">ueandro.perez@alu.uhu.es</td></tr><tr class="row3"><td class="col0 align-left" style="width: 185px;">organizationName</td><td class="col1 align-left" style="width: 156px;">Universidad de Huelva</td><td class="col2 align-left" style="width: 181px;">Nombre de la Organización.</td><td class="col3 align-left" style="width: 285px;">Universidad de Huelva</td></tr><tr class="row4"><td class="col0 align-left" style="width: 185px;">o</td><td class="col1 align-left" style="width: 156px;">Universidad de Huelva</td><td class="col2 align-left" style="width: 181px;">Nombre de la Organización.</td><td class="col3 align-left" style="width: 285px;">Universidad de Huelva</td></tr><tr class="row5"><td class="col0 align-left" style="width: 185px;">organizationalUnitName</td><td class="col1 align-left" style="width: 156px;">-</td><td class="col2 align-left" style="width: 181px;">Unidad organizativa.</td><td class="col3 align-left" style="width: 285px;">Centro de Investigación Internacional en Inteligencia Territorial</td></tr><tr class="row6"><td class="col0 align-left" style="width: 185px;">ou</td><td class="col1 align-left" style="width: 156px;">-</td><td class="col2 align-left" style="width: 181px;">Unidad organizativa.</td><td class="col3 align-left" style="width: 285px;">Centro de Investigación Internacional en Inteligencia Territorial</td></tr></tbody></table>

</div></div>### Datos laborales

<div id="bkmrk-nombre-del-atributo--0"><div><table class="inline table table-striped table-condensed" style="width: 829px;"><thead><tr class="row0"><th class="col0" style="width: 96.2969px;">Nombre del atributo</th><th class="col1" style="width: 124.375px;">Posibles valores</th><th class="col2" style="width: 432.703px;">Descripción</th><th class="col3" style="width: 156.625px;">Ejemplo</th></tr></thead><tbody><tr class="row1"><td class="col0" style="width: 96.2969px;">eduPersonAffiliation</td><td class="col1" style="width: 124.375px;">faculty, staff y student</td><td class="col2" style="width: 432.703px;">Especifica la vinculación del usuario con la Universidad.</td><td class="col3" style="width: 156.625px;">faculty</td></tr><tr class="row2"><td class="col0" style="width: 96.2969px;">eduPersonPrimaryAffiliation</td><td class="col1" style="width: 124.375px;">faculty, staff y student</td><td class="col2" style="width: 432.703px;">Especifica la vinculación principal del usuario con la Universidad.</td><td class="col3" style="width: 156.625px;">faculty</td></tr><tr class="row3"><td class="col0" style="width: 96.2969px;">employeeNumber</td><td class="col1" style="width: 124.375px;">-</td><td class="col2" style="width: 432.703px;">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*.</td><td class="col3" style="width: 156.625px;">a3b123c12</td></tr></tbody></table>

</div></div>### Identificadores de enlace

<div id="bkmrk-nombre-del-atributo--1"><div><table class="inline table table-striped table-condensed"><thead><tr class="row0"><th class="col0">Nombre del atributo</th><th class="col1">Posibles valores</th><th class="col2">Descripción</th><th class="col3">Ejemplo</th></tr></thead><tbody><tr class="row1"><td class="col0">schacpersonaluniqueid</td><td class="col1">-</td><td class="col2 leftalign">Especifica un “identificador legal único”.</td><td class="col3 leftalign">urn:mace:terena.org:schac:personalUniqueID:es:DNI:31241312L</td></tr><tr class="row2"><td class="col0">schacPersonalUniqueCode</td><td class="col1">-</td><td class="col2">Especifica un valor único para la entrada a la que se asocia.</td><td class="col3">urn:mace:terena.org:schac:personalUniqueCode:es:uma:estudiante:a3b123c12</td></tr><tr class="row3"><td class="col0">uid</td><td class="col1">-</td><td class="col2">Según el RFC1274 este atributo especifica un nombre de usuario de una máquina.</td><td class="col3">leandro.perez.alu</td></tr><tr class="row4"><td class="col0">eduPersonPrincipalName</td><td class="col1">-</td><td class="col2">Un valor único en el formato formuser@domain, donde el dominio representa el dominio de seguridad del usuario y user es el ui.</td><td class="col3">leandro.perez.alu@uhu.es</td></tr></tbody></table>

</div></div>### Autorización/derechos de acceso

<div id="bkmrk-nombre-del-atributo--2"><div><table class="inline table table-striped table-condensed"><thead><tr class="row0"><th class="col0">Nombre del atributo</th><th class="col1">Posibles valores</th><th class="col2">Descripción</th><th class="col3">Ejemplo</th></tr></thead><tbody><tr class="row1"><td class="col0">schacuserstatus</td><td class="col1">-</td><td class="col2">Usado para almacenar el conjunto de estados de una persona como usuario de los servicios de la uhu.</td><td class="col3">urn:mace:terena.org:schac:userStatus:es:uma.es:getMail:active</td></tr><tr class="row2"><td class="col0">irisUserEntitlement</td><td class="col1">-</td><td class="col2">Usado para almacenar el conjunto de derechos de acceso a recursos.</td><td class="col3">irisUserEntitlement: urn:mace:rediris.es:uhu.es:entitlement:numExp:307000010:N:I</td></tr></tbody></table>

</div></div>## Descripción y uso del servicio

<div id="bkmrk-"></div>### Requisitos técnicos

Para integrar una aplicación en el SSO su aplicación debe cumplir los siguientes requisitos técnicos:

<div id="bkmrk-la-direcci%C3%B3n-ip-del-"><div>1. <div>La dirección IP del servidor en que se aloje la aplicación debe ser estática.</div>
2. <div>Ser accedida mediante el protocolo https, para que las comunicaciones vayan cifradas.</div>

</div></div>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](https://idp3.uhu.es/idp/saml2/idp/metadata.php "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](https://janus.uhu.es/idp/module.php/janus/metadataexport.php?id=prod_idp "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.

<div id="bkmrk-php%3A%C2%A0simplesamlphp%C2%A0o">- <div>PHP: **[simpleSAMLphp](https://ayudame.uhu.es/info/books/manuales-sso/page/integracion-mediante-saml-2-usando-simplesamlphp "Integración mediante SAML 2 usando simpleSAMLphp")** o [OneLogin](https://www.onelogin.com/ "https://www.onelogin.com/")</div>
- <div>Java: **[OpenSAML](https://wiki.shibboleth.net/confluence/display/OpenSAML/Home "https://wiki.shibboleth.net/confluence/display/OpenSAML/Home")**</div>

</div>