我有一個客戶端要求使用自定義角色/成員身份架構的基於集成身份驗證的解決方案。我最初的計劃是使用基於聲明的身份驗證機制和集成身份驗證。但是,我最初的研究並未提供大量有用的信息。基於聲明的身份驗證,帶有活動目錄,沒有ADFS
至此,我有一個ASP.NET(不是核心,也不是owin)WebAPI應用程序,它具有角度SPA(asp.net)Web應用程序使用的api動作。我試圖授權使用集成身份驗證的API調用。我最初的工作主要集中在一個自定義的AuthorizationAttribute和ClaimsAuthenticationManager實現上。然而,隨着我進一步深入,我開始遇到自定義ClaimsAuthenticationManager的問題,在這一點上,我不確定這是適當的路線。
所以我的問題對你們來說,你們至少能給我一些關於如何做到這一點的想法嗎?我不需要代碼中的部分幫助,只需要找出合適的「堆棧」即可。
唯一真正的需求是WebAPI調用可以被授權,通過自定義屬性傳遞聲明的名稱來授權,但聲明不在AD中,即使它使用Windows身份驗證,聲明本身也會來自一個數據庫。
謝謝大家提前!
爲什麼你需要自定義AuthorizationAttribute?通常是相反的 - 你用默認的AuthorizationAttribute裝飾你的控制器並確保你的認證過程確實設置了主體(HttpContext.Current.User和Thread.CurrentPrincipal)。 –
另請參閱https://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api以供參考。 –
@OndrejSvejdar最初的想法是使用一個自定義的授權屬性來修飾訪問它們所需的聲明。挑戰在於,雖然我使用Windows身份驗證,但實際的聲明/角色存儲在單獨的數據庫中,而不是存在於活動目錄中。令我困惑的是在ASP.Net WebApi2 OWIN項目中實際使用這個功能。我探討了在中間件中做它以及重寫默認的類功能。我只是不確定具體在哪裏需要集中我的努力。 – Brandon