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 容器后,我可以正常登录 - 而不会出现“方法不允许”错误
我正在使用 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 容器后,我可以正常登录 - 而不会出现“方法不允许”错误