[英]Azure functions authentication with ASP.NET Identity and JWT token
我正在開發一個新的開發堆棧,我計划在其中使用Azure 函數實現無服務器。
我認為我的應用程序應該使用ASP.NET Identity來存儲用戶憑據和其他詳細信息。 他應該使用JWT 令牌跨身份數據庫進行身份驗證。
我試圖掌握一些可能有助於了解如何在 Azure 函數中實現 ASP.NET Identity 的示例。 任何人都可以指出我正確的方向嗎?
我認為沒有一種有效的方法可以做到這一點。 因為 azure 函數在整個應用程序中並沒有真正的啟動點或入口點,您可以在其中插入 oauth ,這通常在 startup.cs 或 global.asax 中的 mvc 或 Web 應用程序中完成。
所以這必須稍微偏離它在 Web 應用程序中的完成方式
也許這會有所幫助
https://vincentlauzon.com/2017/12/04/azure-functions-http-authorization-levels/
我最近不得不做這樣的事情,即針對第三方 OAuth 服務器發布的 JWT 訪問令牌進行身份驗證。 沒有方便的中間件可以讓您執行此操作,因此您只能手動實現。
我使用的方法是創建一個自定義輸入綁定,讓您驗證令牌並將ClaimsPrincipal注入到函數定義中。 生成的函數定義如下所示:
[FunctionName("ExampleHttpFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "example")] HttpRequest req,
ILogger log,
[AccessToken] ClaimsPrincipal principal)
{
log.LogInformation($"Request received for {principal.Identity.Name}.");
return new OkResult();
}
這至少將身份驗證與函數定義分開,並使事情更易於測試。
您需要將六個不同的類連接在一起才能使其工作,但我已經在此處編寫了詳細信息: Azure Functions 的自定義令牌身份驗證。 您可以查看GitHub 上的一些示例代碼。
希望這可以幫助...!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.