2016-10-24 176 views
1

我有一個項目使用實施OWIN ASP.NET身份架構的中央ASP.NET MVC網站。 我們集中的網站已被用於:OWIN身份驗證和「在線用戶」

  • 同意令牌使用用戶名/密碼,
  • 補助刷新令牌
  • 添加/刪除和修改用戶/角色,並通過OAuthentication和社會登錄聲稱
  • 同意令牌(推特,Facebook ...)

到目前爲止這麼好,但現在我得到了一個新的要求。在我看來,該層應該能夠「跟蹤在線用戶」,因爲ASP.NET身份OAuth授予令牌和刷新令牌,但它沒有任何「會話」和「在線認證用戶」的概念, 。

關於如何實現此功能的任何想法或建議?

+0

是「梯隊」只是一個好聽的名字爲銷售經理,要求功能? – trailmax

回答

0

這取決於你的確切定義跟蹤在線用戶,但假設它有一個寬鬆的定義,你可以通過確切地介紹你所說的你還沒有完成的任務,會話。

在身份驗證方面,您的ASP.NET MVC應用程序充當身份提供商/授權服務器(IP/AS),但這並不意味着它不能或不應該擁有會話的概念。一般而言,會話是IP/AS中的常見做法,因爲這樣他們可以爲依賴於它們的應用程序提供單點登錄。

例如,Google和Facebook都充當其他應用程序的IP/AS,並且它們都維護會話。你可以爭辯說,在這兩種情況下,他們做的不僅僅是充當IP/AS,因此會議是必須的。

但是,只關注認證和授權服務的提供者也依賴於會話。例如,Auth0 uses sessions as a way to provide the single sign-on experience我之前提到過。

通過引入會話,您應該能夠從IP/AS的角度維護在線/認證用戶列表。最大的問題是,如果這確實是您的商業用戶想要的,當他們說跟蹤在線用戶

 
披露:我是Auth0工程師。


 
更新

關於實際執行的會話,它取決於需求,但客戶端cookie和服務器端持久存儲的傳統方法應該做的招。它不需要與ASP.NET身份集成,您只需跟蹤給定的用戶身份(通過其用戶唯一標識符)具有活動會話;當他們認證時完成。

然後,有一個決定會議何時結束的問題,那就是主要依賴於確切需求的部分。如果您想要在另一個應用程序中觸發單一註銷,它可以像用戶也可以到IP/AS註銷一樣簡單或更棘手。

關於令牌你也可以考慮在會話結束(註銷)撤銷刷新令牌。總之,有很多移動部件和事情要實施。

如果你還沒有做它已經還應檢查:

+0

我知道Auth0非常好,但不幸的是,因爲它不是在預算,我不能使用它,我們有一個雲產品和Auth0的使用已經在兩年前否認因成本過高。但是我無法找到有關使用ASP.NET身份和令牌會話管理什麼 – Raffaeu

+0

是啊,我是在企業界多年,所以我知道那種感覺。經理們很容易檢查外部價格,但他們從來沒有計算實施,保護和維護內部解決方案的實際成本。關於你的會議管理觀點,我更新了答案。 –

+0

安傑洛感謝您的更新。不幸的是,OAuth0等外部工具的成本必須通過我們的雲用戶進行支付,而這些用戶每個都有數千用戶,這就是爲什麼我們選擇自行實施 – Raffaeu