使用 Azure AD 作为 IDP 保护 Azure 功能

Use Azure AD as IDP to protect Azure function

我正在使用 Azure 功能身份验证,我可以看到 2 个选项:身份验证和身份验证(经典)我应该使用哪一个?目前我使用的是身份验证,而不是经典的身份验证,我使用 Microsoft 作为 IDP:为其创建了一个新应用程序。似乎它有效,每次我访问我的 Azure 功能时,我都会收到 401 错误。那么问题来了:如何才能通过这个Auth呢?我应该使用令牌或类似的东西吗?我找不到关于它的文档。谢谢!

我认为您的方向是正确的,Azure 函数的身份验证(经典)是旧版本。推荐使用新的

如果您想访问受身份验证保护的Azure功能(Azure AD App),您需要为其申请一个访问令牌。请尝试以下步骤:

  1. 转到 Azure AD => 应用程序注册 => 您创建的用于保护 Azure 功能的应用程序 => 公开 API 以添加范围,例如 access_as_user 以便您的 SPA可能需要此范围的访问令牌:

  1. 进入 Azure AD => 应用程序注册 => 您为 SPA 应用程序创建的应用程序 => API 权限 => 添加权限 => 我的 APIs 授予我们的范围刚刚创建:

单击授予管理员同意按钮以完成该过程。

  1. 在您的 SPA 应用程序中,使用 MsalService 获取范围为:api://<your azure function app id>/access_as_user 的访问令牌,通过此令牌,您可以访问您的 Azure 函数。为了快速测试,我只是在 postman 中测试它并且它完美运行: