繁体   English   中英

提取Azure AD B2C令牌时出错

[英]Error fetching Azure AD B2C token

我正在将Azure AD B2C用于我的Web应用程序的用户身份要求。 我正在使用ASP.NET Core 2.0 Razor Pages项目来构建Web应用程序。

如果用户在尝试访问网页时未通过身份验证,则会将他们路由到Azure AD B2C登录页面。 如果成功通过验证,它们将返回到我的Web应用程序。

我正在尝试使用此文档https://docs.microsoft.com/zh-cn/azure/active-directory-b2c/active-directory-b2c-access-tokens来获取返回的JWT令牌

我不断收到以下错误:

在此处输入图片说明

我正在使用以下代码来检索令牌。

string url = $"https://login.microsoftonline.com/{this._options.Domain}/oauth2/v2.0/authorize?";
            string policy = this._options.SignUpSignInPolicyId;
            string clientid = this._options.ClientId;
            string grantType = "authorization_code";
            Random random = new Random();
            int nonce = random.Next();
            string redirectUri = WebUtility.UrlEncode("https://localhost:44315/");
            string scope = WebUtility.UrlEncode($"https://{this._options.Domain}/notes/openid");
            const string responseType = "code";

            string request =
                $"{url}p={policy}" +
                $"&client_id={clientid}" +
                $"&grant_type={grantType}" +
                $"&nonce={nonce}" +
                $"&redirect_uri={redirectUri}" +
                $"&scope={scope}" +
                $"&response_type={responseType}";

            var response = await GetData(request);

从Azure AD B2C返回的声明似乎包含在User.Claims对象中。

if (User.Identity.IsAuthenticated)
{
    Claim emailClaim = User.Claims.FirstOrDefault(claim => claim.Type == "emails");
    Claim isNewClaim = User.Claims.FirstOrDefault(claim => claim.Type == "newUser");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM