none
verwaltete Dienstkonten / managed service accounts - Fragen über Fragen RRS feed

  • Frage

  • Hallo Leute,

    Ich habe leider seit 2008 R2 versäumt mich mit managed Service accounts zu beschäftigen.
    Dort war das meines erachtens (jetzt beim nachlesen) recht einfach gestaltet aber wenn ich mir nun 2012 anschaue mit den gruppierten Accounts habe ich so meine Verständnisprobleme.

    Ich habe bisher die beiden Serverbücher von MSPress/Thomas Joos (2008 R2 / 2012) als Quelle und die TechNet Seite hh852236 im Blick.

    http://technet.microsoft.com/en-us/library/hh852236.aspx

    Ich hoffe mir kann jemand beim ausarbeiten meiner zukünftigen best practises helfen.
    Ziel ist es vorerst für mich SQL Server Dienste zu gruppieren.

    Ich möchte also eine SQL-Gruppe bestehend aus mehreren Servern mit einem Service Account verwalten.



    Nun steht im 2012er Buch:



    New-ADServiceAccount <Name> -DNSHostName <DNS-Name des Diensts> -PrincipalsAllowedToRetrieveManagedPassword <Gruppe der Computer die das Konto nutzen> -KerberosEncryptionType RC4, AES128, AES256 -ServicePrincipalNames <Service Principal Names>




    Leider erschliesst sich mir einigs nicht. Deshalb mal der Reihe nach:


    New-ADServiceAccount SQLService <- das war einfach ;)


    -DNSHostName <Specifies the Domain Name System (DNS) host name - ist das ein echter DNS Eintrag? - wie sollte ich den nennen? FQDN -> SQLService.domain.int?>

    C:\PS>New-ADServiceAccount service1 -ServicePrincipalNames "MSSQLSVC/Machine3.corp.contoso.com" -DNSHostName service1.contoso.com

    Ist das dann jetzt der Computer bzw. die Maschine auf dem der SQL Service läuft? Sieht so aus... ;)


    -PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal> - <Gruppe der Computer die das Konto nutzen>


    Specifies the membership policy for systems which can use a group managed service account. For a service to run under a group managed service account, the system must be in the membership policy of the account. This parameter sets the msDS-GroupMSAMembership attribute of a group managed service account object. 
    This parameter should be set to the principals allowed to use this group managed service account.


    Aber wie gruppiere ich die Computer nun? Eine domänenlokale Sicherheitsgruppe im AD erstellen und dort die Computerkonten als Mitglieder? 

    -KerberosEncryptionType AES256 <- Praxistipps? Ich behaupte mal die meisten Server haben mittlerweile genug Bumms aber gibt es best practise Tipps die mir Auskunft über Unterschiede geben? Messbare Impacts 128 vs 256?


    -ServicePrincipalNames <Service Principal Names>

    Specifies the service principal names for the account. This parameter sets the ServicePrincipalNames property of the account. The LDAP display name (ldapDisplayName) for this property is servicePrincipalName. This parameter uses the following syntax to add remove, replace or clear service principal name values.

    -ServicePrincipalNames-@{Add="SQLservice\accounting.corp.contoso.com:1456"};{Remove="SQLservice\finance.corp.contoso.com:1456"}



    Beispiel aus dem TechNet


    C:\PS>New-ADServiceAccount service1 -ServicePrincipalNames "MSSQLSVC/Machine3.corp.contoso.com" -DNSHostName service1.contoso.com


    Sieht aus als würde man damit quasi auf den konkreten Dienst der Maschine zielen. Ich müsste also den SQL Dienst entsprechend eintragen den ich auf dem Server benutze?!


    Überhaupt wäre ich interessiert was ihr mir aus euren praktischen Erfahrungen noch berichten könnt. Tricks, Tipps etc. ;)


    Enrico

    Samstag, 29. Dezember 2012 21:07

Antworten

