Ошибка при получении токена Azure AD B2C

Я использую Azure AD B2C для требований удостоверения пользователя моего веб-приложения. Я использую проект Razor Pages ASP.NET Core 2.0 для создания веб-приложения.

Если пользователь не прошел проверку подлинности при попытке доступа к веб-странице, он перенаправляется на страницу входа в Azure AD B2C. Затем они возвращаются в мое веб-приложение в случае успешной аутентификации.

Я пытаюсь получить возвращенный токен JWT с помощью этого документа https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-access-tokens

Я получаю следующую ошибку:

введите здесь описание изображения

Я использую следующий код для получения токена.

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);

person DomBurf    schedule 14.03.2018    source источник
comment
Привет, @DomBurf. Не могли бы вы уточнить, создаете ли вы запрос авторизации или запрос токена в приведенном выше коде?   -  person Chris Padgett    schedule 15.03.2018
comment
Привет, я создаю запрос токена.   -  person DomBurf    schedule 15.03.2018
comment
Мое веб-приложение ASP.NET Core 2.0 использует Azure AD B2C для регистрации / входа в систему. Я хочу получить токен JWT, который возвращается, когда пользователь входит в систему. Любые примеры будут очень признательны.   -  person DomBurf    schedule 15.03.2018


Ответы (1)


Казалось бы, утверждения, возвращаемые из 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");
}
person DomBurf    schedule 15.03.2018