解决 Azure AD 在 Azure Front Door 下登录失败的问题

点击上方关注“汪宇杰博客” ^_^

导语

最近我给博客系统加上了 Azure Front Door,集齐了12项 Azure 服务打算召唤神龙。没想到刚上线,Azure AD 的单点登录就爆了。

OIDC 跳转错误

当我尝试登录博客后台的时候,OIDC的跳转URL突然变成了 https://ediwang-web.azurewebsites.net/signin-oidc 这是 App Service 的默认域名,而不是我的自定义域名,域名不匹配导致登录失败。

正常情况下,OIDC应该跳转到 https://edi.wang/signin-oidc 

究其原因是由于 Azure Front Door 只是对符合规则的请求流量做了单纯的转发,当流量打到 App Service 上的时候,App Service 看到的 host header 实际为 *.azurewebsites.net,它会继续把这个 host header 传递给 Azure AD 用作构建 OIDC URL,而该 host header 已经不是用户实际访问的域名了,因此 URL 会构建错误。

解决方法

既然原因出在不正确的 host header 上,那么我们如何给 Azure Front Door 分配一个正确的 host header 呢?

做法非常简单。默认情况下,当我们向 Azure Front Door 的 backend pool 里添加一个 App Service 网站的时候,Backend host header 字段会自动填充为 App Service 的域名。

像我这种刚上手的小白肯定不敢去改这个默认配置。

其描述为:

The host header value sent to the backend with each request. If you leave this blank, the request hostname determines this value. Azure services, such as Web Apps, Blob Storage, and Cloud services, require this host header value to match the target host name by default.

所以,我们只需要将其留空即可。对于已经添加完成的 Backend pool,我们也可以修改这个设置。

点击 Backend pools 中需要编辑的条目,例如我的 appservice-edi-wang

在 BACKENDS 下点击需要修改的条目

删除 Backend host header 中的内容

保存设置后,稍等几分钟,Azure AD 单点登录又能正常工作了!

汪宇杰博客

.NET | Azure | 微软MVP

长按二维码获取我的最新技术分享

喜欢本篇内容请点个在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值