JWT认证实务

先行占坑。

JWT = header + payload + signature

Claims:Registered Claims and User Claims

Tips:

Signature Stripping,需要强制使用指定signature生成算法;

可以有多个jwt;

颁发refresh token,并由refresh token 换取 access token,refresh token 拥有 black list,可以 hit cache或者db;

并发问题,可以设置宽限时间。

明文:header与payload是明文base64的,可以轻易获取到。解决办法有二:加密\解密或者使用ssl。

加密方式:

对称加密HMAC。用同一密钥来Create & Verify;

非对称加密RSA-SSA。Private Key 用来 Create & Verify;Public Key 用来 Verify。这样Authentication Server可以拥有Private Key;其他Server拥有Public Key。

生成证书

keytool,http://jingyan.baidu.com/article/b0b63dbfe18eff4a483070f4.html生成的是jks私钥,然后cert证书公钥;

New-SelfSignedCertificatehttps://technet.microsoft.com/library/hh848633

生成cert证书,包含私钥

Export-PfxCertificate 然后生成pfx,或者在控制面板中的证书管理工具里,导出pfx

example:

New-SelfSignedCertificate -Type Custom -Subject "CN=Brilte PresentFish,OU=Yzbai,DC=brlite" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2","2.5.29.17={text}[email protected]") -KeyUsage DigitalSignature -KeyAlgorithm RSA -KeyLength 2048 -CertStoreLocation "C:\"


欢迎来访本人的github上项目:https://github.com/yzbai/HB.Framework,一个辅助最新asp.net core 2 的框架类库。

你可能感兴趣的:(JWT认证实务)