Skip to main content

Añadir un adaptador MAC entrante

MAC (código de autenticación de mensajes) es un método que se utiliza para determinar la integridad de una solicitud SSO or inicio de sesión único. Desarrolle la lógica en su sistema fuente para generar una MAC, que el servicio UAS pueda validar.

Configurar la configuración del UAS

Desde la pantalla de Configuración de UAS, seleccione Añadir adaptador de autenticación. Rellena los campos de la siguiente manera:

Campo

Descripción

Alias

Este es un nombre único para el adaptador y se utiliza en URLs. El alias se almacenará como letras minúsculas y no debe contener caracteres URL especiales.

Activado

Este interruptor determina si el adaptador está disponible para su uso.

Tipo de autenticación

MAC

Utilice adaptador de salida

Seleccione el adaptador de autenticación que se utilizará para la autenticación saliente al servicio externo. Si no selecciona uno, se utilizará el adaptador saliente por defecto.

Depuración habilitada

Este interruptor determina si las sentencias de depuración se escriben en los registros para fines de resolución de problemas.

Usuarios restringidos

Introduzca una lista separada por comas de nombres de usuario que no pueden usar este adaptador.

Algoritmo

  • Seleccione usar el algoritmo MD5 heredado.

  • Seleccione el uso del algoritmo SHA-256, que es más seguro.

Parámetros

Este es el mapeo entre los nombres de los parámetros y los valores estándar. Por ejemplo, la cadena de consulta que proporcione tiene un valor de parámetro llamado "tiempo" y esto debería corresponder al valor esperado de "Timestamp".

Auth

El parámetro que contiene la firma de autenticación MAC. Valor recomendado: autenticación

Marca temporal GMT

El parámetro que contiene la marca de tiempo. Valor recomendado: marca temporal

ID de usuario

El parámetro que contiene el ID de usuario (el nombre de usuario del usuario o lote_uid/ID externo; esto depende de cómo configure el proveedor de autenticación SAML en Blackboard). Valor recomendado: userId

ID del curso

El parámetro que contiene el ID del curso. Esto puede ser el Blackboard identificador interno del curso (formato _9999_1) o el ID lote_uid/externo. El sistema tratará todo lo que parezca un identificador interno de curso como tal y cualquier otra cosa como un ID externo. Valor recomendado: courseId

Adelante

El parámetro que contiene la URL para reenviar dentro de Learn. Esto puede o no contener el nombre de Blackboard anfitrión. Valor recomendado: hacia adelante

Delta con marca temporal

La diferencia permitida (en milisegundos) entre las marcas de tiempo desde que se generó la solicitud y cuando fue recibida por el servicio de Adaptador de Autenticación. Valor recomendado: 10.000 - 60.000

Parámetros MAC

Cualquier parámetro adicional que se enumere aquí se incluirá en el cálculo MAC (el ID de usuario y la marca de tiempo siempre se incluyen).

Secreto

La clave compartida que se utilizará para calcular el MAC.

  • El secreto no puede superar los 255 caracteres.

  • El secreto no puede contener tabulaciones, caracteres de control ni caracteres de fin de línea.

  • Los secretos compartidos son sensibles a mayúsculas y minúsculas.

  • Recomendamos que cambie su secreto compartido a intervalos regulares.

  • Haga que sus secretos compartidos sean difíciles de adivinar haciéndolos largos e incluyendo una combinación de números y caracteres mayúsculos y minúsculos.

En sistemas remotos, coloca el secreto compartido en directorios seguros.

Una vez guardado, el valor se ocultará y no podrá acceder a él, pero puede cambiarlo.

Texto de ayuda de la página de error

Introduce el texto que aparecerá en la página de error que se muestra cuando haya un problema con la autenticación o el aprovisionamiento.

Deshabilitar el seguimiento Nonce

Active este interruptor para fines de resolución de problemas y así poder reutilizar las solicitudes de autenticación. Por razones de seguridad, recomendamos mantener este interruptor desactivado para que el seguimiento no esté activo.

Habilitar la provisión de usuario

Activa este interruptor para permitir que los usuarios se creen automáticamente a partir de la información proporcionada en la solicitud MAC.

Habilitar la provisión de inscripción

Activa este interruptor para permitir que las inscripciones se creen automáticamente si la inscripción no existe y se proporciona un CourseID.

