gpt4 book ai didi

azure - 如何使用 .NET Core 3.1 通过 Visual Studio 2019 开发 Azure Functions 时使用 AD 身份验证

转载 作者:行者123 更新时间:2023-12-03 05:30:53 24 4
gpt4 key购买 nike

我正在 .NET Core 3.1 中使用 Visual Studio 2019 开发 Azure Functions。我必须为这些功能实现 Azure AD 身份验证。我知道如何在 ASP.NET Core 3.1 Web 应用程序中使用 AD 身份验证。但是由于Azure Function默认没有提供启动类,那么如何实现相同的逻辑呢?

我在 ASP.NET Core 3.1 Web 应用程序中使用此代码:

public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(Configuration, "AzureAd");
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseAuthentication();
app.UseAuthorization();
}

并在 Controller 方法中添加[Authorize]标签。但是,我无法弄清楚如何在 Azure 函数中实现相同的功能。在这里,我目前已将授权级别设置为匿名,如下所示

public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, ILogger log)
{
}

这里如何实现Azure AD身份验证?

----更新----添加 Tiny-wa 建议的配置后,仍然无法弄清楚为什么当我发送不记名 token 时 Api 会响应 401

enter image description here

最佳答案

我有一个函数包含一个http触发器,在我为该函数启用身份验证之前,我可以通过调用url直接获取响应。

我关注this document为其启用 azure 广告身份验证。

选择您的功能 -> 按进入“身份验证/授权”选项卡 -> 选中“打开”。

enter image description here

然后选择“使用 azure ad 登录”,点击 azure ad 作为身份验证提供商,跳转到新页面,选择 Express 并创建新的广告应用程序。 enter image description here enter image description here

保存所有配置后,当我调用上面的网址方法时,它要求我登录。

==================================更新=============== =====================

Http触发器可以通过添加配置来设置不同的身份验证级别,这些级别设置为匿名,我们需要在请求url中添加参数。这个document提供 sample 和 this one微软提供了详细信息。

enter image description here enter image description here

================================更新2================== ===========

我找到了另一个可能适合您的解决方案。这是sample .

在函数代码中添加身份验证模块后,您可以将该函数公开为 azure ad 中的 api。这使得您的函数应用程序使用访问 token 进行调用。当然我已经尝试过示例,这是我的经验。

首先,修改 Constants.cs 中的配置,然后创建一个 azure 广告应用并公开一个 api。接下来,添加刚才暴露的api权限。最后添加用于生成访问 token 的客户端 key 。以下是我的操作的一些屏幕截图。

enter image description here enter image description here enter image description here enter image description here

关于azure - 如何使用 .NET Core 3.1 通过 Visual Studio 2019 开发 Azure Functions 时使用 AD 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65562921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com