加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – MVC5发布到Azure,因为云服务在AD登录后重定向到local

发布时间:2020-12-16 07:01:58 所属栏目:asp.Net 来源:网络整理
导读:我们使用Azure Active Directory身份验证开发了一个MVC5应用程序.当作为Web App部署到Azure时,一切都很完美.但是,我们已被要求部署为云服务. 创建了一个新的云服务项目,将MVC项目添加为角色,为云服务添加了2个端点HTTP / HTTPS.创建自签名证书并应用于HTTPS
我们使用Azure Active Directory身份验证开发了一个MVC5应用程序.当作为Web App部署到Azure时,一切都很完美.但是,我们已被要求部署为云服务.

创建了一个新的云服务项目,将MVC项目添加为角色,为云服务添加了2个端点HTTP / HTTPS.创建自签名证书并应用于HTTPS端点.

本地调试

在本地调试IIS Express和Azure Compute Emulator中,一切运行良好.
初始请求指向http://localhost:7390(IISe http端口).
重定向到Microsoft AD登录,然后重定向到https://localhost:4430(IISe https端口),并在自签名证书的预期证书警告后正确显示主页.

Azure云服务

应用程序已作为云服务部署推送到Azure.
自签名证书已上载到Azure.

Azure Active Directory已为应用添加了一个条目(使用云服务发布URL,如下所示)

登录URL:http://xxxxxxxxtest.cloudapp.net/

APP ID URI:http://xxxxxxxxtest.cloudapp.net/

回复ULR:http://xxxxxxxxtest.cloudapp.net/

当访问站点http://xxxxxxxxtest.cloudapp.net/时,重定向到Microsoft AD signin按预期发生,但在成功登录后,我们将重定向到https://localhost:4430,就像它在本地测试环境中运行一样.

完全坚持这一个!

TIA
马丁.

解决方法

我已经解决了这个问题.

Azure Active Directory /应用程序中的APP ID URI与以下键中web.config中定义的值不匹配

> ida:境界
> ida:AudienceUri

在Azure中导航到Active Directory / Applications.
选择应用程序并导航到配置
获取APP ID URI值.对于我的测试应用程序,我将其设置为

http://xxxxxxxxtest.cloudapp.net/WebRole

编辑web.config

?ida:Realm和ida:AudienceUri值必须与APP ID URI匹配

?领域值必须匹配APP ID URI

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="ida:FederationMetadataLocation" value="https://login.windows.net/yyyyyyyy.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml" />
    **<add key="ida:Realm" value="http://xxxxxxxxtest.cloudapp.net/WebRole" />**
    **<add key="ida:AudienceUri" value="http://xxxxxxxxtest.cloudapp.net/WebRole"/>**
</appSettings>

<system.identityModel.services>
    <federationConfiguration>
      <cookieHandler requireSsl="false" />
      <wsFederation passiveRedirectEnabled="true" issuer="https://login.windows.net/yyyyyyyy.onmicrosoft.com/wsfed" 
                    **realm="http://xxxxxxxxtest.cloudapp.net/WebRole"** requireHttps="true" />
    </federationConfiguration>
</system.identityModel.services>

确保通过Microsoft Active Directory登录后,这些匹配的Web应用程序正确运行.

如果URI不匹配,似乎重定向到https://localhost:44300是一个后备.

在“开发服务器”SSL URL的MVC属性中定义的本地开发的值(可以通过在解决方案中突出显示MVC项目并按F4来访问)随应用程序一起发布到云服务,如果一切都不好则使用遵循AD身份验证.我通过将SSL URL更改为localhost:44313来确认这一点,打破了配置,它确实尝试重定向到44313.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读