Conditions requises pour le contexte
Les exigences de contexte sont exprimées sous la forme d’une combinaison d’indicateurs de bits passés à la fonction InitializeSecurityContext (Général) ou AcceptSecurityContext (Général). Ces indicateurs affectent le contexte de plusieurs façons. Tous les indicateurs ne s’appliquent pas à tous les contextes. Certains sont valides uniquement pour le serveur, d’autres uniquement pour le client.
L’appelant utilise le paramètre fContextReq de l’appel InitializeSecurityContext (Général) ou AcceptSecurityContext (Général) pour spécifier un ensemble d’indicateurs qui indiquent les fonctionnalités requises. Lorsque la fonction retourne, le paramètre pfContextAttr indique les attributs du contexte établi. L’appelant détermine si les attributs de contexte finaux sont acceptables.
Les indicateurs demandés à partir de ou retournés par InitializeSecurityContext (Général) sont préfixés par ISC. Ceux demandés à partir ou retournés par AcceptSecurityContext (Général) sont précédés par ASC. Les indicateurs passés dans une fonction incluent REQ, tandis que les indicateurs retournés incluent RET. Par exemple, un indicateur de demande d’authentification mutuelle passé à InitializeSecurityContext (Général) est ISC_REQ_MUTUAL_AUTH. Un serveur qui demande une authentification mutuelle passe ASC_REQ_MUTUAL_AUTH à AcceptSecurityContext (Général). Si l’authentification mutuelle est obtenue, InitializeSecurityContext (Général) renvoie ISC_RET_MUTUAL_AUTH et AcceptSecurityContext (Général) retourne ASC_RET_MUTUAL_AUTH. Si l’appelant demande une authentification mutuelle, mais que le package de sécurité indique qu’elle ne peut pas être effectuée, l’appelant doit décider d’annuler le contexte ou de continuer.
Le tableau suivant décrit les différents indicateurs d’exigence de contexte.
Indicateur | Description |
---|---|
DÉLÉGUÉ |
Le serveur dans l’application de transport peut créer de nouveaux contextes de sécurité en empruntant l’identité du client qui seront acceptés par d’autres serveurs en tant que contextes du client. Delegate fonctionne uniquement si MUTUAL_AUTH est défini. DELEGATE est actuellement pris en charge uniquement par Kerberos. De plus, Kerberos déléguera uniquement à un serveur qui a l’indicateur TRUSTED_FOR_DELEGATION. N’utilisez pas cet indicateur pour la délégation contrainte. |
MUTUAL_AUTH |
Les parties qui communiquent doivent s’authentifier mutuellement. Sans MUTUAL_AUTH, le client authentifie son identité auprès du serveur. Avec MUTUAL_AUTH, le serveur doit également authentifier son identité auprès du client. Lors de l’utilisation du package de sécurité Schannel , le serveur définit la constante ASC_RET_MUTUAL_AUTH uniquement dans le dernier appel à AcceptSecurityContext (Negotiate), une fois le mappage de certificat terminé. |
REPLAY_DETECT |
Le package de sécurité détecte les paquets relus et avertit l’appelant si un paquet a été relu. L’utilisation de cet indicateur implique toutes les conditions spécifiées par l’indicateur INTEGRITY. |
SEQUENCE_DETECT |
Le contexte doit être autorisé à détecter ultérieurement la remise en désordre de paquets par le biais des fonctions de support des messages. L’utilisation de cet indicateur implique toutes les conditions spécifiées par l’indicateur INTEGRITY. |
CONFIDENTIALITÉ |
Le contexte peut protéger les données en transit à l’aide des fonctions EncryptMessage (Général) et DecryptMessage (Général). L’indicateur CONFIDENTIALITY ne fonctionne pas si le contexte généré est pour le compte Invité. |
USE_SESSION_KEY |
Une nouvelle clé de session doit être négociée. |
PROMPT_FOR_CREDS |
Si le client est un utilisateur interactif, le package de sécurité doit, si possible, inviter l’utilisateur à fournir les informations d’identification appropriées. |
USE_SUPPLIED_CREDS |
Les informations d’identification spécifiques au package sont disponibles dans la mémoire tampon d’entrée. Le package de sécurité peut utiliser ces informations d’identification pour authentifier la connexion. |
SAVE_SUPPLIED_CREDS |
Les informations d’identification fournies doivent être mises en cache avec les informations d’identification supplémentaires. |
ALLOCATE_MEMORY |
Le package de sécurité doit allouer de la mémoire. L’appelant doit finalement appeler la fonction FreeContextBuffer pour libérer de la mémoire allouée par le package de sécurité. |
USE_DCE_STYLE |
L’appelant attend une transaction d’authentification à trois étapes. |
DATAGRAMME |
La sémantique du datagramme doit être utilisée. Pour plus d’informations, consultez Contextes de datagramme. |
CONNECTION |
La sémantique de connexion doit être utilisée. Pour plus d’informations, consultez Contextes orientés connexion. |
Flux |
La sémantique de flux doit être utilisée. Pour plus d’informations, consultez Contextes de flux. |
EXTENDED_ERROR |
Les messages de réponse d’erreur pour l’homologue doivent être générés en cas d’échec du contexte. |
INTÉGRITÉ |
L’intégrité de la mémoire tampon peut être vérifiée, mais aucun séquencement ou détection de réponse n’est activé. |
NO_INTEGRITY |
La condition d’INTÉGRITÉ est ignorée. |
IDENTIFIER |
Lorsqu’un serveur emprunte l’identité d’un contexte pour lequel cet indicateur est défini, cet emprunt d’identité génère un accès extrêmement limité. L’emprunt d’identité avec le jeu d’identification est utilisé pour vérifier l’identité du client. |