Configuration des autorisations pour le déploiement de Team Build
par Jason Lee
Cette rubrique explique comment configurer des autorisations pour permettre à votre serveur de build de déployer du contenu sur des serveurs web et des serveurs de base de données dans le cadre d’un processus de génération automatisé.
Cette rubrique fait partie d’une série de tutoriels basés sur les exigences de déploiement d’entreprise d’une société fictive nommée Fabrikam, Inc. Cette série de tutoriels utilise un exemple de solution, la solution Gestionnaire de contacts, pour représenter une application web avec un niveau de complexité réaliste, notamment une application ASP.NET MVC 3, un service Windows Communication Foundation (WCF) et un projet de base de données.
La méthode de déploiement au cœur de ces didacticiels est basée sur l’approche de fichier projet fractionné décrite dans Présentation du fichier projet, dans laquelle le processus de génération est contrôlé par deux fichiers projet : l’un contenant des instructions de génération qui s’appliquent à chaque environnement de destination et l’autre contenant des paramètres de build et de déploiement spécifiques à l’environnement. Au moment de la génération, le fichier projet spécifique à l’environnement est fusionné dans le fichier projet indépendant de l’environnement pour former un ensemble complet d’instructions de génération.
Vue d’ensemble de la tâche
Lorsque vous installez le service de build Team Foundation Server (TFS) 2010, vous spécifiez l’identité avec laquelle vous souhaitez que le service s’exécute. Par défaut, il s’agit du compte Service réseau. Vous pouvez également configurer le service de build pour qu’il s’exécute à l’aide d’un compte de domaine.
Toutes les tâches de déploiement qui nécessitent Authentification Windows et que vous prévoyez d’automatiser à l’aide de Team Build s’exécutent à l’aide de l’identité du service de build. Par conséquent, vous devez accorder à l’identité de service de build toutes les autorisations requises sur vos serveurs web et vos serveurs de base de données.
Notes
Le compte de service réseau utilise le compte d’ordinateur pour s’authentifier auprès d’autres ordinateurs. Les comptes d’ordinateur prennent la forme [nom de domaine][nom de l’ordinateur],$ par exemple FABRIKAM\TFSBUILD$. Par conséquent, si votre service de build s’exécute à l’aide de l’identité du service réseau, vous devez accorder toutes les autorisations requises à l’identité du compte d’ordinateur pour votre serveur de build.
Configuration des autorisations de serveur web
Comme décrit dans Choisir l’approche appropriée pour le déploiement web, il existe deux approches main que vous pouvez utiliser si vous souhaitez déployer des packages web sur un serveur web distant :
- Déployez l’application à partir d’un emplacement distant en ciblant le service Deployment Agent Web (également appelé agent distant) sur le serveur de destination.
- Déployez l’application à partir d’un emplacement distant en ciblant le gestionnaire de déploiement web iis (Internet Information Services) sur le serveur de destination.
L’agent distant présente deux limitations clés dans ce cas :
- L’agent distant prend uniquement en charge l’authentification NTLM. En d’autres termes, le déploiement doit utiliser l’identité du service de build. Vous ne pouvez pas emprunter l’identité d’un autre compte.
- Pour utiliser l’agent distant, le compte qui effectue le déploiement doit être un administrateur sur le serveur cible.
Ensemble, ces deux limitations rendent l’approche de l’agent distant indésirable pour un déploiement automatisé de Team Build. Pour utiliser cette approche, vous devez faire du compte de service de build un administrateur sur tous les serveurs web cibles.
En revanche, l’approche du gestionnaire Web Deploy offre différents avantages :
- Le gestionnaire Web Deploy prend en charge l’authentification de base via HTTPS, ce qui vous permet de transmettre les informations d’identification d’un autre compte à l’outil de déploiement web IIS (Web Deploy).
- Vous pouvez configurer des serveurs web cibles pour permettre aux utilisateurs non administrateurs de déployer du contenu sur des sites web IIS spécifiques à l’aide du gestionnaire Web Deploy.
Par conséquent, il est clairement préférable de cibler le gestionnaire Web Deploy quand vous automatisez le déploiement de package web à partir de Team Build. Il s’agit du processus recommandé :
- Créez un compte de domaine à faibles privilèges à utiliser pour le déploiement.
- Configurez le gestionnaire Web Deploy et accordez au compte les autorisations nécessaires pour déployer du contenu sur un site web IIS spécifique, comme décrit dans Configuration d’un serveur web pour la publication Web Deploy (gestionnaire Web Deploy) .
- Appelez Web Deploy et ciblez le gestionnaire Web Deploy, en utilisant l’authentification de base et en fournissant les informations d’identification du compte de domaine que vous avez créé, pour effectuer le déploiement.
Dans l’exemple de solution gestionnaire de contacts, vous spécifiez le type d’authentification (de base ou NTLM), les informations d’identification Web Deploy et l’adresse du point de terminaison (agent distant ou gestionnaire Web Deploy) dans le fichier projet spécifique à l’environnement. Ces valeurs sont utilisées pour formuler et exécuter une commande Web Deploy lorsque le fichier projet est exécuté. Pour plus d’informations, consultez Déploiement de packages web.
Pour plus d’informations sur la configuration du gestionnaire Web Deploy, notamment sur la configuration des autorisations, consultez Configuration d’un serveur web pour la publication Web Deploy (gestionnaire Web Deploy). Pour plus d’informations sur la configuration de l’agent distant, consultez Configuration d’un serveur web pour la publication Web Deploy (agent distant).
Configuration des autorisations du serveur de base de données
Pour déployer une base de données sur SQL Server, vous devez :
- Créez une connexion pour le compte de déploiement sur le SQL Server instance.
- Accordez les autorisations DBCreator de connexion sur le SQL Server instance.
- Après le déploiement initial, ajoutez la connexion au rôle db_owner sur la base de données cible. Cela est nécessaire, car lors des déploiements suivants, vous modifiez une base de données existante au lieu de créer une base de données.
Vous pouvez vous authentifier auprès d’un SQL Server instance à l’aide de l’authentification NTLM ou de l’authentification SQL Server :
- Si vous utilisez l’authentification NTLM, vous devez accorder les autorisations décrites ci-dessus au compte de service de build.
- Si vous utilisez l’authentification SQL Server, vous devez accorder les autorisations décrites ci-dessus au compte SQL Server. Vous devez également inclure le nom d’utilisateur et le mot de passe SQL Server dans la chaîne de connexion que vous utilisez pour déployer la base de données.
Pour plus d’informations détaillées sur la configuration des autorisations pour le déploiement de base de données, consultez Configuration d’un serveur de base de données pour la publication Web Deploy.
Conclusion
À ce stade, vous devez comprendre les autorisations requises, ainsi que les options d’authentification qui s’offrent à vous, lorsque vous automatisez les déploiements d’applications web et de bases de données à partir de Team Build. Vous devez également être en mesure d’implémenter les autorisations nécessaires sur les serveurs web IIS et SQL Server serveurs de base de données.
En savoir plus
Pour plus d’informations sur la configuration des environnements serveur Windows pour prendre en charge le déploiement à distance, consultez Configuration des environnements serveur pour le déploiement web.