IDX10501: Ошибка проверки подписи. kid: '[PII скрыт]', токен: '[PII скрыт]' - Azure B2C - PullRequest
2 голосов
/ 25 апреля 2019

Я создал пример приложения, в котором пользователь может проходить проверку подлинности с помощью Azure B2C, который работает нормально. Я получаю токен и AuthenticationResult. Оба в порядке. Но я хочу вернуть ClaimPrincipal из токена. Для этого я добавил в проект пакет nuget System.IdentityModel.Tokens.Jwt (5.4.0).

С помощью следующего кода я пытаюсь добиться:

string Token = "eyJ0eXAiOiJKV1QiLCJhbGciO*****"; //long token
JwtSecurityTokenHandler jwt = new JwtSecurityTokenHandler();

var validateParams = new Microsoft.IdentityModel.Tokens.TokenValidationParameters()
        {
          ValidIssuer = Authority, //https://login.microsoftonline.com/tfp/MYTEANANTNAME.onmicrosoft.com/MYPOLICYNAME/v2.0/" 
          ValidAudience = clientId,  //CLIENTID: Like: b430xxxx-xxxx-xxxx-xxxx-f5c33cxxxxxx
          ValidateAudience = true,
          ValidateLifetime = true,
          ValidateIssuer = true,
        };

SecurityToken secToken;
var claimPrincipal = jwt.ValidateToken(Token, validateParams , out secToken);

Но при каждом нажатии ValidateToken выдается следующее исключение:

IDX10501: Signature validation failed. Unable to match keys: 
kid: '[PII is hidden]', 
token: '[PII is hidden]'.

Есть ли у вас какие-либо советы, как мне решить эту проблему?

В этом случае приложение является консольным приложением ядра .net, но, в конце концов, этот код будет в приложении WPF.

1 Ответ

2 голосов
/ 03 мая 2019

Более подробную ошибку вы можете получить, установив следующий флаг.Это заменит [PII скрыт] (он же личная информация) с фактической ошибкой.

IdentityModelEventSource.ShowPII = true;
...