C# .Net Core Web Api Azure Active Directory 和声明

C# .Net Core Web Api Azure Active Directory & Claims

我们有一个带有 .net 核心 Web api 后端的 SPA(单页应用程序)。

我们想使用 Azure AD 进行身份验证和授权,因为我们将至少有 3 个单独的客户端使用 AD,但是网上看没有确定的方法,就像拼凑 50,000 块拼图一样!

我已经设置了带有身份验证和授权的 azure api,如下图所示,但这是正确的地方吗?因为我相信我想要在网络 API 代码中使用它,所以我可以获得特定于应用程序的声明 (permissions/roles)。

提到了身份,但我想使用身份吗?因为这听起来像是您自己的数据库而不是 AD。

我们应该使用 B2C 还是 B2B 身份验证?这是否支持授权,因为最终目标是定义特定于应用程序的自定义声明,因此我们可以授予和拒绝特定操作。

您现在使用的是 built-in authentication Azure App Service。您可以通过在您的网络中编写最少或不编写代码来登录用户和访问数据 api。但不适合复杂的场景。

由于您想为特定用户自定义应用程序permissions/roles,建议您自己使用 Azure AD 保护您的网络api。自定义身份验证更加灵活。 TodoListService部分可以参考this sample

Should we be using B2C or B2B authentication?

Azure AD B2B 不是一项单独的服务,而是 Azure AD 中的一项功能。

Azure AD B2C 是一项用于构建消费者应用程序身份存储库的独立服务。如果您需要处理电子邮件或 Facebook 登录的服务,它就在您身边。

根据您的描述,我想 Azure AD 是您的选择。

参考:

Add authorization using app roles & roles claims to an ASP.NET Core web app thats signs-in users with the Microsoft identity platform

Compare B2B collaboration and B2C in Azure Active Directory

我在 pluralsight 上看了这个视频

https://app.pluralsight.com/library/courses/authentication-authorization-aspnet-core/table-of-contents

这有助于更好地理解它,实际上接近尾声时,他表明您可以创建一个 .net 核心 Web 应用程序,然后更改身份验证并选择一个多 Azure AD 选项,如下例所示.这就是开箱即用的方法!不完全适用于 Vue 单页应用程序,但这仍然是一个问题。