繁体   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