连接Azure Active Directory时报ERR_SSL_PROTOCOL_ERROR如何解决
问题根因
你遇到的ERR_SSL_PROTOCOL_ERROR核心原因是重定向URI的端口配置不匹配:
- 本地ASP.NET应用实际绑定的HTTPS端口是44368
- 但web.config里配置的redirectUri、Azure门户注册的回调URI都是44347
- Azure AD验证完成后会把请求跳转到44347端口,但你本地并没有服务在44347端口监听HTTPS请求,因此触发SSL协议错误
解决方案(二选一即可)
方案1:适配Azure已配置的44347端口(无需修改Azure门户配置)
- 修改项目根目录下
.vs/[项目名]/config/applicationhost.config的绑定配置,将HTTPS端口从44368改为44347:
<bindings> <binding protocol="https" bindingInformation="*:44347:localhost" /> <binding protocol="http" bindingInformation="*:53016:localhost" /> </bindings>
- 确认web.config中的redirectUri保持为
https://localhost:44347/login/oauth2/code/,和Azure门户配置一致即可
方案2:保留本地现有44368端口(需要调整Azure配置)
- 修改web.config中的redirectUri值为你的实际运行地址:
<add key="redirectUri" value="https://localhost:44368/login/oauth2/code/" />
- 登录Azure门户,进入你的AD应用注册的「身份验证」页面,将
https://localhost:44368/login/oauth2/code/新增到Web类型的重定向URI列表中
关于是否改用HTTP的说明
不建议改用HTTP,OAuth2.0规范要求回调地址必须使用HTTPS,仅localhost本地开发场景豁免HTTP限制,但使用HTTPS可以避免后续部署到生产环境时出现适配问题。你当前的错误和HTTP/HTTPS协议选择无关,不需要调整协议。
额外注意
你贴出的SignIn登录代码没有问题,AuthenticationProperties中配置的RedirectUri = "/"是登录完成后跳转回站点根路径的配置,和Azure AD的回调URI不冲突,无需修改。
内容的提问来源于stack exchange,提问作者Anjali
相关产品推荐
相关产品推荐

