簡體   English   中英

Azure Web App Web API使用ClaimsIdentity模擬用戶

[英]Azure Web App web API impersonate user using ClaimsIdentity

在我的Azure Web App中,我想通過使用用戶ClaimsIdentity來調用第三者API來模擬用戶。 第三方Web API允許使用Basic或Kerberos,如果需要,我可以選擇切換到使用Windows集成安全性的第三方SDK。

我遇到的問題是模擬位,下面是我的代碼。

var webUser = HttpContext.Current.User.Identity as ClaimsIdentity;

var windowsIdentity = S4UClient.UpnLogon(webUser.Claims.FirstOrDefault(x => x.Type.Equals(ClaimTypes.Upn)).Value);

using (var impersonationContext = windowsIdentity.Impersonate())
{
    //make call to 3rd party Web API or SDK
}

運行以上命令時,出現以下錯誤:

The pipe endpoint 'net.pipe://localhost/s4u/022694f3-9fbd-422b-b4b2-312e25dae2a2' could not be found on your local machine.

我已閱讀的所有內容都指向啟動C2WTS Windows服務,是否可以為Azure Web應用程序啟動該服務? 如果沒有,我該如何假冒用戶或將憑據傳遞給我的第三方api / sdk?

使用Azure WebApp時,您與基礎結構和托管環境是隔離的,因此無法啟動“ Windows服務”之類的東西。

如果需要單個用戶使用Windows / Kerberos身份驗證來訪問Web應用程序背后的資源,則不能使用Azure WebApp。 您應該將Azure VM與IIS一起使用,IIS是您域的成員服務器。 然后,您可以將Web應用程序配置為接受基於聲明的身份驗證(例如,從Azure AD),並通過UPN和WindwosIdentity構造函數(> .NET 4.5)對內部域帳戶進行模擬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM