首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS PreFlight未发送凭据,服务器要拒绝未经身份验证的用户

CORS PreFlight未发送凭据,服务器要拒绝未经身份验证的用户
EN

Stack Overflow用户
提问于 2016-08-24 03:41:45
回答 2查看 605关注 0票数 1

场景

IIS IIS服务器。不是.Net网络服务。POSTing到Webservice。

以跨域方式连接到.Net服务的web应用程序。

要求

with服务器需要使用经过身份验证的active directory用户进行单点登录。

飞行前OPTIONS测试接受经过身份验证的请求是可以接受的,但任何其他请求(包括OPTIONS测试后的POST )必须需要经过身份验证的用户。

我所处的位置:

我有一个成功的CORS跨域调用在web应用程序和web服务器之间工作。我可以清楚地看到选项呼叫工作,然后是后续的呼叫工作。

问题:

OPTIONS调用不发送凭据。为了解决这个问题,我们允许网站级别的匿名用户。否则,我们会得到一个401未经授权的错误。

然而,一旦我们这样做了,帖子就不再需要身份验证了。事实上,all服务器日志显示证书根本不会在post中发送。这是不可接受的。

我需要一种方法来(a)强制OPTIONS调用发送Active Directory凭据,或者(b) way服务器必须拒绝所有未经身份验证的非OPTIONS请求。

首选项:

对于解决方案路径(a),我完全满足它的要求。

对于解决方案路径(b),首选IIS设置或web.config设置。we服务器是用python编写的,但我想我们可以创建一个c# we服务器代码单元,它将调用在服务器上执行实际工作的python代码。

想法?

EN

回答 2

Stack Overflow用户

发布于 2016-08-24 11:09:31

引用问题中的要求:

我需要一种方法来(a)强制OPTIONS调用发送Active Directory凭据,或者(b) way服务器必须拒绝所有未经验证的非OPTIONS请求。

没有办法强制浏览器在OPTIONS调用中发送凭据。浏览器需要在所有OPTIONS印前检查请求中省略凭据。

请参阅Fetch规范的CORS-preflight fetch部分中的算法的第一步,其中说:

要使用请求执行CORS-印前检查获取,请运行以下步骤:

  1. 让preflight是一个新的request,其方法是OPTIONS,url是请求的当前url,发起人是请求的发起人,类型是请求的类型,目的地是请求的目的地,来源是请求的来源,引用人是请求的引用人,引用人策略是请求的引用人策略。

每个request还带有一个credentials mode

请求具有关联的凭据模式,该模式为"omit“、"same-origin”或"include“。除非另有说明,否则它是"omit“。

因为上面引用的CORS印前检查算法的第一步没有为OPTIONS请求的凭证模式指定任何值,所以浏览器必须对这些请求使用默认的"omit“。

鉴于此,您将无法在客户端(浏览器)找到任何方法来解决此问题,所以我猜您需要在服务器端修复它。

票数 1
EN

Stack Overflow用户

发布于 2016-08-24 22:45:22

这不是我想要的答案,但对于一些人来说,这是一个可以解决问题的答案。

如果你正在遭受CORS的重创,而你只是在尝试做一个内部网应用程序,那么有一种方法可以关闭CORS。

可以设置组策略来做到这一点。

代码语言:javascript
复制
Computer Configuration 
-> Administrative Templates 
   -> Windows Components
      -> Internet Explorer
         -> Internet Control Panel
            -> Security Page
               -> Intranet Zone  (and/or Trusted Sites Zone, depending)
                  -> Access data sources across domains  
                        (set to Enabled.)

你需要做系统管理员的任务,设置策略,确保它到达本地机器,等等。我对细节不够精通,无法写出这一部分。抱歉的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39109446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档