2017-02-22 1 views
4

Diese Seite PHP auf IIS 7.5 und den Zugriff auf die Website beschränkt wird über die web.config zu einer Active Directory-Gruppe ausgeführt wird, wie folgt:anonymen Zugriff zulassen, in web.config auf bestimmte URL

<security> 
    <authorization> 
     <remove users="*" roles="" verbs="" /> 
     <add accessType="Allow" roles="DOMAIN\AD-GROUP" /> 
    </authorization> 
</security> 

Das einzige URL-Rewriting, das durchgeführt wird, besteht darin, die meisten URLs an index.php zu senden, und CodeIgniter behandelt danach das Routing.

Es gibt jedoch ein bestimmtes URL-Muster, das Benutzern angezeigt werden muss, die sich nicht in dieser bestimmten Active Directory-Gruppe befinden. Es ist keine Datei, von der ich glaube, dass das <location>-Tag verwendet wird; Es muss auf der URL basieren.

Zusätzlicher Kontext: Dies ist für ein URL-Muster in einer einzelnen Seite/AngularJS-Anwendung. Ein Beispiel: In einer Projektverwaltungsanwendung können Benutzer der App Aufgaben erstellen, Dateien hochladen und Notizen veröffentlichen (z. B. http://domain/#/project/1234/tasks). Alle diese Benutzer befinden sich in der Gruppe AD-GROUP. Für jedes Projekt gibt es ein Deckblatt für das Projekt, das an Nicht-Benutzer innerhalb der Organisation ausgegeben werden kann (http://domain/#/project/1234/public). Sie werden nicht in dieser spezifischen AD-Gruppe sein, aber sie müssen diese Seite anzeigen.

Ist dies in der web.config möglich, da es auf dem Hash in der URL basiert? Wenn nicht, was ist eine alternative Möglichkeit, basierend auf einer AD-Gruppe, wenn nicht der web.config, zu beschränken?

Antwort

1

Ich denke, dass <location> ist immer noch der Weg zu gehen. Entsprechend der Dokumentation unter https://www.iis.net/learn/get-started/planning-your-iis-architecture/deep-dive-into-iis-configuration-with-iis-7-and-iis-8 Pfad möglicherweise nicht nur lokale Dateien

Das Hauptattribut auf Standorttags ist "Pfad". Die Werte können sein:

...

  • "Site-Name/application/vdir": Ein spezielles virtuelles Verzeichnis einer bestimmten Anwendung einer bestimmten Website.
+0

Ich habe es nicht geschafft, dies zu arbeiten. Jeder Versuch, eine Regex als Pfad einzufügen, führt zu einem Fehler bei ungültigen Zeichen. –

+0

@ MelissaAvery-Weir, ja dies ist nicht für den mit RegExp übereinstimmenden Pfad konzipiert. Wenn Sie in Ihren URLs kein festes Präfix angeben können, ist die nächst einfachste Lösung, [URL Rewrite module] (https://www.iis.net/downloads/microsoft/url-rewrite) zu installieren und zu verwenden Ordnen Sie alle Ihre URLs einem Präfix-physischen Ordner zu und konfigurieren Sie 'location' für diesen Ordner. – SergGr

+0

Alle eingehenden URLs werden bereits einer "index.php" -Datei zugeordnet, damit CodeIgniter das Routing steuern kann. Weitere Untersuchungen deuten darauf hin, dass dies noch weniger möglich ist, als ich es mir erhofft hatte: Die URL, die die Sicherheitsausnahme benötigt, befindet sich im Hash-Teil der URL (für AngularJS). Ich glaube nicht einmal, dass Hashes es auf den Server schaffen; Sie können keine URL-Umschreibung für sie vornehmen. –

Verwandte Themen