Skip to main content

Adicionar um adaptador MAC de entrada

MAC (código de autenticação de mensagem) é um método utilizado para determinar a integridade de uma requisição Acesso único. Você deve desenvolver a lógica no seu sistema fonte para gerar um MAC, que o serviço UAS pode validar.

Configure as Configurações do UAS

Na tela de Configurações do UAS, clique em Adicionar Adaptador de Autenticação. Preencha os campos da seguinte forma:

Campo

Descrição

Cognome

Este é um nome único para o adaptador e é usado em URLs. O pseudônimo será armazenado como todas as letras minúsculas e não deve conter caracteres URL especiais.

Habilitado

Esse interruptor determina se o adaptador está disponível para uso.

Tipo de Autorização

MAC

Use Adaptador de Saída

Clique no adaptador de autenticação que será usado para autenticação de saída para o serviço externo. Se você não selecionar um, o adaptador de saída padrão será usado.

Depuração Habilitada

Esse interruptor determina se as instruções de depuração são gravadas nos registros para fins de solução de problemas.

Usuários Restritos

Insira uma lista separada por vírgulas de nomes de usuário que não podem usar esse adaptador.

Algoritmo

  • MD5: Clique em usar o algoritmo legado MD5

  • SHA256: Clique em para usar o algoritmo SHA-256 mais seguro

Parâmetros

Esse é o mapeamento entre os nomes dos seus parâmetros e os valores padrão. Por exemplo, a string de consulta que você fornece tem um valor de parâmetro chamado "time" e isso deve mapear para o valor esperado de "Timestamp".

Auth

O parâmetro que contém a assinatura de autenticação MAC. Valor recomendado: autenticação

Timestamp GMT

O parâmetro que contém o carimbo de tempo. Valor recomendado: carimbo de data e hora

Código do usuário

O parâmetro que contém o código de usuário (o nome de usuário do usuário ou batch_uid/código externo; isso depende de como você configura o provedor de autenticação SAML noBlackboard). Valor recomendado: userId

Código do curso

O parâmetro que contém o código do curso. Isso pode ser o identificador interno do curso no Blackboard(formato _9999_1) ou o código batch_uid/externo. O sistema trata qualquer coisa que pareça um identificador interno de curso como tal e qualquer outra coisa como um código externo. Valor recomendado: courseId

Encaminhar

O parâmetro que contém a URL a ser encaminhada no Learn. Isso pode ou não conter o nome do host do Blackboard. Valor recomendado: adiantar

Delta de carimbo de tempo

A diferença permitida (em milissegundos) entre os carimbos de tempo entre o momento em que a solicitação foi gerada e a sua recepção pelo serviço Adaptador de Autenticação. Valor recomendado: 10.000 - 60.000

MAC Params

Quaisquer parâmetros adicionais listados aqui serão incluídos no cálculo do MAC (código do usuário e carimbo de tempo sempre estão incluídos).

Segredo

A chave compartilhada que será usada para calcular o MAC.

  • O segredo não pode exceder 255 caracteres.

  • O segredo não pode conter tabulações, caracteres de controle ou caracteres de fim de linha.

  • Segredos compartilhados são sensíveis a maiúsculas e minúsculas.

  • Recomendamos que você mudo seu segredo compartilhado em intervalos regulares.

  • Torne seus segredos compartilhados difíceis de adivinhar, tornando-os longos e incluindo uma combinação de números e caracteres maiúsculos e minúsculos.

Em sistemas remotos, coloque o segredo compartilhado em diretórios seguros.

Uma vez gravado, o valor será mascarado e você não poderá acessá-lo, mas pode alterá-lo.

Texto de Ajuda da Página de Erro

Insira o texto que será exibido na página de erro exibida quando houver algum problema com autenticação ou provisionamento.

Desabilite o Monitoramento Nonce

Ative essa opção para fins de solução de problemas para que você possa reutilizar solicitações de autenticação. Por questões de segurança, recomendamos que você mantenha esse botão desligado para que o monitoramento não seja habilitado.

Habilitar o Provisionamento do Usuário

Ative essa opção para permitir que os usuários sejam criados automaticamente a partir das informações fornecidas na solicitação MAC.

Habilitar o Provisionamento de Matrícula

Ative essa opção para permitir que as matrículas sejam criadas automaticamente caso a matrícula não exista e um código seja fornecido.

Permitir que a Disponibilidade de Matrícula Seja Alterada

Habilite essa opção para permitir que o sistema habilite matrículas já existentes e deshabilitadas.

Clique em Salvar para salvar sua configuração.

A URL do adaptador configurado é https://{region}.extensions.blackboard.com/api/v2/authadapters/sites/{siteId}/auth/{alias}.

Gerando MACs no Sistema Confiável

Para autenticar corretamente os usuários, o sistema confiável deve ser capaz de gerar um MAC (código de autenticação de mensagem) válido para enviar junto com a solicitação Acesso único. Esse MAC é usado para determinar a integridade de uma requisição Acesso único. Para gerar um MAC seguro:

  1. Ordene os parâmetros (Timestamp, código do Usuário, quaisquer parâmetros adicionais definidos em Parâmetros de Solicitação usados para configuração MAC) em ordem alfabética pelo nome do parâmetro.

  2. Concatene os valores dos parâmetros pelos nomes ordenados dos parâmetros em uma única string.

  3. Anexe o Segredo Compartilhado à string obtida a partir do Passo 2.

  4. Criptografe a string em uma string de 16 bytes usando o algoritmo MD5.

  5. Converta a string de 16 bytes em uma string alfanumérica (hexadecimal) de 32 bytes para torná-la amigável para URL.

Exemplo

Este exemplo usa valores padrão para cadeias de parâmetros de requisição e um valor de Segredo Compartilhado chamado "blackboard", e "código" também é definido como um parâmetro adicional nos Parâmetros de Solicitação usados para Mac.

  1. Parâmetros ordenados (valores de parâmetros entre parênteses): código (TC-101), carimbo de data (1268769454017), código do Usuário (test01)

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

  3. Segredo compartilhado anexado: TC-1011268769454017test01blackboard

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

  5. Corda convertida: 8c4956a842e183659ea96478ba7671e2

Exemplos de Script para Mac

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

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

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