Héberger un adaptateur dans IIS à l’aide du Kit de développement logiciel (SDK) de l’adaptateur LOB WCF
Cette section contient des informations sur l’hébergement d’un adaptateur créé à l’aide du Kit de développement logiciel (SDK) d’adaptateur métier (LOB) Microsoft Windows Communication Foundation (WCF) dans Internet Information Services (IIS). Pour plus d’informations sur les autres options d’hébergement, consultez Services d’hébergement.
Utiliser IIS et ASP.NET
Vous pouvez utiliser IIS avec ASP.NET activé pour publier les adaptateurs créés avec le Kit de développement logiciel (SDK) de l’adaptateur LOB WCF. Pour héberger un adaptateur créé par le Kit de développement logiciel (SDK) de l’adaptateur LOB WCF, vous configurez Internet Information Services (IIS) pour la publication des services WCF. Ensuite, réfléchissez à l’utilisation de votre adaptateur WCF avec ASP.NET.
Lors de l’hébergement d’un service WCF dans IIS, deux modes d’hébergement sont disponibles : côte à côte et modede compatibilité A SP.NET. Le mode d’hébergement par défaut est côte à côte. Le mode côte à côte se comporte de manière cohérente avec d’autres solutions d’hébergement WCF. Par conséquent, un service WCF hébergé dans IIS se comporte comme un service hébergé dans une application console. Toutefois, cela peut ne pas être souhaitable, car les développeurs web peuvent s’attendre à un comportement similaire à ASP.NET. Par instance, en mode côte à côte, WCF n’adhère à aucune règle d’autorisation basée sur une URL spécifiée dans l’élément <system.web> <authorization>
de configuration de web.config.
ASP.NET mode de compatibilité permet au service WCF d’utiliser toutes les fonctionnalités de ASP.NET et de se comporter comme une page ASPX ; Toutefois, vous devez prendre des mesures supplémentaires lors de la création de votre adaptateur WCF pour activer cette fonctionnalité. Pour plus d'informations, consultez les pages suivantes :
Hébergement dans les services IIS (Internet Information Services)
Utiliser l’Assistant Développement du service d’adaptateur WCF
Utilisez l’Assistant Développement du service d’adaptateur métier WCF pour automatiser la création d’un projet web pour héberger votre carte dans Internet Information Services (IIS). L’adaptateur hébergé peut ensuite être consommé par les clients à l’aide de Windows Communication Framework (WCF) ou de services web.
Publier un adaptateur en tant que service WCF hébergé dans IIS
Ouvrez Visual Studio. Dans le menu Fichier , sélectionnez Nouveau, puis Site web.
Dans Modèles, sélectionnez Visual C#, puis service d’adaptateur WCF.
Entrez le dossier pour enregistrer la solution, puis sélectionnez OK. L’Assistant Développement du service d’adaptateur WCF démarre.
Dans la page Introduction, cliquez sur Suivant.
Dans la page Choisir des opérations , spécifiez la liaison, le contrat et les opérations à utiliser pour ce service hébergé.
Dans la liste Sélectionner une liaison , sélectionnez la liaison d’adaptateur à utiliser, puis cliquez sur Configurer. La boîte de dialogue Configurer l’adaptateur s’affiche. Fournissez les valeurs nécessaires pour appeler l’adaptateur et récupérer les métadonnées d’opération.
Sous l’onglet Sécurité , sélectionnez le type d’informations d’identification client à utiliser lors de la transmission des informations d’identification client à l’adaptateur.
Type d'informations d'identification Description Aucun Le client n’a pas besoin de présenter d’informations d’identification. Windows Le client utilisera les informations d’identification Windows. Nom d’utilisateur Le client fournit un nom d’utilisateur et un mot de passe. Certificate Le client sera authentifié à l’aide d’un certificat X.509. Si cette valeur est définie, cliquez sur Parcourir dans la zone Certificat client , puis sélectionnez le certificat à utiliser. Sous l’onglet Propriétés de l’URI , spécifiez les paramètres URI requis par l’adaptateur. Les entrées affichées dans cet onglet varient en fonction des propriétés exposées dans la
ConnectionUri Properties
classe de l’adaptateur.Sous l’onglet Propriétés de liaison , spécifiez les valeurs pour les propriétés de liaison requises pour l’adaptateur. La section Général contient des paramètres courants tels que les valeurs de délai d’expiration. Les propriétés supplémentaires sont répertoriées en fonction des propriétés personnalisées exposées dans votre
AdapterBinding
classe.
Une fois que vous avez spécifié les valeurs de configuration, cliquez sur Se connecter.
Dans la liste Sélectionner un type de contrat , sélectionnez le contrat à utiliser. Cela remplit le contrôle Sélectionner une arborescence de catégories avec une liste de catégories et d’opérations disponibles à partir de cet adaptateur. Si l’adaptateur implémente la fonctionnalité de recherche via une
MetadataRetrievalClient
classe, vous pouvez entrer un terme de recherche dans le champ Rechercher dans la catégorie pour renvoyer uniquement les catégories et les opérations qui contiennent le terme de recherche.Notes
Seules les opérations sortantes sont disponibles pour la sélection.
Dans la zone Catégories et opérations disponibles , sélectionnez les éléments à ajouter, puis cliquez sur Ajouter. Une fois que vous avez ajouté les éléments souhaités, cliquez sur Suivant.
Dans la page Configurer les comportements de service et de point de terminaison , définissez les comportements souhaités pour cet adaptateur.
La section Configuration du comportement du service contient des entrées qui contrôlent le comportement du service. Après avoir exécuté l’Assistant, vous pouvez modifier les comportements de service sélectionnés en modifiant le fichier web.config.
Propriété Description EnableMetadataExchange La définition de cette valeur sur True permet la publication de métadonnées de service sur les demandes clientes. Cela peut également être défini en < modifiant serviceMetadata httpGetEnabled=" »> dans web.config. La valeur par défaut est False IncludeExceptionDetailsinFault Si vous définissez cette valeur sur True , les informations d’exception managées sont retournées au client dans les erreurs SOAP. Cela peut également être défini en < modifiant serviceDebug usingincludeExceptionDetailInFaults=" »> dans web.config. La valeur par défaut est False. Nom Nom de la configuration du comportement du service. UseServiceCertificate Cette valeur détermine si le service utilisera un certificat X.509 pour s’authentifier auprès du processus client. La valeur par défaut est True. FindValue Cette valeur est utilisée pour rechercher un certificat X.509 spécifique dans le magasin de certificats. Cela peut également être défini en < modifiant serviceCredentials findValue=" »> dans web.config Remarque : spécifiez une valeur pour cette propriété uniquement si UseServiceCertificate a la valeur True. StoreLocation Cette valeur spécifie l’emplacement du magasin système pour rechercher le certificat spécifié. Cela peut également être défini en < modifiant serviceCredentials storeLocation=" »> dans web.config. Note: Spécifiez une valeur pour cette propriété uniquement si UseServiceCertificate a la valeur True. StoreName Cette valeur spécifie le magasin système spécifique à rechercher pour le certificat spécifié. Cela peut également être défini en < modifiant serviceCredentials storeName=" »> dans web.config Remarque : spécifiez une valeur pour cette propriété uniquement si UseServiceCertificate a la valeur True. X509FindType Type de recherche à utiliser avec FindValue spécifié précédemment afin de trouver le certificat spécifique à utiliser. Cela peut également être défini en < modifiant serviceCredentials x509FindType=" »> dans web.config Remarque : spécifiez une valeur pour cette propriété uniquement si UseServiceCertificate a la valeur True. La section Configuration du comportement du point de terminaison contrôle le comportement du point de terminaison.
Propriété Description Nom Nom du comportement du point de terminaison AuthenticationType Cette valeur indique à l’adaptateur où obtenir les informations d’identification client du document entrant. Pour permettre aux clients de spécifier un certificat client à authentifier auprès du service, définissez-le sur ClientCredentialUsernamePassword. Pour permettre aux clients de spécifier le nom d’utilisateur et le mot de passe dans le cadre de l’en-tête HTTP, définissez-le sur HTTPUsernamePassword. Pour permettre aux clients de spécifier des informations d’identification via l’interface ClientCredential, définissez cette option sur Auto. En cas d’échec, les clients peuvent passer des informations d’identification dans le cadre de l’en-tête HTTP.
Cette valeur peut également être définie en < modifiant endpointBehavior adapterSecurityBridgeType> dans web.config. La valeur par défaut est Auto.UsernameHeader Cela spécifie le nom de l’en-tête qui sera utilisé pour passer le nom d’utilisateur au service. Pour plus d’informations sur les en-têtes HTTP, consultez « Prise en charge des en-têtes HTTP et SOAP personnalisés » à l’adresse https://go.microsoft.com/fwlink/?LinkId=106692
Cette valeur peut également être définie en < modifiant endpointBehavior usernameHttpHeader> dans web.config. Note: Vous devez spécifier une valeur pour cette propriété si AuthenticationType est défini sur HTTPUserNamePassword. Si elle est définie sur Auto, cette propriété est facultative.PasswordHeader Cela spécifie le nom de l’en-tête qui sera utilisé pour passer le mot de passe utilisateur au service. Pour plus d’informations sur les en-têtes HTTP, consultez « Prise en charge des en-têtes HTTP et SOAP personnalisés » à l’adresse https://go.microsoft.com/fwlink/?LinkId=106692
Cette valeur peut également être définie en < modifiant endpointBehavior passwordHttpHeader< dans web.config. Note: Vous devez spécifier une valeur pour cette propriété si AuthenticationType est défini sur HTTPUserNamePassword. Si elle est définie sur Auto, cette propriété est facultative.Après avoir défini le comportement souhaité, cliquez sur Suivant pour continuer.
Dans la page Configurer la liaison et l’adresse de point de terminaison de service , vous pouvez configurer les propriétés d’adresse et de liaison pour les contrats. Sélectionnez le contrat dans la liste Sélectionner un contrat à configurer , puis entrez les valeurs souhaitées dans la boîte de dialogue Configurer l’adresse et la liaison pour le contrat .
Sélectionnez l’entrée BindingConfiguration sous Propriétés de liaison. L’Assistant prend uniquement en charge la liaison HTTP de base, de sorte que le champ de configuration de liaison est automatiquement défini sur System.ServiceModel.Configuration.BasicHttpBindingElement. Pour modifier les propriétés de configuration de cette liaison, cliquez sur le bouton de sélection ... . Pour utiliser un canal de communication sécurisé, vous devez toujours définir la propriété Mode sur Transport. Il s’agit de la valeur par défaut.
Sélectionnez EndpointName, puis entrez le nom souhaité du point de terminaison.
Pour appliquer vos modifications, cliquez sur Appliquer.
Pour continuer, cliquez sur Suivant. La page Résumé répertorie une arborescence des opérations d’adaptateur sélectionnées.
Passez en revue le résumé, puis cliquez sur Terminer.
L’Assistant crée un projet web et ajoute les fichiers suivants.
Fichier Description .svc Fichier de service qui fait référence au proxy WCF. .cs Implémente le proxy WCF. web.config Contient des < éléments de point de terminaison, <de liaisons> et <de> comportements pour <le système. Servicemodel> Publiez le projet de service WCF.
Cliquez avec le bouton droit sur le projet dans Explorateur de solutions, puis cliquez sur Publier.
Dans la boîte de dialogue Publier un site web , spécifiez l’URL cible du service WCF.
Sélectionnez Autoriser la mise à jour de ce site précompilé.
Sélectionnez Utiliser un nommage fixe et des assemblys de page unique.
Sélectionnez Activer le nommage fort sur les assemblys précompilés, puis spécifiez la clé de signature à utiliser.
Pour publier le site Web, cliquez sur OK.
Vérifiez que le service a été correctement publié.
Démarrez la console de gestion IIS. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Services Internet Information.
Accédez au nœud où vous avez publié le service. Si le service a été publié en tant que http://localhost/myservice, accédez à Internet Information Services> Nom > de l’ordinateurSites>web site web> par défautmonservice.
Dans le volet droit, cliquez avec le bouton droit sur le fichier .svc, puis cliquez sur Parcourir. La page Web s’affiche avec des informations sur le service. Vous pouvez maintenant utiliser ce service à l’aide de WCF ou d’appels de service Web à partir d’applications clientes.
Sécurité
Lorsque l’adaptateur est hébergé dans un service, les appels d’applications clientes utilisent le pont de sécurité de l’adaptateur pour transmettre les informations d’identification du client à l’adaptateur.
Lorsqu’un client WCF envoie l’authentification à un service WCF, il utilise normalement l’authentification. Toutefois, dans le cas d’un adaptateur, l’idée est de capturer les informations d’authentification à utiliser avec le système métier sous-jacent. Cela est implémenté par le biais du pont de sécurité de l’adaptateur, qui est exposé comme un comportement de point de terminaison. En tant que développeur d’adaptateurs, il n’y a rien qui doit être implémenté pour tirer parti de cette fonctionnalité ; Toutefois, lors du déploiement de l’adaptateur, vous devez prendre en compte la façon dont le client fournira des informations d’identification au service.
Si vous utilisez la sécurité au niveau du message, le pont de sécurité de l’adaptateur peut récupérer les ClientCredentials envoyés par l’application cliente sur n’importe quelle liaison. Si vous utilisez une liaison HTTP de base, vous pouvez choisir d’utiliser un en-tête personnalisé pour transmettre les informations de nom d’utilisateur et de mot de passe. Il est recommandé d’utiliser la classe ClientCredential fournie par WCF pour transmettre les informations d’identification, mais de nombreuses applications clientes de service Web devront utiliser un en-tête personnalisé pour passer les informations d’identification.
Voici un exemple de configuration dans lequel l’adaptateur recherche des informations d’identification dans les ClientCredentials que l’application cliente fournit. Si aucun n’est trouvé, l’adaptateur recherche ensuite dans les en-têtes de requête HTTP spécifiés.
<endpointBehaviors>
<behavior name="customEndpointBehavior">
<endpointBehavior usernameHttpHeader="UNHdr" passwordHttpHeader="PWHdr"
adapterSecurityBridgeType="Auto" />
</behavior>
</endpointBehaviors>