我目前有一個分佈式系統,其中包含充當SSO服務器的OpenID Connect服務器(IdentityServer3)。使用SSO服務器的客戶端是帶WebAPI v2後端的AngularJS SPA:s。從OpenID服務器接收令牌的轉換
我得到了基本的登錄流程,但我需要一些幫助來配置WebAPI/OWIN管道以允許轉換收到的令牌聲明,即。消除不公平的索賠並增加當地索賠。我假設我需要創建一個本地JWT,而不是使用從SSO服務器收到的JWT。
問題是,這樣做的最好方法是什麼?是否有OWIN中間件可以幫助解決這個問題,還是我需要從SSO服務器收到的聲明中「手動」生成新的本地簽名的JWT?
當前的實現細節:
- 的AngularJS SPA認證反對使用 授權碼流SSO服務器,並接收所述授權碼。
- SPA將授權碼發佈到WebAPI。
- WebAPI接收授權碼並使用OAuth2Client類(Thinktecture.IdentityModel.Clients的一部分)從SSO服務器請求AccessToken/JWT。此AccessToken返回到SPA以用於對WebAPI進行的任何其他請求。
所以我的問題主要涉及到第3步。我如何最好地改變我目前的流程來生成一個包含本地索賠的令牌?
另外,什麼樣的認證中間件應該與您提出的解決方案一起使用(JwtBearerAuthentication,OpenIdConnectAuthentication或OAuthBearerAuthentication)?
Apoligizes爲我可能困惑的術語用法,我是一個關於OAuth,尤其是OWIN管道的初學者。 :)