Uso del schacPersonalUniqueCode dentro del SIR


Definición general

El schacPersonalUniqueCode (en adelante sPUC) es un atributo definido dentro del Schema for Academia (SCHAC), un esquema desarrollado y promovido en el ámbito de TERENA con la intención de facilitar el intercambio de información entre entidades académicas europeas e internacionales.

Dentro de esta definición de atributos, el sPUC representa un código único asociado a un sujeto, que no tiene que corresponderse necesariamente con ningún otro identificador fuera del ámbito de los directorios que usen este esquema. El atributo se define como un URN con el formato urn:schac:personalUniqueCode:<codigo-pais>:<iNSS>, donde el código de país debe ser un código de dos letras válido según el estándar ISO 3166, o bien el literal "int", y asignado por el registro de URN de TERENA, y el iNSS es una cadena de caracteres específica de un espacio de nombres, definida en el RFC 2141, pero sin distinción entre mayúsculas y minúsculas, y perteneciente a un vocabulario controlado nacionalmente, publicado a través del mencionado registro de URN de TERENA.

Definición específica

Dentro del ámbito específico del Servicio de Identidad de RedIRIS, sPUC se utiliza no sólo para identificar unívocamente a los usuarios de la federación, de forma opaca (es decir, sin utilizar ningún atributo susceptible de ser considerado como de carácter personal) pero a la vez verificable buscando una correspondencia con otro identificador único y descriptivo de los usuarios, como es en este caso la dirección de correo electrónico. En ese sentido, un sPUC dentro del SIR debe tener el formato urn:schac:personalUniqueCode:es:rediris:sir:mbid:{<algoritmo>}<hash>, donde:

  • El identificador se corresponde con un identificador gestionado por RedIRIS y válido para su uso dentro de su Servicio de Identidad.
  • Se trata de un identificador basado en el correo electrónico del usuario (mbid, Mail-based ID).
  • El algoritmo es un algoritmo de cálculo de resúmenes únicos de un solo sentido, como pueden ser md5 o sha1. El uso de otro tipo de algoritmos se encuentra actualmente en estudio.
  • El hash es el resultado de aplicar el algoritmo anteriormente indicado sobre la dirección de correo electrónico del usuario, codificado en formato hexadecimal. Funciones como md5() en PHP o md5_hex() en Perl son adecuadas para el cálculo de este campo.

Cálculo y canonicalización

Todos los proveedores de identidad dentro del SIR deben presentar tantos valores en el atributo sPUC como direcciones institucionales de correo electrónico tengan sus usuarios, y deben seguir el formato indicado previamente para su correcta verificación automatizada en base a dichas direcciones.

A fin de normalizar no sólo el tratamiento sino también la verificación del atributo, es necesario seguir las siguientes normas de canonicalización de las direcciones de correo electrónico sujetas al mismo:

  • deben ser válidas conforme a la sintaxis especificada en la sección 3.4.1 del RFC 5322.
  • deben evitarse espacios en blanco tanto al principio como al final de la dirección.
  • deben representarse integramente en minúsculas.

Nótese que una dirección de correo vacía (caso de aquellos usuarios que no dispongan de una cuenta de correo electrónico institucional) no es una dirección válida para el cálculo del atributo sPUC, no sólo porque no cumple la normativa anterior, sino porque da lugar a un mismo valor del atributo para usuarios distintos, rompiendo así una de las principales características del atributo: unicidad en la federación. En el caso de este supuesto particular, se recomienda:

  • No calcular nunca el sPUC en base a una cadena vacía.
  • No calcular nunca el sPUC en base a una dirección de correo electrónico externa.
  • Calcular el valor del atributo en base a una dirección de correo electrónico válida sintácticamente, compuesta según los siguientes criterios:
    • Utilizar un identificador de usuario único y persistente dentro de la institución.
    • Utilizar un dominio de la institución, exista o no.

Dado el uso potencial del sPUC por parte de los proveedores de servicio de la federación para autorizar a los usuarios mediante invitaciones enviadas por correo electrónico (y verificadas gracias a este atributo), se recomienda crear, para aquellos usuarios que no dispongan de una dirección de correo institucional, un alias de correo en base al cual se calcule el valor del sPUC.