Otentikasi Docker dengan Active Directory dengan IIS yang terhubung jarak jauh

2

Saya telah menyiapkan IIS di dalam sebuah wadah dan saya dapat menggunakan IIS host untuk terhubung ke "server" itu.

Langkah selanjutnya, saya perlu meng-host aplikasi web di dalamnya (Saya telah berhasil melakukannya jika web tidak terkait dengan AD)

Masalahnya adalah, aplikasi web kami perlu diautenikasi menggunakan akun iklan kami dan sekarang, jika saya memulai web di dalam wadah, bahkan saya mengetik akun yang benar + pw, masih memberi saya

401 - Tidak Sah: Akses ditolak karena kredensial tidak valid.

Jadi ... bagaimana cara menggunakan AD di dalam wadah?

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

Saya telah menemukan gMSA

  1. Saya masuk ke server AD dan menjalankan:

    New-ADServiceAccount -Name ABC -PrincipalsAllowedToRetrieveManagedPassword ABC-Servers –DNSHostName ABC.domain.com
    
  2. Saya pergi ke server dengan Docker diinstal dan dijalankan:

    Import-Module ./CredentialSpec.psm1
    New-CredentialSpec -Name ABC -AccountName ABC
    
  3. mulai wadah baru dengan

    --security-opt 
    

dan

    ABC.json

Tetapi pada akhirnya, itu masih mengharuskan saya untuk mengotentikasi diri saya dan tidak peduli apa yang saya ketik, semua 401 ...

btw, nltest / parentdomain menunjukkan kepada saya nama server iklan

Dekat
sumber

Jawaban:

1

Saya sudah menyelesaikannya. Saya telah melewatkan bagian setspn dan -h

Bagian dari solusi ini terkait dengan tautan ini: 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/

Nama host dari mesin host = abcHost (konfirmasikan dengan menjalankan nama host di cmd)

Untuk menyelesaikannya, pertama-tama, seperti yang saya sebutkan: 1. Masuk ke server AD dan jalankan:

New-ADServiceAccount -Name accountABC -PrincipalsAllowedToRetrieveManagedPassword ABC-Servers –DNSHostName abcHost.domain.com
  1. Pergi ke server dengan Docker diinstal (mesin host) dan jalankan: Import-Module ./CredentialSpec.psm1 New-CredentialSpec -Name accountABC -AccountName accountABC

Jadi, kami sekarang memiliki akun layanan: ABC Dan langkah selanjutnya adalah menautkan nama mesin dengan akun layanan, oleh karena itu jalankan setspn di server iklan:

setspn -c -s HTTP/abcHost domian\accountABC

Setelah itu, untuk menjalankan wadah dengan akun layanan, kita perlu menambahkan opsi -h di Docker run. bersama dengan akun gMSA yang dibuat sebelumnya, perintahnya adalah:

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

Kemudian, untuk aplikasi IIS, yang memilih "server atau wadah" di "Connections" Panel> Delegration Fitur> atur semua "Otentikasi - SESUATU" ke Baca / Tulis

Kemudian selesai

Dekat
sumber