2017-06-20 92 views
0

因此,我有以前使用Windows身份驗證方案的舊版ASP.NET應用程序。Azure上的ASP.NET應用程序身份驗證

我現在想將它移植到Azure和已經配置在蔚藍的門戶網站在Azure Active Directory服務和我的組織目錄已經在Azure上。

我現在想改變的web.config文件,所以我的應用程序識別Azure的身份驗證,並使用這些憑據。

此前,該配置是這樣

<system.web> 
    <compilation debug="true" targetFramework="4.6"/> 
    <httpRuntime targetFramework="4.5" maxQueryStringLength="2097151" requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\,?"/> 
    <customErrors mode="Off"/> 
    <authentication mode="Windows"/> 

我應該改變認證模式什麼?

非常感謝!

回答

1

據我所知,如果你有啓用Web應用程序的認證/授權AD登錄如下。

enter image description here

你不需要更改任何代碼。如果用戶想要訪問您的Web應用程序,Azure會自動將用戶重定向到AD登錄頁面。

如果用戶登錄成功,那麼它會返回一個令牌到應用程序,在此令牌包含用戶的信息。


更新:

我建議你可以用湛藍的廣告圖形API來獲取用戶信息。

如果你想使用蔚藍廣告圖形API,您需要獲得訪問令牌。

我建議你可以先訪問此url

使用搜索欄搜索您的網頁,手機或API應用程序。

單擊編輯以啓用更改。

設置additionalLoginParams以下幾點:

["response_type=code id_token", "resource=https://graph.windows.net"] 

點擊頁面頂部的讀/寫按鈕啓用更改。

單擊PUT按鈕保存您的更改。

這樣的結果是:

enter image description here

然後,你可以在你的應用程序與令牌發送請求,以獲取用戶信息,添加以下代碼。

string accessToken = this.Request.Headers[ 
"X-MS-TOKEN-AAD-ACCESS-TOKEN"]; 
     // Call into the Azure AD Graph API using HTTP primitives and the 
     // Azure AD access token. 
     var url = "https://graph.windows.net/me?api-version=1.6"; 
     var request = WebRequest.CreateHttp(url); 
     var headerValue = "Bearer " + accessToken; 
     request.Headers.Add(HttpRequestHeader.Authorization, headerValue); 

     using (var response = request.GetResponse()) 


     using (var streamReader = new StreamReader(response.GetResponseStream())) 
     { 
      string jsonResponse = streamReader.ReadToEnd(); 
      Response.Write(jsonResponse); 
     } 

此URL用於獲取當前用戶信息。

https://graph.windows.net/me?api-version=1.6 

如果你想獲得用戶的組,我建議你可以改變爲以下鏈接:

https://graph.windows.net/myorganization/me/$links/memberOf?api-version 

更多關於這個API的細節,你可以參考這個article

如果你想獲得用戶的個人資料圖片,我建議你可以改變爲以下鏈接:

https://graph.windows.net/myorganization/me/thumbnailPhoto?api-version 

更多細節,你可以參考這個article

注意:您需要授予您的Web應用程序足夠的權限以啓用獲取這些值。

圖片是這樣的:

enter image description here

+0

我已經做到了,但我想知道如何獲得該令牌進入我的應用程序,這樣我可以檢索像安全組信息,用戶所屬,資料圖片等 – MV23

+0

我已經更新了我的答案,我建議你可以發送請求到AD圖獲取用戶信息。 –

+0

謝謝你的詳細解答。我會試試看。 – MV23

相關問題