1

这是我的问题,我在 VS2017 RC 中创建了一个全新的 AspNetCore WebApplication。

由于我想使用 Azure AD B2C 进行身份验证,因此我添加了所需的 NuGet 包:

Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.OpenIdConnect

然后我添加所有代码来配置身份验证。事实上,我复制了这个 Channel9 视频中演示的应用程序:https ://channel9.msdn.com/events/Ignite/Australia-2017/CLD336a

它工作正常,我可以按预期进行身份验证。现在我想获得一个 access_token 以访问我的 WebApi 也使用 AAD-B2C 保护。为此,我需要将 ResponseType 更改为

ResponseType = OpenIdConnectResponseType.CodeIdToken

并处理OnAuthorizationCodeReceived事件。为此,我的理解是我必须添加 Nuget Package Microsoft.IdentityModel.Clients.ActiveDirectory。但是这个库不会针对我需要 AAD-B2C 的 v2.0 端点。

所以我在另一个 GitHub 解决方案(https://github.com/dzimchuk/azure-ad-b2c-asp-net-core)中看到我可以使用这个Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory包。

不幸的是,这个包与 NETCoreApp,Version=v1.0 不兼容,我在尝试将它添加到我的项目时收到此错误消息:

一个或多个包与 .NETCoreApp 不兼容,Version=v1.0 (win-x64)。

包 Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha 与 netcoreapp1.0 (.NETCoreApp,Version=v1.0) / win-x86 不兼容。包 Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha

我错过了什么?

4

1 回答 1

1

Azure AD B2C 当前不支持对“self”以外的资源的访问令牌。要为自己获取访问令牌,您只需要将您的客户端/应用程序 ID 作为范围。您可以在 User Voice上发帖推荐此功能并查看其他用户推荐的功能(之前已请求过此功能)。

就您的库混乱而言,您肯定要坚持使用 MSAL。不推荐 ADAL 实验分支,也没有积极开发。

于 2017-03-07T20:45:53.933 回答