Partager via


Effectuer un test d’API JavaScript

Take a Test est une application UWP basée sur un navigateur qui affiche des évaluations en ligne verrouillées pour les tests à enjeux élevés, ce qui permet aux enseignants de se concentrer sur le contenu d’évaluation plutôt que sur la façon de fournir un environnement de test sécurisé. Pour ce faire, il utilise une API JavaScript que toute application web peut utiliser. L’API Take-a-test prend en charge la norme de l’API de navigateur SBAC pour les tests principaux courants.

Pour plus d’informations sur l’application elle-même, consultez la référence technique De l’application Take a Test . Pour obtenir de l’aide sur la résolution des problèmes, consultez Résoudre les problèmes liés à Microsoft Take a Test avec l’observateur d’événements.

Documentation de référence

Les API Take a Test existent dans les espaces de noms suivants. Notez que toutes les API dépendent d’un objet global SecureBrowser .

Namespace Descriptif
espace de noms de sécurité Contient des API qui vous permettent de verrouiller l’appareil à des fins de test et d’appliquer un environnement de test.

Espace de noms de sécurité

L’espace de noms de sécurité vous permet de verrouiller l’appareil, de vérifier la liste des processus utilisateur et système, d’obtenir des adresses MAC et IP, et d’effacer les ressources web mises en cache.

Méthode Descriptif
verrouillage Verrouille l’appareil à des fins de test.
isEnvironmentSecure Détermine si le contexte de verrouillage est toujours appliqué à l’appareil.
getDeviceInfo Obtient des détails sur la plateforme sur laquelle l’application de test est en cours d’exécution.
examineProcessList Obtient la liste des processus utilisateur et système en cours d’exécution.
close Ferme le navigateur et déverrouille l’appareil.
getPermissiveMode Vérifie si le mode permissif est activé ou désactivé.
setPermissiveMode Bascule le mode permissif activé ou désactivé.
emptyClipBoard Efface le presse-papiers du système.
getMACAddress Obtient la liste des adresses MAC pour l’appareil.
getStartTime Obtient l’heure à laquelle l’application de test a été démarrée.
getCapability Interroge si une fonctionnalité est activée ou désactivée.
setCapability Active ou désactive la fonctionnalité spécifiée.
isRemoteSession Vérifie si la session actuelle est connectée à distance.
isVMSession Vérifie si la session active s’exécute dans une machine virtuelle.

Verrouillage

Verrouille l’appareil. Également utilisé pour déverrouiller l’appareil. L’application web de test appelle cet appel avant de permettre aux étudiants de commencer le test. L’implémenteur est tenu de prendre les mesures nécessaires pour sécuriser l’environnement de test. Les étapes prises pour sécuriser l’environnement sont spécifiques à l’appareil et, par exemple, incluent des aspects tels que la désactivation des captures d’écran, la désactivation de la conversation vocale en mode sécurisé, l’effacement du Presse-papiers système, l’entrée en mode plein écran, la désactivation des espaces dans les appareils OSX 10.7+, etc. L’application de test active le verrouillage avant le début d’une évaluation et désactive le verrouillage lorsque l’étudiant a terminé l’évaluation et est hors du test sécurisé.

Syntaxe
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Paramètres

  • enable - true pour exécuter l’application Take-a-Test au-dessus de l’écran de verrouillage et appliquer des stratégies décrites dans la référence technique de l’application Take-a-Test. false arrête d’exécuter Take-a-Test au-dessus de l’écran de verrouillage et le ferme, sauf si l’application n’est pas verrouillée ; dans ce cas, il n’y a aucun effet.
  • onSuccess - [facultatif] La fonction à appeler après que le verrouillage a été activé ou désactivé avec succès. Il doit être de la forme Function(Boolean currentlockdownstate).
  • onError - [facultatif] Fonction à appeler si l’opération de verrouillage a échoué. Il doit être de la forme Function(Boolean currentlockdownstate).

Exigences
Windows 10, version 1709 ou ultérieure


estEnvironnementSécurisé

Détermine si le contexte de verrouillage est toujours appliqué à l’appareil. L'application web de test appellera ceci avant de permettre aux étudiants de commencer le test et régulièrement pendant le test.

Syntaxe
void SecureBrowser.security.isEnvironmentSecure(Function callback);

