解码ThinkTecture Identity Server JWT令牌

时间:2014-04-10 07:37:47

标签: token encryption-symmetric jwt thinktecture-ident-server thinktecture-ident-model

我已设法使用OAuth2从Identity Server获取JWT令牌,并希望从令牌中提取声明。

当我使用诸如https://developers.google.com/wallet/digital/docs/jwtdecoder之类的令牌解码器时,我可以在令牌内查看它看起来很好。

但是我不确定在c#中使用什么解密才能使用Microsoft JwtSecurityTokenHandler.ValidateToken来获取声明标识。

在身份服务器中,我使用的是对称密钥,我已将其粘贴在我的代码中以供参考。 JWT令牌也有效。

真的很感激一些帮助:

string token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vaWRlbnRpdHlzZXJ2ZXIudjIudGhpbmt0ZWN0dXJlLmNvbS90cnVzdC9jaGFuZ2V0aGlzIiwiYXVkIjoidXJuOndlYmFwaXNlY3VyaXR5IiwibmJmIjoxMzk3MTEzMDY5LCJleHAiOjEzOTcxNDkwNjksIm5hbWVpZCI6InN0ZWZhbiIsInVuaXF1ZV9uYW1lIjoic3RlZmFuIiwiYXV0aG1ldGhvZCI6Ik9BdXRoMiIsImF1dGhfdGltZSI6IjIwMTQtMDQtMTBUMDY6NTc6NDguODEyWiIsImh0dHA6Ly9pZGVudGl0eXNlcnZlci50aGlua3RlY3R1cmUuY29tL2NsYWltcy9jbGllbnQiOiJyZWx5aW5nIHBhcnR5IDMgdGVzdCBjbGllbnQgbmFtZSIsImh0dHA6Ly9pZGVudGl0eXNlcnZlci50aGlua3RlY3R1cmUuY29tL2NsYWltcy9zY29wZSI6InVybjp3ZWJhcGlzZWN1cml0eSJ9.cFnmgHxrpy2rMg8B6AupVrJwltu7RhBAeIx_D3pxJeI";

string key = "ZHfUES/6wG28LY+SaMtvaeek34t2PBrAiBxur6MAI/w=";

var validationParameters = new TokenValidationParameters()
{
    AllowedAudience = "urn:webapisecurity",
    SigningToken = new ????
    ValidIssuer = @"http://identityserver.v2.thinktecture.com/trust/changethis"
};

var tokenHandler = new JwtSecurityTokenHandler();
var principal = tokenHandler.ValidateToken(token, validationParameters);

我应该将哪种SigningToken用于validationParameters.SigningToken ??

1 个答案:

答案 0 :(得分:2)

这是一个BinarySecretSecurityToken - base64解码使用它的字符串化键。