Laden...

Templates von der MSCA aus einer Domäne abrufen

Erstellt von Ramokthan vor 4 Jahren Letzter Beitrag vor 4 Jahren 925 Views
R
Ramokthan Themenstarter:in
23 Beiträge seit 2012
vor 4 Jahren
Templates von der MSCA aus einer Domäne abrufen

Hallo auch,

Ich komme mal wieder mit einer sehr spezifischen frage die nichtmal stundenlanges Googlen für mich lichten konnte, mangels existierender Dokumentation oder weil das vll. sonst keiner macht.

Thema:
Kurz geht es darum die Templates von der MSCA in einer Domäne abzurufen und aufzulisten um sie dann im zweiten schritt dem User auf einer Oberfläche anbieten zu können.

Setup:
Die MSCA funktionert schon seit mehreren Monaten tadellos und man kann sich jederzeit ein Zertifikat holen sofern man den Templatenamen weiß.

Ziel:
Nun möchte ich aber den "Hardcode" entfernen wo ich praktisch den Templatenamen eingetragen habe und diesen mit einer Auswahl ersetzen die automatisch mit den verfügbaren Templates aus der CA befüllt wird.

Aktueller Stand:
Ich habe bereits erfolgreich eine Verbindung zur MSCA aufbauen können und Templates abrufen können. (Berechtigte Frage: Wozu frage ich dann hier überhaupt ?)
Das Problem ist allerdings dass auf der CA gut 30 templates konfiguriert sind, wovon allerdings nur 2 wirklich wichtig sind.

Beim abruf der Templates von der CA werden mir allerdings nur 4 Templates angezeigt, und die Wichtigen sind nicht dabei.

Jetzt wären praktisch die Fragen: Warum ist das so? Müssten die Templates eine bestimmte Konfiguration aufweisen um aufgelistet zu werden? Wenn ja, welche? Weiß das überhaupt jemand und wo könnte man das nachschlagen?

CodeSnippet wie ich vorgehe:

            IX509EnrollmentPolicyServer policyServer = new CX509EnrollmentPolicyWebService();
                policyServer.Initialize(
                cp,
                null,
                CERTENROLLLib.X509EnrollmentAuthFlags.X509AuthKerberos,
                true,
                X509CertificateEnrollmentContext.ContextUser
                );
                policyServer.SetCredential(0, CERTENROLLLib.X509EnrollmentAuthFlags.X509AuthKerberos, "", "");
                policyServer.LoadPolicy(X509EnrollmentPolicyLoadOption.LoadOptionReload);
                Console.WriteLine(policyServer.GetPolicyServerId());

                IX509CertificateTemplates x1 =  policyServer.GetTemplates();
                foreach (IX509CertificateTemplate x in x1)
                {
                    Console.WriteLine(x.get_Property(EnrollmentTemplateProperty.TemplatePropCommonName) + " " + x.get_Property(EnrollmentTemplateProperty.TemplatePropEnrollmentFlags));
                }

Nochmal als Ergänzung: Die wichtigen nicht aufgelisteten Templates sind korrekt konfiguriert sodass ich darüber Zertifikate bekomme. Also kann ich diese nur nicht in der Auflistung sehen, aber sie funktionieren wenn ich ein CR damit mache.

In den credentials stehen auch gültige Daten drin, ich habe diese natürlich entfernt, seltsamerweise bekomme ich aber auch die Liste aus den 4 Templates wenn ich keine oder falsche credentials angebe.

Vielen Dank falls da jemand helfen kann. 😃