【问题标题】:Microsoft.AspNetCore vs Microsoft.IdentityModel (ADAL) with .net core API in Azure ADAzure AD 中带有 .net 核心 API 的 Microsoft.AspNetCore 与 Microsoft.IdentityModel (ADAL)
【发布时间】:2018-09-10 11:11:46
【问题描述】:

干杯,

我正在寻找有关用于 Azure AD 的身份验证库的一些说明,特别是关于基于 Microsoft.AspNetCoreMicrosoft.IdentityModel 的库之间的差异。 p>

我正在 .net 核心中实现一个 Api,其身份验证将通过 Azure Active Directory (AAD) 进行管理。根据应用程序的需要,我希望将原始 (v1) 端点与 ADAL 一起使用,而不是 v2 端点,因为目前 v2 端点(RBAC 和组)不提供某些功能。所有迹象都表明 ADAL 库是要走的路,但这与以下内容不同步:

当我在 Visual Studio 2017 (v15.6.3) 中创建一个 .net core (v2) API 项目并选择 Work or School Accounts 进行身份验证时,我收到以下对话框,表明此选择是为了

使用 Active Directory、Microsoft 对用户进行身份验证的应用程序 Azure 活动目录

然而,当项目创建时,ADAL 库(也不是MSAL)不包含在项目中。其实项目中引用的库是

此外,项目模板构建了一个静态扩展类 AzureAdServiceCollectionExtensions,用于处理 Azure AD 的工作和学校身份验证细节,(请注意,如果您选择使用个人帐户进行身份验证,则需要使用不同的扩展类已创建,但仍基于天蓝色)。

但这些不是此包中的 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 的项目模板,但没有运气。
提前致谢。

【问题讨论】:

    标签: asp.net-core azure-active-directory adal msal


    【解决方案1】:

    ADAL 和 MSAL 是请求和管理令牌所需的库。如果您正在构建一个保护其端点并需要访问令牌才能访问的 API,您可能只需要使用 .NET 核心中间件(模板中包含的内容)。此中间件接受并验证传入的访问令牌。

    您需要将 ADAL 或 MSAL 集成到您的应用中的唯一情况是您有兴趣从您的 Web API 执行 On-behalf-of flow

    Here's 在 .NET 核心 API 中实现此中间件的代码示例。

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      相关资源
      最近更新 更多