Festlegen der AD Client-Zertifikatauthentifizierung mithilfe von DSC

0

Ich möchte die Active Directory-Clientzertifikatauthentifizierung für einen Webserver mit DSC (Desired State Configuration) auf TRUE setzen.

Ich möchte dazu das Cmdlet xWebAdministration verwenden.

Der IIS-Pfad zum Festlegen des Werts lautet: system.webServer / security / authentication / clientCertificateMappingAuthentication

Ich habe dieses Skript bereits, aber der Wert wurde nicht richtig eingestellt:

# Client Certificate Mapping Authentication should be present
        WindowsFeature ActiveDirectoryClientCertificateAuthentication
        {
            Name        = "Web-Cert-Auth"
            Ensure      = "Present"
            DependsOn   = "[WindowsFeature]IIS"
        }

        # Client Certificate Mapping Authentication should be present
        WindowsFeature Web-Client-Auth
        {
            Name    = "Web-Client-Auth"
            Ensure  = "Present"
        }

Wie kann das erreicht werden?

Patrick Peters
quelle

Antworten:

0

2 Korrekturen in meinem Skript, damit es funktioniert.

Ich habe die Installation der Web-Cert-Auth-Funktion entfernt, da Web-Cert-Auth für die Zuordnung von IIS-Zertifikaten vorgesehen ist (was ich nicht benötige). Windows Feature Web-Client-Auth ist für die AD-Client-Zertifikatzuordnung, die ich benötige.

Dann habe ich dieses Inline-Skript hinzugefügt:

# (Active Directory) Client Certificate Mapping Authentication should be enabled 
        Script EnableClientCertificateAuthentication
        {
            GetScript = {
                Return @{
                    Result = [string]$((Get-WebConfiguration -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication).enabled)
                }
            }

            TestScript = {
                If ((Get-WebConfiguration -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication).enabled) {
                    Write-Verbose "ClientCertificateAuthentication is on"
                    Return $true
                } Else {
                      Write-Verbose "ClientCertificateAuthentication is off"
                    Return $false
                }
            }

            SetScript = {
                Write-Verbose "Enabling ClientCertificateAuthentication"
                Set-WebConfigurationProperty -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication -name enabled -value true -PSPath IIS:\
            }

            DependsOn = "[WindowsFeature]Web-Client-Auth"
        }
Patrick Peters
quelle