[英]Azure AD B2C vulnerable to Open Redirect?
我正在使用 OWIN 和 OpenId 使用 Azure AD B2C 對我的 Web 應用程序的用戶進行身份驗證,Startup.Auth.cs 具有如下代碼:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
MetadataAddress = string.Format(AadInstance, Tenant, policy),
AuthenticationType = policy,
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifica....
在注銷時,它會像這樣導致重定向到 postLogoutRedirectUrl
登出后重定向 URI 存在於門戶的重定向 URI 中。
如果我停止瀏覽器並將地址欄中的 post logout uri 更改為 https%3A%2F%2Fevil.com%2F,即使此 url https://evil.com/不在允許的重定向中,重定向也會正確發生里。
為什么 AD B2C 不停止重定向? 這不是對漏洞開放嗎?
使用 Azure AD B2C 登錄時,B2C 服務會向“redirect_uri”(應用)發送一個令牌。 由於令牌需要保持安全,B2C 服務要求您將應將令牌發送到的 URL 列入白名單。
當您退出時,B2C 服務不會將任何安全信息傳輸回應用程序。 因此,即使用戶被重定向到惡意站點,也不會丟失任何安全內容。
您可以更改此行為以強制 Azure AD B2C 僅在有效 ID 令牌作為注銷請求中的參數傳入時才處理注銷重定向。 要讓 B2C 自動包含 ID 令牌並檢查其是否存在,只需在 Azure 門戶中編輯您的登錄/注冊策略,即:
或者,如果您使用自定義策略,您可以將SingleSignOn
元素添加到UserJourneyBehaviors
部分,並將EnforceIdTokenHintOnLogout
設置為 true,即:
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="true" />
</UserJourneyBehaviors>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.