Skip to main content

Ajouter un adaptateur MAC entrant

Le MAC (code d'authentification des messages) est une méthode utilisée pour déterminer l'intégrité d'une demande authentification unique. Vous devez développer la logique sur votre système source pour générer un MAC, que le service UAS peut valider.

Configurer les paramètres de l'UAS

Dans l'écran des paramètres UAS, sélectionnez Ajouter un adaptateur d'authentification. Renseignez les champs comme suit :

Champ

Description

Alias

Il s'agit d'un nom unique pour l'adaptateur qui est utilisé dans les URL. L'alias sera stocké sous forme de lettres minuscules et ne doit pas contenir de caractères URL spéciaux.

Activé

Cette bascule détermine si l'adaptateur peut être utilisé.

Type d'authentification

MAC

Utiliser un adaptateur sortant

Sélectionnez l'adaptateur d'authentification qui sera utilisé pour l'authentification sortante auprès du service externe. Si vous n'en sélectionnez aucun, l'adaptateur sortant par défaut sera utilisé.

Débogage activé

Cette option détermine si les instructions de débogage sont écrites dans les journaux à des fins de dépannage.

Utilisateurs restreints

Entrez une liste de noms d'utilisateur séparés par des virgules qui ne peuvent pas utiliser cet adaptateur.

Algorithme

  • MD5 : sélectionnez cette option pour utiliser l'ancien algorithme MD5

  • SHA256 : sélectionnez cette option pour utiliser l'algorithme SHA-256 plus sécurisé

Paramètres

Il s'agit du mappage entre les noms de vos paramètres et les valeurs standard. Par exemple, la chaîne de requête que vous fournissez comporte une valeur de paramètre nommée « heure » qui doit correspondre à la valeur « Horodatage » attendue.

Authentification

Paramètre qui contient la signature d'authentification MAC. Valeur recommandée : auth

Horodatage GMT

Paramètre qui contient l'horodatage. Valeur recommandée : horodatage

ID utilisateur

Paramètre qui contient l'ID utilisateur (nom d'utilisateur ou batch_uid/ID externe de l'utilisateur ; cela dépend de la façon dont vous configurez le fournisseur d'authentification SAML dans Blackboard). Valeur recommandée : UserID

Code cours

Paramètre qui contient l'identifiant du cours. Il peut s'agir de l'identifiant Blackboard interne du cours (format _9999_1) ou de l'identifiant batch_uid/externe. Le système traitera tout ce qui ressemble à un identifiant de cours interne comme tel et tout le reste comme un identifiant externe. Valeur recommandée : CourseID

Vers l'avant

Paramètre contenant l'URL à transférer dans Learn. Il peut contenir ou non le nom d'hôte Blackboard. Valeur recommandée : forward

Horodatage Delta

Différence autorisée (en millisecondes) entre les horodatages entre le moment où la demande a été générée et celui où elle a été reçue par le service Authentication Adapter. Valeur recommandée : 10 000 à 60 000

Paramètres MAC

Tous les paramètres supplémentaires répertoriés ici seront inclus dans le calcul du MAC (l'ID utilisateur et l'horodatage sont toujours inclus).

Secret

La clé partagée qui sera utilisée pour calculer le MAC.

  • Le secret ne peut pas dépasser 255 caractères.

  • Le secret ne peut pas contenir de tabulations, de caractères de contrôle ou de caractères de fin de ligne.

  • Les secrets partagés font la distinction entre majuscules et minuscules.

  • Nous vous recommandons de modifier votre secret partagé à intervalles réguliers.

  • Rendez vos secrets communs difficiles à deviner en les rendant longs et en incluant une combinaison de chiffres et de lettres majuscules et minuscules.

Sur les systèmes distants, placez le secret partagé dans des répertoires sécurisés.

Une fois enregistrée, la valeur sera masquée et vous ne pourrez pas y accéder mais vous pouvez la modifier.

Texte d'aide de la page d'erreur

Entrez le texte qui apparaîtra sur la page d'erreur affichée en cas de problème d'authentification ou de provisionnement.

Désactiver le suivi Nonce

Activez cette option à des fins de résolution des problèmes afin de pouvoir réutiliser les demandes d'authentification. Pour des raisons de sécurité, nous vous recommandons de laisser cette option désactivée afin que le suivi des données soit activé.

Activer le provisionnement des utilisateurs

Activez cette option pour permettre la création automatique d'utilisateurs à partir des informations fournies dans la demande MAC.

Activer le provisionnement des effectifs

Activez cette option pour permettre la création automatique d'effectifs si l'effectif n'existe pas et si un CourseID est fourni.

Autoriser la modification de la disponibilité des effectifs

Activez cette option pour permettre au système d'activer les effectifs qui existent déjà et qui sont désactivés.

Sélectionnez Enregistrer pour enregistrer votre configuration.

L'URL de l'adaptateur configuré est https://{region}.prolongations.blackboard.com/interface de programmation d'application/v2/authadapters/sites/{siteId}/auth/{alias}.

Génération de MAC sur le système sécurisé

Pour authentifier correctement les utilisateurs, le système sécurisé doit être en mesure de générer un code MAC (code d'authentification des messages) valide à envoyer avec la demande d'authentification unique. Ce MAC est utilisé pour déterminer l'intégrité d'une demande d'authentification unique. Pour générer un MAC sécurisé :

  1. Triez les paramètres (horodatage, ID utilisateur, tous les paramètres supplémentaires définis dans Paramètres de demande utilisés pour le réglage MAC) par ordre alphabétique par nom de paramètre.

  2. Concaténez les valeurs des paramètres en fonction des noms de paramètres triés en une seule chaîne.

  3. Ajoutez le secret partagé à la chaîne obtenue à l'étape 2.

  4. Chiffrez la chaîne en une chaîne de 16 octets à l'aide de l'algorithme MD5.

  5. Convertissez la chaîne de 16 octets en une chaîne alphanumérique (hexadécimale) de 32 octets pour la rendre compatible avec les URL.

Exemple

Cet exemple utilise des valeurs par défaut pour les chaînes de paramètres de demande et une valeur de secret partagé de « blackboard », et « CourseID » est également défini comme paramètre supplémentaire dans les paramètres de demande utilisés pour Mac.

  1. Paramètres triés (valeurs des paramètres entre parenthèses) : CourseID ( TC-101 ), timestamp ( 1268769454017 ), UserID ( test01 )

  2. Valeurs de paramètres concaténées : TC-1011268769454017Test01

  3. Secret partagé ajouté : TC-1011268769454017Test01Blackboard

  4. Chaîne chiffrée : Œiv̈bá̈ež©DXºVQâ

  5. Chaîne convertie : 8c4956a842e183659ea96478ba7671e2

Exemples de scripts Mac

Exemple Java

Algorithme sécurisé :

    /**
     * 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;
    }

Exemple PHP

Algorithme sécurisé :

/* 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;
}

Exemple Perl

Algorithme sécurisé :

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;
}