Paramètres

  • callback - Fonction à appeler une fois cette fonction terminée. Il doit s’agir du formulaire Function(String state) dans lequel state se trouve une chaîne JSON contenant deux champs. Le premier est le secure champ, qui s’affiche true uniquement si tous les verrous nécessaires ont été activés (ou les fonctionnalités désactivées) pour activer un environnement de test sécurisé, et aucun de ces éléments n’a été compromis depuis que l’application a entré le mode de verrouillage. L’autre champ inclut messageKeyd’autres détails ou informations spécifiques au fournisseur. L’intention ici est de permettre aux fournisseurs de placer des informations supplémentaires qui augmentent l’indicateur booléen secure :
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

Exigences
Windows 10, version 1709 ou ultérieure


getDeviceInfo

Obtient des détails sur la plateforme sur laquelle l’application de test est en cours d’exécution. Cela permet de compléter toute information qui est discernable de l’agent utilisateur.

Syntaxe
void SecureBrowser.security.getDeviceInfo(Function callback);

Paramètres

  • callback - Fonction à appeler une fois cette fonction terminée. Il doit s’agir du formulaire Function(String infoObj) dans lequel infoObj se trouve une chaîne JSON contenant plusieurs champs. Les champs suivants doivent être pris en charge :
    • os représente le type de système d’exploitation (par exemple : Windows, macOS, Linux, iOS, Android, etc.)
    • name représente le nom de la version du système d’exploitation, le cas échéant (par exemple : Sierra, Ubuntu).
    • version représente la version du système d’exploitation (par exemple : 10.1, 10 Pro, etc.)
    • brand représente la personnalisation du navigateur sécurisé (par exemple : OAKS, CA, SmarterApp, etc.)
    • model représente le modèle d’appareil pour les appareils mobiles uniquement ; Null/non utilisé pour les navigateurs de bureau.

Exigences
Windows 10, version 1709 ou ultérieure


examineProcessList

Obtient la liste de tous les processus en cours d’exécution sur l’ordinateur client appartenant à l’utilisateur. L’application de test appelle cette option pour examiner la liste et la comparer à une liste de processus considérés comme non répertoriés pendant le cycle de test. Cet appel doit être appelé à la fois au début d’une évaluation et régulièrement pendant que l’étudiant prend l’évaluation. Si un processus listé par refus est détecté, l’évaluation doit être arrêtée pour préserver l’intégrité des tests.

Syntaxe
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Paramètres

  • denylistedProcessList - Liste des processus que l’application de test a refusé.
    callback - Fonction à appeler une fois que les processus actifs ont été trouvés. Il doit être au format : Function(String foundDenylistedProcesses)foundDenylistedProcesses se trouve sous la forme : "['process1.exe','process2.exe','processEtc.exe']". Il sera vide si aucun processus figurant sur la liste de refus n’a été trouvé. S’il s’agit de null, cela indique qu’une erreur s’est produite dans l’appel de fonction d’origine.

Remarques La liste n’inclut pas les processus système.

Exigences
Windows 10, version 1709 ou ultérieure


close

Ferme le navigateur et déverrouille l’appareil. L’application de test doit appeler ceci lorsque l’utilisateur choisit de quitter le navigateur.

Syntaxe
void SecureBrowser.security.close(restart);

Paramètres

  • restart - Ce paramètre est ignoré, mais doit être fourni.

Remarques Dans Windows 10, version 1607, l’appareil doit être verrouillé initialement. Dans les versions ultérieures, cette méthode ferme le navigateur, que l’appareil soit verrouillé ou non.

Exigences
Windows 10, version 1709 ou ultérieure


getPermissiveMode

L’application web de test doit l’appeler pour déterminer si le mode permissif est activé ou désactivé. En mode permissif, un navigateur est censé assouplir certains de ses mécanismes de sécurité stricts pour permettre à la technologie d'assistance de fonctionner avec le navigateur sécurisé. Par exemple, les navigateurs qui empêchent agressivement d’autres interfaces utilisateur d’application de se présenter au-dessus d’eux peuvent vouloir se détendre quand ils sont en mode permissif.

Syntaxe
void SecureBrowser.security.getPermissiveMode(Function callback)

Paramètres

  • callback - Fonction à appeler une fois cet appel terminé. Il doit être au format : Function(Boolean permissiveMode)permissiveMode indique si le navigateur est actuellement en mode permissif. S’il n’est pas défini ou null, une erreur s’est produite dans l’opération d’obtention.

Exigences
Windows 10, version 1709 ou ultérieure


setPermissiveMode

L’application web de test doit appeler ceci pour activer ou désactiver le mode permissif. En mode permissif, un navigateur est censé assouplir certains de ses mécanismes de sécurité stricts pour permettre à la technologie d’assistance de fonctionner avec le navigateur sécurisé. Par exemple, les navigateurs qui empêchent agressivement d’autres interfaces utilisateur d’application de se présenter au-dessus d’eux peuvent vouloir se détendre quand ils sont en mode permissif.

