簡體   English   中英

使用 ASP.NET 標識和 JWT 令牌的 Azure 函數身份驗證

[英]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.

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