2015-10-15 36 views
1

什麼?將AuthenticationResult轉變爲MVC會話

我有一個接受用戶名和密碼的API,可以返回一個AuthenticationResult。我想使用該標記來在MVC應用程序中啓動會話。這裏有變薄的流程:

1 - 用戶進入MVC應用程序

2 - 用戶提供了用戶名和密碼

3 - MVC調用API,併發送用戶名和密碼

4 - API返回令牌MVC應用程序

步驟4後,我可以做什麼來啓動MVC內的會議。

信息的情況:

我們希望利用Azure的Active Directory來保持我們所有的用戶信息有,但我們希望用戶能夠使用任何郵箱註冊,不只是我們的域名。我們計劃使用他們的電子郵件和我們的域名(由於在AAD中創建的帳戶必須屬於某個域名)爲AAD中的每個用戶創建一個帳戶。因此,如果用戶的電子郵件是[email protected],AAD將存儲[email protected]

爲什麼?

  • 我們無法強制用戶使用我們的域名創建帳戶。
  • 我們不希望用戶看到AAD登錄屏幕
  • 我們不希望任何形式的用戶帳戶信息存儲在我們的數據庫
  • 我們計劃在iOS/Android的範圍內充分利用在未來的AAD應用,因此具有MVC應用程序之外的認證將允許該

這是POC代碼,我們有我們的API在驗證用戶登錄請求從MVC應用程序來:

  AuthenticationContext context = new AuthenticationContext("https://login.microsoftonline.com/cccccccc-cccc-cccc-cccc-ccccccccccccc/oauth2/token"); 
     try 
     { 
      UserCredential uc = new UserCredential(userCredendtials.Username, userCredendtials.Password); 
      AuthenticationResult azureADToken = context.AcquireToken("https://[email protected]" + "ourdomain.onmicrosoft.com", clientID, uc); 
      return Ok(azureADToken); 
     } catch 
     { 
      // We didn't authenticate user, send not found - generic error, we can change this 
      return NotFound(); 
     } 

我們牛逼母雞檢查MVC應用程序中的API調用結果是否相應地作出響應。 100萬美元的問題是我們如何開始並管理MVC會話,就好像我們使用類似ASP.Net身份的東西一樣使用令牌?

我們可以根據需要修改API和MVC應用程序,但我們確實有權讓用戶使用任何電子郵件創建其帳戶並將其信息存儲在AAD上。如果這完全是錯誤的道路,任何建議表示讚賞!

回答