énumération EOLE_AUTHENTICATION_CAPABILITIES (objidl.h)

Spécifie différentes fonctionnalités dans CoInitializeSecurity et IClientSecurity ::SetBlanket (ou sa fonction d’assistance CoSetProxyBlanket).

Syntax

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

Constantes

 
EOAC_NONE
Valeur : 0
Indique qu’aucun indicateur de fonctionnalité n’est défini.
EOAC_MUTUAL_AUTH
Valeur : 0x1
Si cet indicateur est spécifié, il sera ignoré. La prise en charge de l’authentification mutuelle est automatiquement fournie par certains services d’authentification. Pour plus d’informations, consultez COM et Packages de sécurité .
EOAC_STATIC_CLOAKING
Valeur : 0x20
Définit le masage statique. Lorsque cet indicateur est défini, DCOM utilise le jeton de thread (le cas échéant) lors de la détermination de l’identité du client. Toutefois, l’identité du client est déterminée lors du premier appel sur chaque proxy (si SetBlanket n’est pas appelé) et chaque fois que CoSetProxyBlanket est appelé sur le proxy. Pour plus d’informations sur le manteau statique, consultez Cloaking.


CoInitializeSecurity et IClientSecurity ::SetBlanket retournent des erreurs si les deux indicateurs de mascarage sont définis ou si l’un des indicateurs est défini lorsque Schannel est le service d’authentification.
EOAC_DYNAMIC_CLOAKING
Valeur : 0x40
Définit le maquage dynamique. Lorsque cet indicateur est défini, DCOM utilise le jeton de thread (le cas échéant) lors de la détermination de l’identité du client. À chaque appel à un proxy, le jeton de thread actuel est examiné pour déterminer si l’identité du client a changé (ce qui entraîne un coût de performances supplémentaire) et si nécessaire, le client est à nouveau authentifié. Le maquage dynamique ne peut être défini que par les clients. Pour plus d’informations sur le masquage dynamique, consultez Cloaking.


CoInitializeSecurity et IClientSecurity ::SetBlanket retournent des erreurs si les deux indicateurs de mascarage sont définis ou si l’un des indicateurs est défini lorsque Schannel est le service d’authentification.
EOAC_ANY_AUTHORITY
Valeur : 0x80
Cet indicateur est obsolète.
EOAC_MAKE_FULLSIC
Valeur : 0x100
Permet à DCOM d’envoyer des noms de principal de serveur Schannel au format complet aux clients dans le cadre de la négociation de sécurité par défaut. Le nom est extrait du certificat de serveur. Pour plus d’informations sur le formulaire complet, consultez Noms principaux.
EOAC_DEFAULT
Valeur : 0x800
Indique à DCOM d’utiliser les fonctionnalités valides de l’appel à CoInitializeSecurity. Si CoInitializeSecurity n’a pas été appelé, EOAC_NONE sera utilisé pour l’indicateur de fonctionnalités. Cet indicateur peut être défini uniquement par les clients d’un appel à IClientSecurity ::SetBlanket ou CoSetProxyBlanket.
EOAC_SECURE_REFS
Valeur : 0x2
Authentifie les appels de nombre de références distribués pour empêcher les utilisateurs malveillants de libérer des objets qui sont toujours utilisés. Si cet indicateur est défini, ce qui ne peut être effectué que lors d’un appel à CoInitializeSecurity par le client, le niveau d’authentification (dans dwAuthnLevel) ne peut pas être défini sur none.

Le serveur authentifie toujours les appels release. La définition de cet indicateur empêche un client authentifié de libérer les objets d’un autre client authentifié. Il est recommandé aux clients de toujours définir cet indicateur, bien que les performances soient affectées en raison de la surcharge associée à la sécurité supplémentaire.
EOAC_ACCESS_CONTROL
Valeur : 0x4
Indique que le paramètre pSecDesc vers CoInitializeSecurity est un pointeur vers une interface IAccessControl sur un objet de contrôle d’accès. Lorsque DCOM effectue des vérifications de sécurité, il appelle IAccessControl ::IsAccessAllowed. Cet indicateur est défini uniquement par le serveur.