Alle Antworten

  • Hier solten alle wichtigen Informationen dazu zusammengefasst sein, inkl. Beispiele:

    http://blogs.technet.com/b/bruce_adamczak/archive/2012/10/21/follow-me-and-learn-windows-server-2012-group-managed-service-accounts.aspx

    Weitere Hintergrundinformationen findest Du u.a. hier:

    http://blogs.technet.com/b/askpfeplat/archive/2012/12/17/windows-server-2012-group-managed-service-accounts.aspx

    --

    Tobias Redelberger
    StarNET Services (HomeOffice)
    Frankfurter Allee 193
    D-10365 Berlin
    Tel: +49 (30) 86 87 02 678
    Mobil: +49 (163) 84 74 421
    Sonntag, 30. Dezember 2012 09:25
  • Hi Enrico,

    wichtig hierbei ist das Verständnis, dass der gMSA als Account genutzt wird, unter dem die SQL Server Instanzen laufen. D.h. das ist auch der Accountname (etwa "Service1" oder besser etwas in der Art wie "gMSA-SQL-Grp-01"). Der DNS Name ist dann der Service Account Name, sprich etwa service1domain.tld .

    Einen guten Einstieg dazu bietet auch: http://technet.microsoft.com/en-us/library/jj128431.aspx

    Den Scope der Sicherheitsgruppe musst Du anhand Deiner Anforderungen definieren. Sollen etwa Gruppenmitglieder verschiedener Domänen aufgenommen werden, muss die Gruppe im GC auftauchen usw.

    Die Verschlüsselung hängt von der Applikation ab. Diese muss die jeweilige Kennwort und Ticket-Verschlüsselung unterstützen. Ein guter Startpunkt ist sicher die RC4 + AES128 + AES256 Kombi, nach Möglichkeit sollte kein DES mehr genutzt werden. Wie angesprochen, das hängt von der mit dem gMSA betriebenen Applikation ab.

    Die von der Applikation benötigten SPNs müssen durch den Hersteller dokumentiert sein. Oft hilft hier ein Blick in eine bestehende Installation bzw. auf dessen Service Accounts. Beim SQL Server etwa benötigst Du unter anderem die schon angesprochenen MSSQLSVC SPNs.

    Viele Grüße

    Fabian

    • Als Antwort vorgeschlagen Alex Pitulice Montag, 31. Dezember 2012 11:55
    • Als Antwort markiert Enrico Stephan Montag, 31. Dezember 2012 12:15
    Sonntag, 30. Dezember 2012 10:01
    Beantworter
  • Hallo,

    Danke für die ausführlichen Antworten. ich werde mir das die tage genauer ansehen und mich wieder melden. :)

    Montag, 31. Dezember 2012 12:15
  • Die von der Applikation benötigten SPNs müssen durch den Hersteller dokumentiert sein. Oft hilft hier ein Blick in eine bestehende Installation bzw. auf dessen Service Accounts. Beim SQL Server etwa benötigst Du unter anderem die schon angesprochenen MSSQLSVC SPNs.

    Nachdem ich nun alles gelesen habe stellt sich mir nur noch die Frage nach den SPN's da ich da für mich immer noch keine ableitbare Zusammenhänge erkennen kann wie ich die herzauber und nutze. Du schreibst Sie? Mehrzahl? Welche gibt es denn? Wo kann ich die beim SQL am schnellsten erkennen?

    Ist der MSSQLSVC ein SPN der Standard ist? Mir fehlt komplett das Wissen um diese mystischen SPNs. ;)
    Soweit ich das gelesen habe sollte es so sein.
    Das heißt wenn ich meine Hostsgruppe habe setze ich damit doch fest das nur dieser SPN auf die gMSA zugreifen kann?! Ich setze also eine konkreten Dienst auf ein gMSA.

    dsymalla geht in seinem Blogpost nicht direkt darauf ein und lässt das einfach weg.
    Ich nehme an das ich durch das weglassen beliebige Dienste auf den gMSA zugreifen lassen kann Hauptsache sie laufen auf dem Host der in der Gruppe liegt?

    Im TechNet stehen Beispiele wie:

    -ServicePrincipalNames-@{Add="SQLservice\accounting.corp.contoso.com:1456"};{Remove="SQLservice\finance.corp.contoso.com:1456"}

    In dem Beispiel verstehe ich nicht warum dort Zahlen eingefügt sind die ports sein könnten. Beim querlesen fand ich auch erschlagend viele Infos mit Dingen wie setspn, Port bei nicht TCP Verbindungen etc. to much, to complicated. ;)


    Wenn ich aus all den Quellen alles richtig verstanden habe, reicht für mein Beispiel als SPN MSSQLSVC für alle drei Maschinen folgendes aus:

    New-ADServiceAccount -Name SQLService -DNSHostName SQLService.domain.tld -PrincipalsAllowedToRetrieveManagedPassword SQLServer -ServicePrincipalNames MSSQLSVC/gruppe.domain.tld -KerberosEncryptionType 128, 256

    SPN zeigt auf die AD Gruppe der SQL Server. Ich denke damit müsste auf Kurs sein. ;)
    Anlegen des Accounts geschah zumindest fehlerfrei.










    Freitag, 4. Januar 2013 18:07
  • Hi Enrico,

    die Frage nach den SPNs hat im Kern weniger mit den MSA / gMSA zu tun, vielmehr ist das eine reine Kerberos Fragestellung.

    In aller Kürze: Du benötigst ein sogenanntes "Service Ticket", welches durch den "Ticket Granting Service" (TGS) Deines DCs ausgestellt wird. Das Service Ticket gilt, wie der Name schon sagt, für einen konkreten Dienst. In Deinem Fall möchtest Du für den Dienst "MSSQL" ein Service Ticket haben - jedoch nicht für irgend einen MSSQL Server, sondern für die Instanzen, die unter Deinem Dienst-Account laufen - sprich für die Instanzen, die mit dem gMSA betrieben werden.

    Beim SQL Server wird der SPN in der Regel selbständig registriert, sofern die Berechtigungen stimmen. Welcher SPN genutzt wird, ist in dem folgenden Blog meines Erachtens ganz gut beschrieben: http://blogs.msdn.com/b/psssql/archive/2010/03/09/what-spn-do-i-use-and-how-does-it-get-there.aspx . Das mit der Gruppe dürfte nicht funktionieren - die Anfrage des Clients an den Verzeichnisdienst bzw. an den Kerberos Ticket Granting Service (also Deinen KDC) erfolgt ja nicht gegen diese Gruppe, sondern gegen ein virtuelles Cluster Konto, eine Maschine o.ä. Der Client muß über die Applikation wissen, welchen SPN er im Verzeichnis suchen muß - und aus meiner Sicht kann das nicht mit Angabe einer Gruppe erfolgen.

    Siehe dazu auch: http://technet.microsoft.com/en-us/library/cc772815(v=ws.10).aspx

    Die "Zahlen" im Beispiel stehen für die Ports, korrekt. Je nach Applikation oder betriebenen Dienst ist diese Angabe optional.

    Viele Grüße
    Fabian

    Freitag, 4. Januar 2013 22:58
    Beantworter
  • Ich habe übers Wochenende rumexperimentiert und werde vielleicht morgen dazu kommen einen Status abzugeben.
    Nur soviel vorweg. Es funktioniert ... irgendwie. ;)
    Montag, 7. Januar 2013 11:05
  • Nach einer Weile hatte ich wieder Zeit mich mit dem Thema zu beschäftigen.
    Nachdem ich einen gMSA auf einen SQL Server bzw. dessen Dienste erfolgreich scharf geschalten habe, war nur ein weiterer dran.

    Ich habe folgenden Befehl ausgeführt

    New-ADServiceAccount -Name SQL-ServiceAccount -DNSHostName SQL-ServiceAccount.domain.tld -PrincipalsAllowedToRetrieveManagedPassword SQLServer-Group  -KerberosEncryptionType 128, 256

    + Install...Test ... true

    Darin ist also kein SPN enthalten.

    Nun habe ich die Tage einen weiteren Server aufgesetzt den ich der definierten (SQL) Server Gruppe zugefügt habe und den gMSA SQL Serverdiensten zugesprochen.
    Damit zielt
    dieser gMSA also auf die Maschinen in der Gruppe was er auch macht.
    Ich habe den neuen Server im ersten Schritt noch nicht der Gruppe zugeführt was beim einfügen des gMSA in die SQL Serverdienste ach prompt mit Fehlermeldungen über ungültige und nicht gefunden Passwörter etc. quittiert wurde.

    Wenn ich die Quellen verstanden habe könnte ich durch die Angabe konkreter SPN(s) die Zugehörigkeit weiter einschränken.
    Ich habe es noch nicht gegen getestet aber theoretisch sollte ich den gMSA auch auf weitere nicht-SQL Server Dienste auf den beiden Server Maschinen verbündeln dürfen. Hauptsache die Maschinen stehen in der Gruppe die ich dem gMSA angediehen habe.


    Montag, 11. März 2013 11:51