在AspNetCore中使用MSAL for Azure AD-B2C?

时间:2017-03-07 17:38:38

标签: azure-ad-b2c msal

这是我的问题,我在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包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不兼容,版本= 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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

Azure AD B2C目前不支持将访问令牌发送到" self"以外的资源。要获取self的访问令牌,您只需将您的客户端/应用程序ID作为范围。您可以post on User Voice推荐此功能,并检查其他用户推荐的功能(之前已请求过)。

就你的图书馆混淆而言,你肯定想坚持使用MSAL。不建议使用ADAL实验分支,也不积极开发。