é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) |