API pour Android

L’API pour Android est basée sur Java. Cet article récapitule les API Citrix Endpoint Management™ par fonctionnalité et fournit les définitions d’API.

  • Gestion des applications :

  • isManaged
  • isWrapped

Stratégies MDX :

  • getPoliciesXML
  • getPolicyValue
  • setPolicyChangeMessenger

  • Coffre-fort partagé :

  • MDXDictionary

Données utilisateur :

  • getUserName

  • Classe com.citrix.worx.sdk.MDXApplication

Méthodes

  • isManaged

    public static boolean isManaged (Context context)

    Vérifie si l’application est actuellement gérée par MDX, ce qui signifie que l’application Citrix Secure Hub™ est installée sur l’appareil et que les stratégies Citrix Endpoint Management sont appliquées à votre application. L’infrastructure backend d’Endpoint Management (coffres-forts de clés) est interrogée pour obtenir des clés partielles de chiffrement de données (secrets) que MDX utilisera pour chiffrer les données de fichiers d’application. Renvoie true si l’application est gérée.

    Les applications Premium non gérées utilisent les valeurs par défaut des stratégies Endpoint Management spécifiées dans Applications/Citrix/MDXToolkit/data/MDXSDK_Android/default_sdk_policies.xml. Les stratégies ne sont pas appliquées aux applications Générales non gérées.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

  • Exemple

    boolean bIsManaged = MDXApplication.isManaged(context);

  • isWrapped

    public static boolean isWrapped (Context context)

    Renvoie true si l’application est encapsulée avec le kit d’outils MDX.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    Exemple

    boolean bIsWrapped = MDXApplication.isWrapped(context);

  • getUserName

    public static String getUserName (Context context)

    Renvoie une chaîne contenant le nom d’utilisateur d’un utilisateur inscrit exécutant une application gérée par MDX, quel que soit l’état de connexion de l’utilisateur. Renvoie nil si l’utilisateur n’est pas inscrit, si l’application n’est pas gérée ou si l’application n’est pas encapsulée.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

  • Exemple

    String userName = MDXApplication.getUserName(context);

  • Classe com.citrix.worx.sdk.MDXPolicies

Méthodes

  • getPoliciesXML

    public static String getPoliciesXML (Context context)

    Renvoie le contenu de default_sdk_policies.xml, une ligne par stratégie, préfixée par (match) pour indiquer que la valeur du fichier XML correspond à la valeur renvoyée par MDXPolicies.getPolicyValue(). Renvoie une chaîne vide en cas d’échec.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    Exemple

    String policiesXML = MDXPolicies.getPoliciesXML(context);

  • getPolicyValue

    public static String getPolicyValue (Context context, String policyName)

    Renvoie une String qui contient la valeur actuelle de la stratégie nommée. Renvoie null si aucune valeur n’est trouvée.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    policyName – Le nom de la stratégie à rechercher. Un nom de stratégie est la valeur de l’élément PolicyName dans un fichier XML de stratégie.

    Exemple

    String value = MDXPolicies.getPolicyValue(context"DisableCamera");

  • setPolicyChangeMessenger

  • public static String setPolicyChangeMessenger (Context context, String policyName. Messenger messenger)

    Enregistre un Messenger pour recevoir un message lorsque la valeur de la stratégie donnée change. Lorsque MDX détecte qu’une valeur de stratégie a changé dans la console Citrix Endpoint Management, MDX en informe ce messenger. Vous pouvez ensuite utiliser les autres API pour relire les valeurs de stratégie et modifier votre application. Renvoie null.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    policyName – Le nom de la stratégie à surveiller. Un nom de stratégie est la valeur de l’élément PolicyName dans un fichier XML de stratégie.

    messenger – Le messenger qui recevra les messages lorsque la valeur de la stratégie changera.

    Exemple

  • MDXPolicies.setPolicyChangeMessenger(context, "DisableCamera", messenger);

Classe com.citrix.mdx.common.MDXDictionary

MDXDictionary est un conteneur pour la lecture et le stockage de bundles Android chiffrés de paires clé-valeur. Les applications de productivité mobile du même groupe de sécurité MDX partagent un dictionnaire. Utilisez l’API du coffre-fort partagé pour partager du contenu géré entre des applications qui ont le même dictionnaire MDX. Par exemple, vous pouvez partager des certificats et des clés privées via une application inscrite afin que les applications puissent obtenir un certificat du coffre-fort sécurisé au lieu de Secure Hub.

Les dictionnaires sont stockés chiffrés, quels que soient les paramètres de la stratégie de chiffrement des fichiers privés et de la stratégie de chiffrement des fichiers publics. Les développeurs doivent déverrouiller le coffre-fort avant de récupérer les dictionnaires.

