OKTA SSO 重定向:获取 HTTP 错误 405.0 - 方法不允许

OKTA SSO redirection : Getting HTTP Error 405.0 - Method Not Allowed

我正在使用 OKTA 作为 SSO 功能的 Idp。我在 OKTA 中添加了一个应用程序并定义了以下设置:

单点登录 URL 和受众 URI(SP 实体 ID):http://localhost/KentorBeginner/(甚至尝试删除尾部斜杠)

在浏览 OKTA SSO Url(与上面不同)时,okta 重定向到我的 IIS 配置应用程序 (KentorBeginner),但我收到 HTTP 错误 405.0 - 方法不允许。 您要查找的页面无法显示,因为使用了无效的方法(HTTP 动词)。

请找到以下屏幕截图以供参考。Direct-browse

谢谢。

此致, 拉维·卡拉瓦迪亚

实际上,问题在于将请求发布到 html 文件。

IIS 将 html 文件视为静态文件,只允许它们使用 GET 和 HEAD 动词,因此当发布表单时,我收到“405 方法不允许...无法显示,因为方法无效(HTTP 动词)正在使用”错误。

我们需要配置您用来处理 html 文件而不是静态文件处理程序的任何语言。

所以我在下面添加了使用不同处理程序处理 html 文件的条目。

在 System.WebServer 的处理程序标签下。

下面是我的 web.config 片段。

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <remove name="ISAPI-dll" />
      <remove name="StaticFile" />
      <remove name="WebDAV" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Script" />
      <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Either" requireAccess="Execute" allowPathInfo="true" preCondition="bitness32" />
      <add name="html" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="None" />
</handlers>
<defaultDocument enabled="true">
      <files>
        <clear />
        <add value="Hello.html" />
      </files>
    </defaultDocument>
    <security>
      <requestFiltering>
        <verbs>
          <add verb="POST" allowed="true" />
        </verbs>
        <fileExtensions>
          <add fileExtension=".html" allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
</system.webServer>

谢谢。

此致, 拉维·卡拉瓦迪亚

我在 Firefox 上遇到这个错误是因为我使用的是 Facebook 容器扩展。在 about:addons 中禁用 Facebook 容器后,我可以正常登录 - 而不会出现“方法不允许”错误