Beliebt

Docker-Authentifizierung mit Active Directory mit remote verbundenem IIS - Active Directory, Docker

Ich habe einen IIS in einem Container eingerichtet und kann den IIS des Hosts verwenden, um eine Verbindung zu diesem "Server" herzustellen.

Nächster Schritt, ich muss eine Webanwendung im Inneren hosten (ich habe es erfolgreich gemacht, wenn das Web nicht mit AD zusammenhängt)

Der Fall ist, dass unsere Webanwendungen mithilfe unserer Anzeigenkonten authentifiziert werden mĂĽssen. Wenn ich jetzt das Web im Container starte, obwohl ich das richtige Konto + pw eingebe, erhalte ich es trotzdem

401 - Nicht autorisiert: Der Zugriff wird aufgrund ungĂĽltiger Anmeldeinformationen verweigert.

Also ... wie benutzt man AD in einem Container?

Wie gesagt von https://blogs.msdn.microsoft.com/containerstuff/2017/01/30/create-a-container-with-active-directory-support/

Ich bin auf gMSA gestoĂźen

  1. Ich habe mich beim AD-Server angemeldet und Folgendes ausgefĂĽhrt:

    New-ADServiceAccount -Name ABC -PrincipalsAllowedToRetrieveManagedPassword ABC-Servers –DNSHostName ABC.domain.com
    
  2. Ich bin mit Docker auf den Server gegangen und habe Folgendes ausgefĂĽhrt:

    Import-Module ./CredentialSpec.psm1
    New-CredentialSpec -Name ABC -AccountName ABC
    
  3. Starten Sie einen neuen Container mit

    --security-opt
    

und

    ABC.json

Aber am Ende muss ich mich immer noch authentifizieren, und egal, was ich geschrieben habe, alle 401 ...

Ăśbrigens, nltest / parentdomain zeigt mir den Anzeigenservernamen

Antworten:

1 fĂĽr Antwort â„– 1

Ich habe es gelöst Ich habe den Setspn- und -h-Teil verpasst

Ein Teil dieser Lösung bezieht sich auf folgende Links: https://blogs.msdn.microsoft.com/containerstuff/2017/07/31/getting-iis-win-auth-to-work-in-a-container/

https://blogs.msdn.microsoft.com/containerstuff/2017/01/30/create-a-container-with-active-directory-support/

Der Hostname des Hostcomputers = abcHost (bestätigen Sie durch Ausführen von hostname in cmd)

Zum einen, wie ich schon sagte: 1. Melden Sie sich beim AD-Server an und fĂĽhren Sie Folgendes aus:

New-ADServiceAccount -Name accountABC -PrincipalsAllowedToRetrieveManagedPassword ABC-Servers –DNSHostName abcHost.domain.com
  1. Gehen Sie zu dem Server, auf dem Docker installiert ist (Host-Computer), und fĂĽhren Sie Folgendes aus: Import-Modul ./CredentialSpec.psm1 New-CredentialSpec -Name accountABC -AccountName accountABC

Also haben wir jetzt ein Dienstkonto: ABC Der nächste Schritt besteht darin, den Computernamen mit dem Dienstkonto zu verknüpfen. Führen Sie daher setspn auf dem Anzeigenserver aus:

setspn -c -s HTTP/abcHost domianaccountABC

Danach mĂĽssen wir die Option -h in Docker run hinzufĂĽgen, damit der Container mit dem Dienstkonto ausgefĂĽhrt wird. zusammen mit dem zuvor erstellten gMSA-Konto lautet der Befehl:

Docker run -it --name accountABC -h accountABC -v <a directory> --security-opt "credentialspec=file://accountABC.json" myImage

Wählen Sie dann für IIS-Anwendungen diesen "Server oder Container" im Bereich "Verbindungen"> "Funktionsdelegration" aus und setzen Sie "Authentifizierung - ETWAS" auf "Lesen / Schreiben"

Dann ist es geschafft