2016-12-30 2 views
5

J'ai parcouru tous les exemples que j'ai pu trouver en ligne pour la construction d'applications basées sur des conteneurs de dockers. Je voudrais lancer deux services en cours d'exécution dans deux conteneurs docker:Comment utiliser l'authentification Windows avec le conteneur docker du serveur SQL

  1. Un conteneur de fenêtres en cours d'exécution ASP.NET
  2. Un conteneur Windows exécutant SQL Server

emploi facile et de nombreux exemples. Toutefois, dans tous les exemples, vous devez utiliser l'authentification SQL et fournir un mot de passe SA codé en dur en tant que variable d'environnement lors de l'exécution du conteneur de serveur SQL. Vous devez également coder en dur le mot de passe SA dans la chaîne de connexion dans le code ASP.Net (ou le fournir d'une autre manière dans un fichier de configuration, etc.)

La ligne de fond dans tous les exemples le mot de passe est difficile codé quelque part.

Dans la plupart des applications que nous développons maintenant, nous utilisons plutôt l'authentification Windows ou un compte de service géré groupé. Mais pour autant que je sache, vous ne pouvez pas ajouter un conteneur Windows à un domaine, ainsi le serveur SQL ne fait pas partie du domaine Windows, donc je ne vois pas comment utiliser l'authentification Windows ici.

Alors, est-ce que quelqu'un a une alternative aux mots de passe codés en dur de cette façon?

Répondre

1

J'ai exactement le même problème. Here est la procédure la plus complète que j'ai trouvée. L'astuce consiste à utiliser gMSA.

Mais, comme JanneRantala dit à la fin, je vais avoir le même problème lorsque vous essayez d'ajouter un nouvel utilisateur dans la base de données:

Msg 15401, niveau 16, état 1, ligne 3 de Windows Utilisateur NT ou groupe 'VOTRE_DOMAIN \ gmsa $' introuvable. Vérifiez le nom à nouveau.

+1

Merci. Je lis aussi à propos de la GMSA mais je ne peux pas comprendre complètement comment l'authentification fonctionne. Un problème similaire serait avec l'authentification Windows avec le serveur IIS. Espérons que la documentation plus pertinente évoluera au fur et à mesure que cette technologie évolue dans l'environnement Windows. – IProgrammer

0

Voici une procédure pas à pas pour le faire fonctionner. Cela ne fonctionnera pas si votre SQL est également exécuté dans un conteneur puisque le serveur SQL lui-même doit faire partie d'Active Directory pour pouvoir utiliser les comptes GMSA.

+2

Merci. J'ai déjà préparé celui-ci avant. Mais c'est exactement le problème que j'essaie de résoudre. Je veux que l'application entière s'exécute dans des conteneurs - à la fois SQL et IIS. – IProgrammer

+0

Si ceux-ci fonctionnent dans des conteneurs différents, cela ne sera jamais possible. Si elles fonctionnent dans un conteneur unique, il y a probablement un moyen de contourner le problème. Aussi, vous n'avez pas besoin de coder en dur dans le conteneur des données si c'est votre principale préoccupation, vous pouvez passer des secrets à travers les variables d'environnement lorsque vous démarrez le conteneur –

+0

Merci GSA.Après avoir lu votre commentaire a fait quelques lectures supplémentaires et semble que ce pourrait être un bon moyen d'aller de l'avant: https://www.ctl.io/developers/blog/post/tutorial-protecting-sensitive-info-docker – IProgrammer

1

L'authentification Windows est automatiquement activée dans les conteneurs Windocks SQL Server. Voir here pour plus de détails. Les conteneurs SQL Server créés dans Windocks sont des instances nommées SQL Server créées automatiquement à partir du service SQL par défaut déjà installé sur Windows Server (2012 R2 ou 2016). Tous les comptes Windows de l'instance par défaut sont automatiquement activés dans les instances de conteneur.