Azure ad b2c 配置Azure AD B2C ApiScopes和ApiUrl
我在配置AspNet Core 2.1网站以使用Azure AD B2C进行身份验证时遇到问题。我必须工作,但当我尝试将其调整到我自己的AD B2C租户时,我在以下代码中得到一个无效操作异常: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
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=0x80131500Message=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组件。如果你愿意发表你的评论作为回答,我会接受的。