[英]ASP.NET WebAPI client authorization in a distributed application
我正在創建一個分布式應用程序,它將使用ASP.NET Web API來支持單頁Web應用程序(SPA)和其他潛在的本機移動應用程序平台。 我當前的體系結構使用Thinktecture Identity Server作為STS,它將為我的客戶端提供用於訪問WebAPI的授權令牌。 在后端,我將擁有持久性和業務邏輯,這些邏輯將由WCF服務與WebAPI分開的應用程序域公開。 WebAPI將調用服務層以訪問數據並在域上執行操作。
我的問題是關於授權 。 我將使用基於聲明的授權,並可以從WCF暴露的業務層中有關用戶的域數據中擴展聲明列表。 但是我應該在哪里進行授權? 在.NET 4.5中,ASP.NET現在具有一個可擴展的模型,使我可以使用ClaimsAuthorizationManager將授權邏輯從控制器中分離到單獨的授權模塊中。 另外, Thinktecture.IdentityModel在提供所有管道以在我的WebAPI應用程序中執行此任務方面做得非常好。 但是,我不禁想到授權邏輯應該位於我的業務層中,在WCF服務之后,並且不應該對面向客戶端的WebAPI強制執行此任務。 如果我要求其他面向客戶端的托管應用程序使用我基於WCF的業務層,那么他們還需要實現安全代碼。 不利的一面是,這確實意味着未經授權的請求會在拒絕之前進入應用程序。
問題 :應該在ASP.NET中使用基於聲明的授權功能,還是應該在WCF服務后面的業務層中包裝授權?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.