API JavaScript Examen

Examen est une application UWP basée sur un navigateur qui affiche des évaluations en ligne verrouillées pour les tests à forts enjeux, 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 Examen prend en charge la norme de l’API de navigateur SBAC pour les tests à forts enjeux courants.

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

Documentation de référence

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

Espace de noms Description
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 Description
lockDown 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 Active ou désactive le mode permissif.
emptyClipBoard Efface le Presse-papiers 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 Demande 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 active est connectée à distance.
isVMSession Vérifie si la session active s’exécute dans une machine virtuelle.

lockDown

Verrouille l’appareil. Également utilisé pour déverrouiller l’appareil. L’application web de test invoque cet appel avant de permettre aux étudiants de commencer le test. Le responsable de l’implémentation est tenu de prendre les mesures nécessaires pour sécuriser l’environnement de test. Les mesures 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é, le nettoyage du Presse-papiers système, l’entrée en mode plein écran, la désactivation de Spaces sur 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 Examen au-dessus de l’écran de verrouillage et appliquer les stratégies décrites dans ce document. false arrête l’exécution de l’application Examen au-dessus de l’écran de verrouillage et la ferme, sauf si l’application n’est pas verrouillée, auquel cas il est sans effet.
  • onSuccess : [facultatif] la fonction à appeler une fois le verrouillage activé ou désactivé. Elle doit être au format Function(Boolean currentlockdownstate).
  • onError : [facultatif] la fonction à appeler si l’opération de verrouillage a échoué. Elle doit être au format Function(Boolean currentlockdownstate).

Exigences
Windows 10, version 1709 ou ultérieure


isEnvironmentSecure

Détermine si le contexte de verrouillage est toujours appliqué à l’appareil. L’application web de test appelle cette fonction avant d’autoriser les étudiants à commencer le test et périodiquement lorsqu’ils sont en cours de test.

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

Paramètres

  • callback : la fonction à appeler une fois cette fonction terminée. Elle doit être au format Function(String state)state est une chaîne JSON contenant deux champs. Le premier est le champ secure, qui 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 qu’aucun de ces éléments n’a été compromis depuis que l’application est entrée dans le mode de verrouillage. L’autre champ, messageKey, inclut d’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 secure booléen :
{
    '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 les informations qui ont été discernées à partir de l’agent utilisateur.

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

Paramètres

  • callback : la fonction à appeler une fois cette fonction terminée. Elle doit être au format Function(String infoObj)infoObj est 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 fonction pour examiner la liste et la comparer à une liste de processus considérés comme exclus pendant le cycle de test. Cette fonction doit être appelée au début d’une évaluation et régulièrement pendant que l’étudiant passe le test. Si un processus exclus 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 : la liste des processus que l’application de test a exclus.
    callback : la fonction à appeler une fois que les processus actifs ont été trouvés. Elle doit être au format Function(String foundDenylistedProcesses)foundDenylistedProcesses est au format "['process1.exe','process2.exe','processEtc.exe']". Elle sera vide si aucun processus exclus n’a été trouvé. Si elle est 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 cette fonction 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 appeler cette fonction pour déterminer si le mode permissif est activé ou désactivé. En mode permissif, un navigateur est censé assouplir certains de ses crochets de sécurité stricts pour permettre à la technologie d’assistance d’utiliser 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 assouplir cette règle lorsqu'ils sont en mode permissif.

Syntaxe
void SecureBrowser.security.getPermissiveMode(Function callback)

Paramètres

  • callback : la fonction à appeler une fois cet appel terminé. Elle doit être au format Function(Boolean permissiveMode)permissiveMode indique si le navigateur est actuellement en mode permissif. Si elle n’est pas définie 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 cette fonction pour activer ou désactiver le mode permissif. En mode permissif, un navigateur est censé assouplir certains de ses crochets de sécurité stricts pour permettre à la technologie d’assistance d’utiliser 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 assouplir cette règle lorsqu'ils sont en mode permissif.

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

Paramètres

  • enable : la valeur booléenne indiquant l’état du mode permissif prévu.
  • callback : la fonction à appeler une fois cet appel terminé. Elle doit être au format Function(Boolean permissiveMode)permissiveMode indique si le navigateur est actuellement en mode permissif. Si elle n’est pas définie 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 doit appeler cette fonction pour forcer l’effacement des 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 cette fonction pour faciliter les diagnostics.

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

Paramètres

  • callback : la fonction à appeler une fois cet appel terminé. Elle doit être au format Function(String addressArray)addressArray est au format "['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/NAT/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


getStartTime

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

Syntaxe
DateTime SecureBrowser.security.getStartTime();

Retour
Un objet DateTime indiquant l’heure de démarrage de l’application de test.

Exigences
Windows 10, version 1709 ou ultérieure


getCapability

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

Syntaxe
Object SecureBrowser.security.getCapability(String feature)

Paramètres
feature : la chaîne permettant de déterminer la fonctionnalité à interroger. Les chaînes de fonctionnalité valides sont « screenMonitoring », « printing » et « textSuggestions » (sans respect de la casse).

Valeur de retour
Cette fonction retourne un objet JavaScript ou un littéral au format {<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 fonctionnalité n’est pas valide.

Configuration requise 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 : la chaîne permettant de déterminer la fonctionnalité à définir. Les chaînes de fonctionnalité valides sont "screenMonitoring", "printing" et "textSuggestions" (sans respect de la casse).
  • value : le paramètre prévu pour la fonctionnalité. Il doit être sur "true" ou "false".
  • onSuccess : [facultatif] la fonction à appeler une fois l’opération définie terminée. Elle doit être au format Function(String jsonValue)jsonValue est au format {<feature>:true|false|undefined}.
  • onError : [facultatif] la fonction à appeler si l’opération de définition a échoué. Elle doit être au format Function(String jsonValue)jsonValue est au format {<feature>:true|false|undefined}.

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

Configuration requise Windows 10, version 1703 ou ultérieure


isRemoteSession

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

Syntaxe
Boolean SecureBrowser.security.isRemoteSession();

Valeur de retour
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 de retour
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