解决 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
長按二維碼獲取我的最新技術分享
喜歡本篇內容請點個在看
總結
以上是生活随笔為你收集整理的解决 Azure AD 在 Azure Front Door 下登录失败的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 开源导入导出库Magicodes.IE
- 下一篇: Linux中作业控制命令
