2015-05-28 43 views
4

任何人都知道如何將ADFS,Web Api 2和Angularjs一起使用來實現同一域內的單點登錄?我使用MVC模板(.Net 4.5)創建了一個ASP.NET項目,並將其設置爲on-permises組織。認證與ADFS集成,我得到了一切工作(成功登錄)。我的主要問題是,如何在angularjs中從API獲取jwt token?在我做了研究之後,看起來如果不使用MVC控制器作爲中間人來做單點登錄是不可能的,所以我可以從ADFS獲取令牌,然後我可以解析jwt並獲取我正在查找的信息(聲明) ?如何從MVC控制器獲取令牌?任何例子?我目前的設置是Angularjs-> MVC Controller-> Web Api-> ADFS,有什麼更好的建議? MVC控制器真的是多餘的,我需要它的唯一原因,這是因爲實現單點登錄。單點登錄的ADFS/Web Api/Angularjs

回答

1

現在有發行JWTs直接使用微軟ADAL庫角的SPA(請參閱本sample爲例),所以你不需要MVC層了一種方式。

該庫主要用於Azure的AD,但也有一些調整,你可以與ADFS使用它,你需要做的是填寫app.js以下值文件,而不是:

instance: 'https://{your-adfs-url}/', 
tenant: 'adfs', // this is always 'adfs' 
clientId: 'Enter your client ID (as registered under ADFS) here e.g. e9a5a8b6-8af7-4719-9821-0deef255f68e', 

ADFS一面,您需要註冊您的應用程序ADFS作爲應用程序組,欲瞭解更多信息,請參閱此technet article