Constructeurs

  • public MDXDictionary( MDXDictionary source )

    Construit une copie d’un MDXDictionary existant.

    Paramètres

    source – Le MDXDictionary qui doit être copié.

  • public MDXDictionary( String name, Bundle bundle, long sequence )

    Construit un MDXDictionary à partir d’un nom, d’un bundle et d’un numéro de séquence. Si vous ne connaissez pas le numéro de séquence, utilisez la méthode create() factory.

    Paramètres

    name – Le nom du dictionnaire.

    bundle – Le bundle Android.

    sequence – Un numéro de séquence.

Méthodes

  • public static MDXDictionary create( Context context, String name )

  • Crée un dictionnaire en vérifiant d’abord si un dictionnaire portant le même nom existe déjà. Si le dictionnaire n’existe pas, un nouveau dictionnaire est renvoyé. Sinon, le dictionnaire existant est renvoyé. Cette méthode ne renvoie jamais null.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    name – Le nom du dictionnaire.

    Exemple

    // Crée une instance d’un dictionnaire.

    MDXDictionary dict = MDXDictionary.create(getContext(), "app-settings");

  • public static boolean delete( Context context, String name )

  • Supprime un dictionnaire par son nom. Renvoie true en cas de succès ; renvoie false en cas d’échec.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    name – Le nom du dictionnaire.

    Exemple

    // Crée une instance d’un dictionnaire.

    MDXDictionary.delete(getContext(), "app-settings");

  • public static MDXDictionary find( Context context, String name )

    Recherche un dictionnaire existant. Renvoie un dictionnaire existant ; renvoie null si aucun dictionnaire n’est trouvé.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    name – Le nom du dictionnaire.

    Exemple

    MDXDictionary dict = MDXDictionary.find(getContext(),"app-settings");

     if( dict != null )
         {
             // Use dictionary
         }
     <!--NeedCopy-->
    
  • public boolean isNew( )

    Vérifie s’il s’agit d’un nouveau dictionnaire ou d’un dictionnaire existant. Renvoie true si un dictionnaire n’existe pas déjà.

    Exemple

    MDXDictionary dict = MDXDictionary.create(getContext(), "app-settings");

     if (dict.isNew())
         {
             // Dictionary was not found.
         }
     else
         {
             // Existing dictionary was found.
         }
     <!--NeedCopy-->
    
  • public boolean save( Context context )

    Stocke un dictionnaire chiffré. Si un dictionnaire portant le même nom existe, il sera écrasé. Renvoie true en cas de succès ; renvoie false en cas d’échec.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    Exemple

    MDXDictionary dict = MDXDictionary.find(getContext(), "app-settings");

     if( dict != null )
         {
             String certificate = getCertificate();
             dict.bundle.putString( &quot;secret-certificate&quot;, certificate );
             // Update bundle by overwriting the existing bundle.
             dict.save( getContext() );
         }
     <!--NeedCopy-->
    
  • public boolean append( Context context )

    Ajoute un dictionnaire chiffré à un dictionnaire existant. Si aucun dictionnaire n’existe, le dictionnaire spécifié est stocké. Renvoie true en cas de succès ; renvoie false en cas d’échec.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    Exemple

    MDXDictionary dict = MDXDictionary.find(getContext(), ";app-settings");

     if( dict != null )
         {
             String certificate = getCertificate();
             Bundle bundle = new Bundle();
             bundle.putString( &quot;secret-certificate&quot;, certificate );
             dict.bundle = bundle;
             dict.append( getContext() );
             // Note that dict.bundle may not match the state of the
             // bundle that was stored. The stored bundle could be
             // larger.
         }
     <!--NeedCopy-->
    
  • public boolean delete( Context context )

    Supprime le dictionnaire. Renvoie true en cas de succès ; renvoie false en cas d’échec.

    Paramètres

    context – Le contexte Android qui effectue cet appel.

    Exemple

    MDXDictionary dict = MDXDictionary.find(getContext(), "app-settings");

     if( dict != null )
         {
             dict.delete( getContext() );
         }
     <!--NeedCopy-->
    

Remarques et considérations

  • Les constructeurs lèveront une IllegalArgumentException lorsque des paramètres incorrects sont transmis.
  • L’opération create() ne renverra jamais la valeur null. Si la stratégie de chiffrement est activée, l’utilisateur est responsable de s’assurer qu’elle est déverrouillée avant l’appel de create().
  • L’opération append() peut échouer si un objet stocké qui peut être analysé ou sérialisé n’est pas un type de données Java ou Android connu. Secure Hub est incapable de désérialiser le dictionnaire car la classe n’est pas connue en interne par Secure Hub.
  • L’opération append() ajoutera son bundle à un bundle de dictionnaire existant. Si le bundle stocké est différent du bundle dans le dictionnaire, le bundle local ne reflétera pas l’état du bundle stocké. Une opération find() ou une opération create() est nécessaire pour interroger l’état du bundle précédemment stocké.
API pour Android