2013-04-22 42 views
5

我已經設置了一個用戶在蔚藍的活動目錄,在我的計劃,我將收集最終用戶的用戶名和密碼,並要覈對使用Windows Azure Active Directory中。如何驗證azure活動目錄用戶憑證?

是否有可能? pl提供一些參考。

我知道使用電源外殼的cmdlet,我們可以驗證,我想知道有沒有其他的方法來驗證用戶crednetial

+0

什麼是你要完成?你能描述一下你的認證和授權方案的更高層次的設計嗎?根據你的描述,這聽起來像你正在嘗試一些相當不安全和「調皮」的東西。您是否有理由不在依賴方應用程序中使用基於聲明的身份驗證,並讓Windows Azure Active Directory(WAAD)處理身份驗證? – Nathan 2013-04-22 21:38:10

+0

在我爲大型公司部署的大多數應用程序中,我們讓本地AD成爲身份驗證源,我期待着確切瞭解Azure AD如何在我的雲應用程序中取代這一點。如果我不需要,我寧可不寫身份驗證代碼,並讓WAAD照顧所有這些,因爲我專注於如何將授權應用於我的應用程序邏輯。 – Graham 2013-04-22 23:13:51

+0

你有沒有找到這個解決方案。我正在嘗試做同樣的事情? – Gotts 2014-10-20 16:28:24

回答

2

啊,我想,你想實現SSO方案。試試Adding Sign-On to Your Web Application Using Windows Azure AD! 如果您的客戶沒有Azure訂閱,此Multi-Tenant Cloud Application for Windows Azure Active Directory示例將使用Azure Active Directory身份驗證庫描述詳細信息。希望這可以幫助。

+1

您的鏈接很有用。但從開發者的角度來看,我會更感興趣的是找到一種方式,我已經擁有用戶名/域名/密碼等。所以我不想打開瀏覽器窗口並讓用戶這樣做(現在就是這樣)。當我們已經擁有我們所有的細節時,如何執行WAAD認證?目前我們正在使用'AuthenticationContext.AcquireToken(resource,client-id,resource-app-id-uri)',但是如何使用'AuthenticationContext.AcquireToken(resource,ClientCredential)'? – iammilind 2013-08-22 13:12:11

+0

您的[this](http://code.msdn.microsoft.com/AAL-Server-to-Server-9aafccc1/sourcecode?fileId=93566&pathId=1250178454)鏈接提供了代碼示例,但不確定這是否適用或不。我不知道如何使用'clientSecret'部分來創建'ClientCredential'。 – iammilind 2013-08-22 13:28:55

0

你說你會「收集最終用戶的用戶名和密碼,並想用windows azure Active Directory進行檢查」 - 我確信這是不可能的,我確定這不是可行的。這與OAuth等方法的趨勢截然相反,用戶可以使用相同的憑據登錄許多應用程序(並且部分即將到來),而不會向這些「許多應用程序」泄露他們的密碼。

這是聯合身份驗證的想法,是不是讓你用日誌中的所有應用程序有你的用戶名和密碼直接訪問的舊方法更安全的模式。通常在這樣的流程中,假設現有的Office 365帳戶,您創建並配置爲使用O365進行身份驗證的新應用程序會將用戶的Web瀏覽器重定向到用戶輸入其O365用戶名和密碼的O365,然後同意(一次)他們可以使用這個新的應用程序是可以的,然後瀏覽器將REDIRECT回到應用程序,並帶有一些聲明的安全令牌。這些聲明將包括名稱,電子郵件地址和其他有關登錄用戶的信息,並且足以在您的應用中識別用戶。

同樣會去用,比方說,Facebook或谷歌認證 - 您的應用程序將不會直接看到用戶的密碼。它甚至適用於登錄到StackOverflow本身,所以你已經看到了工作流程。

0

希望這ADAL選項也可能會有所幫助。

ClientCredential encryptedCredentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "[email protected]", "PasswordX"))); 
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", encryptedCredentials); 
2

如果有人仍在尋找答案。用於認證用戶無需打開用於用戶名氣新窗 支持在ADAL版本2.7.10707.1513-RC通過提供UserCredential類的一個目的是的AcquireToken一個重載函數加入。

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential); 

以下是PowerShell示例代碼。 $UserCred = new-object Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential("****@*****", "*****") $result = $AuthContext.AcquireToken($resource,$clientID,$UserCred)

+2

這僅適用於本機客戶端 - 不是網絡應用程序。 – BenV 2016-02-19 18:31:19