Permitir que cambie la disponibilidad de inscripción

Activa este interruptor para permitir que el sistema habilite las inscripciones que ya existen y están deshabilitadas.

Seleccione Guardar para guardar su configuración.

La URL del adaptador configurado es https://{region}.extensions.blackboard.com/api/v2/authadapters/sites/{siteId}/auth/{alias}.

Generación de MACs en el sistema de confianza

Para autenticar correctamente a los usuarios, el sistema de confianza debe ser capaz de generar un MAC (código de autenticación de mensaje) válido para enviar junto con la solicitud SSO or inicio de sesión único. Este MAC se utiliza para determinar la integridad de una solicitud SSO or inicio de sesión único. Para generar un MAC seguro:

  1. Ordene los parámetros (marca de tiempo, ID de usuario, cualquier parámetro adicional definido en Parámetros de Solicitud usados para la configuración MAC) alfabéticamente por nombre de parámetro.

  2. Concatena los valores de los parámetros mediante los nombres de los parámetros ordenados en una sola cadena.

  3. Añade el Secreto Compartido a la cadena obtenida del Paso 2.

  4. Cifra la cadena en una cadena de 16 bytes usando el algoritmo MD5.

  5. Convierte la cadena de 16 bytes en una cadena alfanumérica (hexadecimal) de 32 bytes para que sea compatible con URLs.

Ejemplo

Este ejemplo utiliza valores predeterminados para cadenas de parámetros de solicitud y un valor de Secreto Compartido como "blackboard", y "courseId" también se define como un parámetro adicional en los Parámetros de Solicitud utilizados para Mac.

  1. Parámetros ordenados (valores de parámetros entre paréntesis): courseId (TC-101), marca de tiempo (1268769454017), userId (examen01)

  2. Valores de parámetros concatenados: TC-1011268769454017test01

  3. Secreto compartido añadido: TC-1011268769454017test01blackboard

  4. Cadena cifrada: ŒIV ̈Báƒež©dxºvqâ

  5. Cadena convertida: 8c4956a842e183659ea96478ba7671e2

Ejemplos de scripts para Mac

Ejemplo de Java

Algoritmo seguro:

    /**
     * Calculates a secure MAC (message authentication code) from an array of strings and shared secret.
     * @param values – Parameters must first be sorted alphabetically by parameter name, then the                values of these sorted parameters passed to calculateSecureMac
     * @param secret - the shared secret
     * @return The calculated MAC
     */

    private String calculateSecureMAC (final String[]
      values, final String secret) throws
      NoSuchAlgorithmException
    {

      // concatenate param values
      final int size = values.length;
      String paramString = "";
      for(int i=0; i<size; i++)
      {

        paramString += values[i];
      }

      // get md5 hash from ascii value and secret
      final MessageDigest md = MessageDigest.getInstance("MD5");
      final byte[] hashBytes = md.digest((paramString + secret).getBytes());
      md.reset();

      // convert to hex
      String mac = "";
      String hexByte;
      for (int k=0; k<hashBytes.length; k++)
      {

        hexByte = Integer.toHexString(hashBytes[k] < 0 ? hashBytes[k] + 256 : hashBytes[k]);
        mac += (hexByte.length()==1) ? "0" + hexByte : hexByte;
      }

      return mac;
    }

Ejemplo de PHP

Algoritmo seguro:

/* Calculates a MAC (message authentication code) from an array of strings and a secret.
   Sort request parameters alphabetically by parameter name first, then pass values of sorted
   parameters and shared secret to calculateSecureMac */

function calculateSecureMac($params, $secret)
{

  // concatenate param values
  $data = implode('', $params);

  // get md5 of concatenated param values and secret
  $mac = md5($data . $secret);
  return $mac;
}

Ejemplo Perl

Algoritmo seguro:

use Digest::MD5;

# Calculates a MAC (message authentication code) from an array of strings and a secret. Sort request      parameters alphabetically by parameter name first, then pass values of sorted parameters and shared      secret to calculateSecureMac

sub calculateSecureMac

{
  my @args = @_;
  $secret = pop(@args);

  # concatenate param values
  $data = join("", @args);

  # get md5 of concatenated param values and secret
  $ctx = Digest::MD5->new;
  $ctx->add($data . $secret);
  $mac = $ctx->hexdigest;
  return $mac;
}