CoInitializeSecurity retourne une erreur si les indicateurs EOAC_APPID et EOAC_ACCESS_CONTROL sont définis.
EOAC_APPID
Valeur : 0x8
Indique que le paramètre pSecDesc vers CoInitializeSecurity est un pointeur vers un GUID qui est un AppID. La fonction CoInitializeSecurity recherche l’AppID dans le Registre et lit les paramètres de sécurité à partir de là. Si cet indicateur est défini, tous les autres paramètres de CoInitializeSecurity sont ignorés et doivent être zéro. Seul le serveur peut définir cet indicateur. Pour plus d’informations sur cet indicateur de fonctionnalité, consultez la section Remarques ci-dessous.


CoInitializeSecurity retourne une erreur si les indicateurs EOAC_APPID et EOAC_ACCESS_CONTROL sont définis.
EOAC_DYNAMIC
Valeur : 0x10
Réservé.
EOAC_REQUIRE_FULLSIC
Valeur : 0x200
Provoque l’échec des appels CoSetProxyBlanket de DCOM où un nom principal Schannel est spécifié dans n’importe quel format autre que fullsic. Cet indicateur s’adresse actuellement uniquement aux clients. Pour plus d’informations sur le formulaire complet, consultez Noms principaux.
EOAC_AUTO_IMPERSONATE
Valeur : 0x400
Réservé.
EOAC_DISABLE_AAA
Valeur : 0x1000
Entraîne l’échec de toute activation dans laquelle un processus serveur serait lancé sous l’identité de l’appelant (activation en tant qu’activateur) avec E_ACCESSDENIED. Cette valeur, qui peut être spécifiée uniquement dans un appel à CoInitializeSecurity par le client, permet à une application qui s’exécute sous un compte privilégié (tel que LocalSystem) d’empêcher son identité d’être utilisée pour lancer des composants non approuvés.

Un appel d’activation qui utilise CLSCTX_ENABLE_AAA de l’énumération CLSCTX autorise les activations d’activation en tant qu’activateur pour cet appel.
EOAC_NO_CUSTOM_MARSHAL
Valeur : 0x2000
La spécification de cet indicateur permet de protéger la sécurité du serveur lors de l’utilisation de DCOM ou COM+. Il réduit les risques d’exécution de DLL arbitraires, car il permet le marshaling de seuls CLSID implémentés dans Ole32.dll, ComAdmin.dll, ComSvcs.dll ou Es.dll, ou qui implémentent l’ID de catégorie CATID_MARSHALER. Tout service critique pour le fonctionnement du système doit définir cet indicateur.
EOAC_RESERVED1
Valeur : 0x4000

Remarques

Lorsque l’indicateur EOAC_APPID est défini, CoInitializeSecurity recherche le niveau d’authentification sous AppID. Si le niveau d’authentification est introuvable, il recherche le niveau d’authentification par défaut. Si le niveau d’authentification par défaut est introuvable, il génère un niveau d’authentification par défaut de connexion. Si le niveau d’authentification n’est pas RPC_C_AUTHN_LEVEL_NONE, CoInitializeSecurity recherche la valeur d’autorisation d’accès sous AppID. S’il est introuvable, il recherche la valeur d’autorisation d’accès par défaut. S’il est introuvable, il génère une autorisation d’accès par défaut. Tous les autres paramètres de sécurité sont déterminés de la même façon que pour une application héritée.

Si l’AppID a la valeur NULL, CoInitializeSecurity recherche le nom de l’application .exe dans le Registre et utilise l’AppID qui y est stocké. Si l’AppID n’existe pas, les valeurs par défaut de l’ordinateur sont utilisées.

La méthode IClientSecurity ::SetBlanket et la fonction CoSetProxyBlanket retournent une erreur si l’un des indicateurs suivants est défini dans le paramètre capabilities : EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA ou EOAC_NO_CUSTOM_MARSHAL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête objidl.h (inclure Objidl.h)

Voir aussi

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity ::SetBlanket