小编use*_*978的帖子

带有ACS身份验证的Azure开发中的跨域Cookie

嗨,我正在Azure上开发两个Web服务,分别是“ domain1.azurewebsite.net”和“ domain2.azurewebsite.net”。我已经在同一Active Directory下的两个服务中实施了ACS身份验证。现在,我需要通过domain1.azurewebsite.net登录并与domain2.azurewebsite.net共享cookie(包含auth令牌),以便可以访问domain1中domain2的数据服务。

我在网上遵循了建议,该建议设置了cookie domain =“。azurewebsite.net”。我希望此类Cookie被所有子域共享,即“ * .azurewebsite.net”,以便可以实现跨域用途。如下所示在web.config中完成设置

<system.identityModel.services>
 <federationConfiguration>
  <cookieHandler requireSsl="false"
                 domain=".azurewebsites.net"
                 hideFromScript="false"
                 persistentSessionLifetime="0:30:0" />
  <wsFederation passiveRedirectEnabled="true"
            issuer="https://focusns.accesscontrol.windows.net/v2/wsfederation" 
                realm="urn:Focusns" 
                requireHttps="false"
                persistentCookiesOnPassiveRedirects="true" />
 </federationConfiguration>
</system.identityModel.services>
Run Code Online (Sandbox Code Playgroud)

为了启用跨域请求,我使用了CORS,并且已经按照如下所示从“ domain2.azurewebsite.net”正确设置了响应头:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://domain1.azurewebsites.net
Run Code Online (Sandbox Code Playgroud)

但是,我的问题是,登录domain1.azurewebsite.net时未附加具有“ .azurewebsite.net”域的cookie。当我使用Chrome,Opera,FF时,当我检查Cookie时,甚至看不到它们。但是我确实在IE11中看到了cookie,在其中一切正常。我在链接浏览器安全手册第2部分中发现了不同浏览器之间的差异,并且我怀疑原因是IE不支持主机范围的cookie。

无论如何,有人知道我该如何解决这个问题?我需要它在Chrome,FF等环境中正常工作。

authentication cookies cross-domain azure acs

5
推荐指数
1
解决办法
1335
查看次数

标签 统计

acs ×1

authentication ×1

azure ×1

cookies ×1

cross-domain ×1