Présentation de l'utilisation de Kerberos pour les services Web

Le jeton Kerberos fournit des fonctions similaires à d'autres jetons de sécurité binaires, tels que les jetons LTPA (Lightweight Third Party Authentication) et Secure Conversation.

Générateur de jeton

Une fois le jeton Kerberos créé à partir du centre de distribution de clés (KDC) le générateur de sécurité des Services Web code et insère le jeton dans le message SOAP et le propage pour la consommation ou l'acceptation. Si un message d'intégrité ou une clé de confidentialité sont demandés, une sous-clé ou clé de session Kerberos du ticket Kerberos est utilisée. Une clé peut être dérivée à partir de la sous-clé Kerberos ou de la clé de session Kerberos. La sécurité des services Web utilise la clé du jeton Kerberos pour signer et chiffrer les composants du message comme décrit dans la spécification OASIS Web Services Security Kerberos Token Profile Version 1.1. Le type de clé à utiliser est prédéterminé par la configuration ou la règle de sécurité des services Web. La taille de la clé dérivée peut également être configurée.

La valeur de la clé de signature ou de chiffrement est définie à partir de la valeur de l'une des clés suivantes :
  • La sous-clé Kerberos lorsqu'elle figure dans l'authentificateur
  • Une clé de session directement issue du ticket en cas d'absence de sous clé
  • Une clé dérivée de l'une des clés précédentes
Lorsque le jeton Kerberos est référencé comme clé de signature, l'algotrithme de signature doit être un code d'authentification de message haché, qui est http://www.w3.org/2000/09/xmldsig#hmac-sha1. Lorsque le jeton Kerberos est référencé comme clé de chiffrement, vous devez utiliser l'un des algorithmes de chiffrement symétrique suivants :
  • http://www.w3.org/2001/04/xmlenc#aes128-cbc
  • http://www.w3.org/2001/04/xmlenc#aes256-cbc
  • http://www.w3.org/2001/04/xmlenc#tripledes-cbc
Avertissement :
  • Le serveur d'applications ne prend en charge que Kerberos Version 5.
  • Vous pouvez utiliser un algorithme symétrique de type AES dans Web Services Security lorsque le ticket Kerberos respecte RFC-4120 uniquement.
  • Une clé Kerberos avec type de clé RC4-HMAC 128 bits est utilisée lorsque le KDC est sur un serveur Microsoft Windows 2003.
  • Une clé Kerberos avec types de clé AES 128 ou 256 bits est utilisée lorsque le KDC est sur un serveur Microsoft Windows 2008.
  • Un ticket Kerberos doit pouvoir être transféré et ne doit pas contenir d'adresse lorsque le fournisseur de services s'exécute dans un cluster.
  • Vous devez importer une règle de sécurité Java™ illimitée lorsque vous utilisez un algorithme de chiffrement AES 256 bits.

Pour plus d'informations sur l'utilisation d'un jeton Kerberos dans un environnement à domaine sécurisé ou à domaines multiples, voir la rubrique relative à "la sécurité des jetons Kerberos dans un environnement à domaine unique, interdomaine ou sécurisé".

Consommateur de jeton

Le consommateur Web Services Security reçoit et extrait le jeton Kerberos du message SOAP. Le destinataire accepte ensuite le jeton Kerberos en le validant avec sa propre clé secrète. La clé secrète du service est stockée dans un fichier de clés exporté. Une fois le jeton accepté, le consommateur Web Services Security place les informations du jeton de demande associées dans le sujet du contexte Sujet. Vous pouvez également dériver la clé correspondante du jeton de demande. La clé est utilisée pour vérifier et déchiffrer le message. Si le jeton de demande peut être transféré et ne contient pas d'adresse, le serveur d'applications peut utiliser le jeton stocké pour des appels en aval.

Format et référence du jeton

Pour les applications JAX-WS, utilisez l'ensemble de règles personnalisé existant ou les scripts de commande d'administration pour que l'ensemble de règles indique le type de jeton Kerberos, la signature des messages et le chiffrement des messages. Le modèle de programmation JAX-WS pour WebSphere Application Server fournit une configuration minimale pour activer le profil du jeton Kerberos avec le jeton Kerberos.

Pour les applications JAX-RPC, utilisez le descripteur de déploiement pour indiquer que le jeton personnalisé utilise le jeton Kerberos. Vous pouvez utiliser le jeton Kerberos pour l'authentification mais pas pour la signature ou le chiffrement.

WebSphere Application Server prend en charge les classes de gestionnaire de rappels suivantes pour le jeton Kerberos Version 5 :
  • com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler

    Cette classe est un gestionnaire de rappels de jeton Kerberos version 5 du côté destinataire. Cette instance est utilisée pour générer les objets WSSVerification et WSSDecryption pour valider un jeton de sécurité binaire Kerberos.

  • com.ibm.websphere.wssecurity.callbackhandler.KRBTokenGenerateCallbackHandler

    Cette classe est un gestionnaire de rappels de jeton Kerberos version 5 côté générateur. Cette instance est utilisée pour générer des objets WSSSignature et WSSEncryption, pour générer un jeton de sécurité binaire Kerberos.

La spécification OASIS Web Services Security Kerberos Token Profile Version 1.1 stipule que le jeton Kerberos est attaché au message SOAP avec l'élément <wsse:BinarySecurityToken>t. L'exemple suivant présente le format du message. Les informations sur le jeton de sécurité binaire sont apparaissent en gras.

