干杯,
我正在寻找有关与 Azure AD 一起使用的身份验证库的说明,特别是关于基于Microsoft.AspNetCore 和Microsoft.IdentityModel 的库之间的差异。 p>
我正在 .net 核心中实现一个 Api,其身份验证将使用 Azure Active Directory (AAD) 进行管理。根据应用程序的需要,我希望将原始 (v1) 端点与 ADAL 一起使用,而不是 v2 端点,因为此时 v2 端点(RBAC 和组)不提供某些功能。所有迹象都表明 ADAL 库是正确的选择,但这与以下内容不同步:
当我在 Visual Studio 2017 (v15.6.3) 中创建一个 .net core (v2) API 项目并选择工作或学校帐户进行身份验证时,我得到以下对话框,表明这选择是为了
applications that authenticate users with Active Directory, Microsoft Azure Active Directory
然而当项目被创建时,ADAL库(也不是 MSAL)不包含在项目中。其实项目中引用的库是
此外,项目模板构建了一个静态扩展类 AzureAdServiceCollectionExtensions 用于处理 Azure AD 的工作和学校身份验证细节,(请注意,如果您选择使用个人帐户进行身份验证,则不同的扩展类已创建,但仍基于 azure)。
但这些不是此包中的 ADAL.net 类
Microsoft.IdentityModel.Clients.ActiveDirectory
AspNetCore 包由 Asp.Net 团队发布,而 ADAL 包由 AzureAD 团队发布。
最后我开始回答一些问题:
为什么 ADAL(甚至 MSAL)库不是与 Azure AD 集成的模板的一部分?
模板是否指明了与 Azure AD 集成的首选方法,并暗示使用 AspNetCore 库?
到目前为止,我阅读的所有与 Azure AD 集成的文档都涉及 ADAL 或 MSAL,我是否遗漏了 AspNetCore 库的某些内容?
请注意,我确实搜索了使用 ADAL 或 MSAL 的项目模板,但没有成功。
提前致谢。
最佳答案
ADAL 和 MSAL 是请求和管理 token 所需的库。如果您正在构建一个 API 来保护它的端点并且需要访问 token 才能访问,您可能只需要使用 .NET 核心中间件(模板中包含的内容)。该中间件接受并验证传入的访问 token 。
您需要将 ADAL 或 MSAL 集成到您的应用中的唯一情况是您有兴趣执行 On-behalf-of flow来自您的网络 API。
Here's在 .NET 核心 API 中实现此中间件的代码示例。
关于asp.net-core - Microsoft.AspNetCore 与 Microsoft.IdentityModel (ADAL) 与 Azure AD 中的 .net 核心 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590882/