簡體   English   中英

如何配置運行**本地**的 Azure Function 以使用 Azure B2C 執行身份驗證?

[英]How can I configure an Azure Function running **locally** to use Azure B2C to perform the authentication?

我有一個 Azure Function 配置為使用 Azure B2C 對用戶進行身份驗證。 一切都按預期工作。

已配置 Azure AD

但是,當我在本地運行 function 時,我沒有找到讓它工作的方法。 在 Azure 中運行時,調用 Function 並使用填充了有關用戶的正確聲明的ClaimsPrincipal實例。

[FunctionName("get-accounts")]
public async Task<IActionResult> Run(
    [HttpTrigger(
        AuthorizationLevel.Anonymous,
        "get",
        Route = "v1/accounts"
    )]
    HttpRequest httpRequest,
    ClaimsPrincipal claimsPrincipal)
{
    //
}

在本地運行時, ClaimsPrincipal實例沒有與用戶關聯的聲明。

問題

調試時,如何配置本地運行的Azure Function,使用Azure B2C進行認證?

AAD 是一種 IDM(身份管理服務),用於維護用戶的身份。 現在,當您在開發機器中創建應用程序並希望 AAD 的用戶在那里登錄時,在這種情況下,用戶首先需要通過 AAD 的身份驗證。 但是問題來了,獲得身份驗證是為了什么? 答案是為您的應用程序進行身份驗證。 到目前為止,AAD 是否知道您的應用程序。 答案是否定的,AAD 對您的應用一無所知。 因此,要讓 AAD 了解您的應用,您需要使用應用注冊門戶注冊您的應用(如果是 OAuth 應用)。 注冊完成后,AAD 會知道您的應用程序,因此當來自此應用程序的請求對用戶進行身份驗證時,AAD 信任您的應用程序,因此會讓用戶為您的應用程序進行身份驗證,並為您的應用程序發回訪問令牌消費並知道用戶已通過身份驗證。 這就是您的應用程序受到 AAD 保護的方式,無論它托管在哪個平台上(無論是在 Azure 應用程序服務平台上還是在您的本地 WebServer 上)。

您可以按照此為您的功能實現 B2C: https://sundarcloud.com/2020/06/05/azure-ad-b2c-token-validation-using-azure-functions/

您還可以檢查以下內容以獲得更好的理解: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent

暫無
暫無

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

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