Azure ad b2c 配置Azure AD B2C ApiScopes和ApiUrl

Azure ad b2c 配置Azure AD B2C ApiScopes和ApiUrl,azure-ad-b2c,Azure Ad B2c,我在配置AspNet Core 2.1网站以使用Azure AD B2C进行身份验证时遇到问题。我必须工作,但当我尝试将其调整到我自己的AD B2C租户时,我在以下代码中得到一个无效操作异常: private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedContext context) { var clientCredential = new ClientCredential(con

我在配置AspNet Core 2.1网站以使用Azure AD B2C进行身份验证时遇到问题。我必须工作,但当我尝试将其调整到我自己的AD B2C租户时,我在以下代码中得到一个无效操作异常:

   private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedContext context)
    {
        var clientCredential = new ClientCredential(context.Options.ClientSecret);
        var userId = context.Principal.FindFirst(ClaimTypes.NameIdentifier).Value;
        var tokenCache = new SessionTokenCache(context.HttpContext, userId);

        var confidentialClientApplication = new ConfidentialClientApplication(
            context.Options.ClientId,
            context.Options.Authority,
            _options.RedirectUri,
            clientCredential,
            tokenCache.GetInstance(),
            null);

        try
        {
            // this next line throws the exception
            var authenticationResult = await confidentialClientApplication.AcquireTokenByAuthorizationCodeAsync(context.ProtocolMessage.Code, _options.ApiScopes.Split(' '));
            context.HandleCodeRedemption(authenticationResult.AccessToken, authenticationResult.IdToken);
        }
        catch (Exception ex)
        {
            // TODO: Handle
            throw;
        }
    }
例外情况详情如下:

Microsoft.Identity.Client.MsalServiceException HResult=0x80131500
Message=AADSTS50049:实例未知或无效。跟踪ID: 1391c6be-c8f7-4c05-a575-b4998f79d800相关ID: 8b83a695-000f-44c2-99c1-d779725342da时间戳:2018-09-27 02:05:02Z
Source=Microsoft.Identity.Client StackTrace:位于 Microsoft.Identity.Client.Internal.OAuth2.OAuth2Client.CreateErrorResponse(HttpResponse 响应,请求上下文(请求上下文)位于 Microsoft.Identity.Client.Internal.OAuth2.OAuth2Client.CreateResponse[T](HttpResponse 响应、请求上下文、请求上下文、布尔addCorrelationId)
在 Microsoft.Identity.Client.Internal.OAuth2.OAuth2Client.d_u9
1.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.OAuth2.OAuth2Client.d_u7.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.Instance.AadAuthority.d_u4.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.Instance.Authority.d_u45.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.Requests.RequestBase.d_u37.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.Requests.RequestBase.d_u36.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.Internal.Requests.RequestBase.d_u33.MoveNext()
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在
Microsoft.Identity.Client.SecretentialClientApplication

这是我在应用程序中配置的。租户应用程序配置将api url设置为该url的“文件夹”(即,不包括用户.read的所有内容)…但我不确定我应该在租户应用程序中执行的其他配置。它如何知道user.read的含义


如果有人能告诉我一些关于如何建立广告B2C的介绍性材料,我将不胜感激。到目前为止,我所发现的内容假定了我显然不具备的知识水平。

如果您正在MSAL中使用您的租户名称.b2clogin.com域,那么(在撰写本文时)您必须:

  • 确保权限包含,因为这是

  • 什么是
    context.Options.Authority
    设置为?context.Options.Authority设置为该文本的完整版本是+/b2c\u 1\u SignUpIn/v2.0抱歉,我不知道如何避免编辑器截断长URL,因此我不得不将其拆分;“+”实际上不是URL的一部分如果您使用的是
    b2clogin.com
    域,则必须将
    secretentialClientApplication.ValidateAuthority
    属性设置为
    false
    ,因为MSAL无法识别该域。Progress!引发了另一个异常:反序列化Microsoft.Identity.Client.Internal.OAuth2.TokenResponse类型的对象时出错。遇到意想不到的人物"没关系",;我解决了这个问题--一个格式错误的实例属性。出于某种原因,我省略了url的/tfp组件。如果你愿意发表你的评论作为回答,我会接受的。