<S11:Envelope xmlns:S11="…" xmlns:wsu="…">
   <S11:Header>
      <wsse:Security xmlns:wsse="…">
          <wsse:BinarySecurityToken 
              EncodingType="http://docs.oasis-open.org/wss/2004/01/
                 oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
              ValueType="http://docs.oasis-open.org/wss/
                 oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ" 
              wsu:Id="MyToken">boIBxDCCAcCgAwIBBaEDAgEOogcD…
          </wsse:BinarySecurityToken>
          …
      </wsse:Security>
    </S11:Header>
    <S11:Body>
        …
    </S11:Body>
</S11:Envelope>

Le jeton Kerberos est référencé par l'élément <wsse:SecurityTokenReference>. L'élément <wsu:Id>, qui est défini dans l'élément <wsse:BinarySecurityToken> et indiqué en gras dans l'exemple suivant, fait directement référence au jeton dans l'élément <wsse:SecurityTokenReference>.

La valeur de l'attribut @wsse:TokenType dans l'élément <wsse:SecurityTokenReference> correspond à la valeur de l'attribut ValueType de l'élément <wsse:BinarySecurityToken>. L'attribut Reference/@ValueType n'est pas requis. Cependant, si l'attribut est indiqué, sa valeur doit être équivalente à l'attribut @wsse11:TokenType.

L'exemple suivant montre le format de message, la corrélation entre les éléments <wsu:Id> et<wsse:SecurityTokenReference> et la relation entre les valeurs d'attribut @wsse:TokenType et ValueType.
<S11:Envelope xmlns:S11="…" xmlns:wsu="…">
   <S11:Header>
      <wsse:Security xmlns:wsse="…">
          <wsse:BinarySecurityToken 
               EncodingType="http://docs.oasis-open.org/wss/2004/01/
                    oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
               ValueType="http://docs.oasis-open.org/wss/
                    oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ" 
               wsu:Id="MyToken">boIBxDCCAcCgAwIBBaEDAgEOogcD…
          </wsse:BinarySecurityToken>
          </wsse:Security>
   </S11:Header>
</S11:Envelope>
      <wsse:Security>
       </wsse:Security>
          <wsse:SecurityTokenReference 
               TokenType="http://docs.oasis-open.org/wss/
                    oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ">
               <wsse:Reference URI="#MyToken" 
                    ValueType="http://docs.oasis-open.org/wss/
                        oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ">
              </wsse:Reference>
          </wsse:SecurityTokenReference>
         …
      <wsse:Security>
      </wsse:Security>
    <S11:Header>
    </S11:Header>
    <S11:Body>
        …
    </S11:Body>
 <S11:Envelope>
 </S11:Envelope>

L'élément <wsse:KeyIdentifier> définit un identificateur pour le jeton Kerberos. La valeur de l'identificateur est une valeur de hachage SHA1 du jeton Kerberos codé dans le message précédent. L'élément doit avoir un attribut ValueType doté de la valeur #Kerberosv5APREQSHA1. Le mécanisme de référence KeyIdentifier est utilisé dans les échanges de messages suivants, une fois jeton Kerberos initial accepté. Les informations sur l'identificateur de clé sont en gras dans l'exemple suivant :

<S11:Envelope xmlns:S11="…" xmlns:wsse="…" xmlns:wsu="…">
    <S11:Header>
      <wsse:Security>
         …
         <wsse:SecurityTokenReference 
               wsse11:TokenType=http://docs.oasis-open.org/wss/
                   oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ>
               <wsse:KeyIdentifier 
                   ValueType="http://docs.oasis-open.org/wss/
                       oasis-wss-kerberos-token-profile-1.1#Kerberosv5APREQSHA1">
                       GbsDt+WmD9XlnUUWbY/nhBveW8I= 
               </wsse:KeyIdentifier>
          </wsse:SecurityTokenReference>
          …
      </wsse:Security>
   </S11:Header>
   <S11:Body>
       …
    </S11:Body>
</S11:Envelope>

Plusieurs références au jeton Kerberos

Une fois que l'identité Kerberos est validée et acceptée par le service, il n'est pas nécessaire pour le client d'envoyer un jeton Kerberos dans chaque demande. La spécification OASIS Web Services Security Kerberos Token Profile Version 1.1 suggère d'utiliser une clé chiffrée SHA1 avec l'élément <wsse:KeyIdentifier> dans l'élément <wsse:SecurityTokenReference> pour chaque message suivant après l'acceptation du paquet AP_REQ initial. Cependant, l'environnement d'exécution pour Web Services Security doit mapper l'identificateur de clé à un jeton Kerberos en cache en vue d'un traitement supplémentaire. IBM® WebSphere Application Server 7.0 et les versions suivantes prennent en charge la mise en cache SHA1, comme décrit dans le profil, par défaut. Cependant, le serveur d'applications fournit également la capacité de générer de nouveaux jetons AP_REQ pour chaque demande avec le ticket Kerebos existant. Lorsque vous travaillez avec Microsoft .NET, n'utilisez pas la mise en cache de pSHA1 ; générez un paquet AP_REQ pour chaque demande.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_kerberosusageoverview
Nom du fichier : cwbs_kerberosusageoverview.html