Ich habe eine Anfrage von meinem Kunden, die ungefähr so lautet:
Dies ist eine öffentliche Website mitmancheInformationen für Mitarbeiter der Agentur. Mein Kunde möchte auf der Startseite ein Popup haben, das nur für Mitarbeiter angezeigt wird.
Die Agentur verwendet CAC-Karten zur Authentifizierung, auf denen mehrere Zertifikate gespeichert sind. Auf internen Websites ist dies ziemlich unkompliziert: Richten Sie IIS entsprechend ein und vergleichen Sie es dann mit AD.
Da es sich jedoch um eine externe Site handelt, möchte ich mich nicht per se authentifizieren. Ich möchte, dass IIS stillschweigend nach der Existenz der CAC/Zertifikate sucht, wenn sie vorhanden sind, und dann die Popup-Logik ausführt, wenn nicht, und sie ignoriert. Der zweite Teil ist alles Codierung, aber ich muss wissen, ob IIS stillschweigend versuchen kann, nach den CAC/Zertifikaten zu suchen.
Meine ursprüngliche Idee bestand darin, die angeforderte IP mit unseren internen IP-Bereichen zu vergleichen, aber meine Server befinden sich hinter einem Load Balancer, und bis die Anforderung meine Server erreicht, verfügt sie über die IP des Load Balancers und alle Anforderungen liegen im Bereich.
Es ist eine komplexe Situation und alles, was ich bisher recherchiert habe, sagt, dass es nicht möglich ist, aber ich wollte fragen
Dank im Voraus
Antwort1
Ein Webserver kann nicht in die Smartcards der Clients „schauen“ – das istvollständigDies wird vom Webbrowser durchgeführt. Die einzige Möglichkeit, wie IIS dies beeinflussen kann, besteht darin, eine Liste mit „akzeptablen“ DNs von Zertifikatsausstellern zu senden (und ich glaube, dies ist in TLSv1.3 auch nicht mehr möglich). Aber wenn der Browser der Meinung ist, dass er eine Zertifikatsliste anzeigen muss, dannWilleeine Zertifikatsliste anzeigen.
Die meisten Websites, selbst solche, die CAC oder andere Client-Zertifikatauthentifizierung verwenden, haben eine dedizierte Anmelde-URL, die eine Zertifikatauthentifizierung erfordert, der Rest des Systems jedoch nicht. Stattdessen wird der Status „angemeldet“ über herkömmliche Cookies/Sitzungen übertragen. Dadurch kann das System mehrere verschiedene Authentifizierungsmethoden anbieten. (Ich weiß nicht, ob IIS die Zertifikatauthentifizierung pro URL unterstützt; möglicherweise müssen Sie für die „Anmeldeseite“ eine separate Subdomäne verwenden.)
Ein Beispiel ist die „Anmelden“-Seite unter https://account.cern.ch/account/
, bei der tatsächlich alles über Microsoft ADFS abgewickelt zu werden scheint.
Alternativ könnten Sie die gesamte Webanwendung auf zwei verschiedenen Subdomänen hosten: eine für den öffentlichen Zugriff, eine andere, die eine Authentifizierung erfordert. ( https://public.cyber.mil/
ist ein Beispiel, das ich kürzlich gesehen habe.)