2017-03-07 125 views
1

这是我的问题,我在VS2017 RC中创建了一个全新的AspNetCore WebApplication。在AspNetCore中使用MSAL for Azure AD-B2C?

因为我想使用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进行保护。对于这一点,我需要将responseTyp的改变

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,版本= 1.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-α

我缺少什么?

回答

1

Azure AD B2C目前不支持访问令牌给“自我”以外的资源。要为自己获取访问令牌,只需将您的客户端/应用程序ID作为范围即可。您可以post on User Voice推荐此功能并检入其他用户推荐的功能(此前已请求此功能)。

就你图书馆的困惑而言,你一定要坚持MSAL。不推荐ADAL实验分支,也不积极开发。

+0

谢谢丹尼尔,我知道的限制和我的范围设置为我的client_id。但我仍然需要处理OnAuthorizationCodeReceived事件,以便将access_token设置为“self”,不是吗?如果我这样做,那么我会陷入上述问题。 – PatLac

相关问题