Syntaxe
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Paramètres

  • enable - Valeur booléenne indiquant l’état du mode permissif prévu.
  • callback - Fonction à appeler une fois cet appel terminé. Il doit être au format : Function(Boolean permissiveMode)permissiveMode indique si le navigateur est actuellement en mode permissif. S’il n’est pas défini ou null, une erreur s’est produite dans l’opération de définition.

Exigences
Windows 10, version 1709 ou ultérieure


emptyClipBoard

Efface le presse-papiers système. L’application de test devrait l’appeler pour effacer les données qui peuvent être stockées dans le Presse-papiers système. La fonction lockDown effectue également cette opération.

Syntaxe
void SecureBrowser.security.emptyClipBoard();

Exigences
Windows 10, version 1709 ou ultérieure


getMACAddress

Obtient la liste des adresses MAC pour l’appareil. L’application de test doit appeler ceci pour faciliter les diagnostics.

Syntaxe
void SecureBrowser.security.getMACAddress(Function callback);

Paramètres

  • callback - Fonction à appeler une fois cet appel terminé. Il doit être au format : Function(String addressArray)addressArray se trouve sous la forme : "['00:11:22:33:44:55','etc']".

Remarques
Il est difficile de s’appuyer sur des adresses IP sources pour faire la distinction entre les ordinateurs des utilisateurs finaux au sein des serveurs de test, car les pare-feu/nats/proxys sont couramment utilisés dans les écoles. Les adresses MAC permettent à l’application de distinguer les ordinateurs clients finaux derrière un pare-feu commun à des fins de diagnostic.

Exigences
Windows 10, version 1709 ou ultérieure


obtenirHeureDeDébut

Obtient l’heure à laquelle l’application de test a été démarrée.

Syntaxe
DateTime SecureBrowser.security.getStartTime();

Rendre
Objet DateTime indiquant l’heure de démarrage de l’application de test.

Exigences
Windows 10, version 1709 ou ultérieure


getCapability

Interroge si une fonctionnalité est activée ou désactivée.

Syntaxe
Object SecureBrowser.security.getCapability(String feature)

Paramètres

feature - Chaîne permettant de déterminer la fonctionnalité à interroger. Les chaînes de capacité valides sont « screenMonitoring », « printing » et « textSuggestions » (sans égard à la casse).

Valeur de retour
Cette fonction retourne soit un objet JavaScript, soit un littéral sous la forme : {<feature>:true|false}. true si la fonctionnalité interrogée est activée, false si la fonctionnalité n’est pas activée ou si la chaîne de capacité n’est pas valide.

Exigences Windows 10, version 1703 ou ultérieure


setCapability

Active ou désactive une fonctionnalité spécifique sur le navigateur.

Syntaxe
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

Paramètres

  • feature - Chaîne permettant de déterminer la fonctionnalité à définir. Les chaînes de capacité valides sont "screenMonitoring", "printing" et "textSuggestions" (sans distinction de casse).
  • value - Paramètre prévu pour la fonctionnalité. Il doit être "true" ou "false".
  • onSuccess - [facultatif] Fonction à appeler une fois l’opération définie terminée. Il doit s’agir du formulaire Function(String jsonValue)jsonValue se trouve sous la forme : {<feature>:true|false|undefined}.
  • onError - [facultatif] Fonction à appeler si l’opération de définition a échoué. Il doit s’agir du formulaire Function(String jsonValue)jsonValue se trouve sous la forme : {<feature>:true|false|undefined}.

Remarques
Si la fonctionnalité ciblée est inconnue du navigateur, cette fonction passe une valeur de undefined à la fonction de rappel.

Exigences Windows 10, version 1703 ou ultérieure


isRemoteSession

Vérifie si la session actuelle est connectée à distance.

Syntaxe
Boolean SecureBrowser.security.isRemoteSession();

Valeur renvoyée
true si la session active est distante, sinon false.

Exigences
Windows 10, version 1709 ou ultérieure


isVMSession

Vérifie si la session active s’exécute dans une machine virtuelle.

Syntaxe
Boolean SecureBrowser.security.isVMSession();

Valeur renvoyée
true si la session active est en cours d’exécution dans une machine virtuelle, sinon false.

Remarques
Cette vérification de l’API ne peut détecter que les sessions de machine virtuelle en cours d’exécution dans certains hyperviseurs qui implémentent les API appropriées

Exigences
Windows 10, version 1709 ou ultérieure