System.Webserver同时重写并保护

时间:2016-07-21 02:20:57

标签: asp.net security iis membership-provider

我通过IIS向最终用户提供Confluence,这是web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering allowDoubleEscaping="True" />
        </security>
        <rewrite>
            <rules>
                <rule name="RewriteUserFriendlyURL" stopProcessing="false">
                    <match url="\+" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="{UrlDecode:{REQUEST_URI}}" />
                </rule>
                <rule name="inbound" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8090/{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <handlers>
            <remove name="WebServiceHandlerFactory-ISAPI-2.0-64" />
            <remove name="WebServiceHandlerFactory-ISAPI-2.0" />
            <remove name="PageHandlerFactory-ISAPI-2.0" />
            <remove name="PageHandlerFactory-ISAPI-2.0-64" />
            <remove name="PageHandlerFactory-Integrated" />
            <remove name="WebServiceHandlerFactory-Integrated" />
            <remove name="SimpleHandlerFactory-ISAPI-2.0-64" />
            <remove name="SimpleHandlerFactory-ISAPI-2.0" />
            <remove name="SimpleHandlerFactory-Integrated" />
            <remove name="CGI-exe" />
            <remove name="ISAPI-dll" />
        </handlers>
    </system.webServer>
</configuration>

Confluence在端口8090上运行它自己的进程 我想要的是以某种方式将汇合作为子文件夹添加到另一个站点,所以它转到:

site.com/confluence

site.com是ASP.NET网站。我想要密码保护/合并文件夹。

因此,如果用户登录到site.com(ASP.NET成员资格提供程序) - 他们可以访问/ confluence文件夹。

这可能吗?应该怎么做?

1 个答案:

答案 0 :(得分:0)

您要求的是IIS反向代理的委派身份验证。

这在技术上是可行的。

你不想这样做。因为您需要使用ASP.Net身份验证来查看网站。但是,您还需要使用汇合登录登录。

您实际上想要使用

  • IIS反向代理/应用程序请求路由(这会将Confluence网站放在“子文件夹”中)
  • 与ASP.Net成员资格的单点登录集成。

https://confluence.atlassian.com/kb/single-sign-on-integration-with-the-atlassian-stack-794495126.html

使用此解决方案,Confluence使用Crowd使用OpenID连接到ASP.Net。

我建议使用IdentityServer将您的ASP.Net成员资格提供程序公开给OpenID api。