2016-09-27 109 views
0

我想要做的事是什麼這個庫的設計目的是:允許我的.NET代碼(當前是測試控制檯應用程序)從ADFS中爲當前用戶檢索令牌,並使用令牌進行身份驗證並調用REST Web API端點。 This article將其稱爲ADAL支持的基本流程。我的組織運行Windows Server 2012 SP2 ADFS。控制檯應用程序和ADFS都是內部部署的。ADAL .NET到ADFS

任何人都可以指出我如何設置和使用它的完整示例?代碼片段很好,但是周圍有很多沒有解釋的內容 - 比如什麼是Authentication Context端點?我問我的系統管理員該怎麼辦?他們給了我一個STS終點,但似乎並不奏效。我認爲我需要的不僅僅是一個服務器URL,可能需要傳遞一個查詢字符串或其他擴展名,但我找不到任何解釋。事實上,我發現的所有示例和示例都涉及向Azure註冊客戶端應用程序,而我並未使用Azure。

我的代碼目前看起來是這樣的:

AuthenticationContext authenticationContext = new AuthenticationContext("https://sts.myorg.co.za"); 
var token = authenticationContext.AcquireToken("http://myservices/service1", "a8cb2a71-da38-4cf4-9023-7799d00e09f6", new Uri("http://TodoListClient")); 

但調用AquireToken失敗,異常說This method overload is not supported by 'https://sts.myorg.co.za'

任何幫助或指針讚賞!

謝謝, 彼得

回答

0

你應該通過validateAuthority = false以ADAL的構造。

+0

謝謝,我從[文檔](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/ADAL-.NET-Q-&-A)看到,這是需要的對於ADFS,它不支持權限驗證。你能幫助解決其他ADFS特定問題嗎?所有[示例](https://github.com/Azure-Samples/active-directory-dotnet-native-desktop)都有特定於Azure的說明,例如獲取和使用我的應用程序的客戶端ID。如何用ADFS做到這一點?或者程序不同,如果是這樣,我在哪裏可以找到文檔或示例?謝謝! – Peter