security oauth
JWT的RSA非对称密钥生成
使用jdk自带的keytool工具,执行后会在当前目录生成jwt.jks 密钥文件 cmd窗口 文件生成在当前目录
命令 keytool -genkey -alias auth -keyalg RSA -storetype PKCS12 -keysize 1024 -keystore jwt.jks
-alias:证书的别名。在一个证书库文件中,别名是唯一用来区分多个证书的标识符
-keyalg:密钥的算法,非对称加密的话就是RSA
-keystore:证书库文件保存的位置和文件名。如果路径写错的话,会出现报错信息。如果在路径下,证书库文件不存在,那么就会创建一个
-keysize:密钥长度,一般都是1024
-validity:证书的有效期,单位是天。比如36500的话,就是100年
输出秘钥信息
security 可以单独使用
可以和Oauth2配合使用
配合使用 有4中授权方式
1、授权码 最安全的一种授权方式
2、客户端 是比较信任的第三方应用 不需要 用户名密码 只需要客户端的账号 密码 授权方式
3、简单模式 对于没有后端页面的第三方应用
4、密码模式 密码会泄露给认证服务
授权码模式
1.首先密码账户登陆 http://localhost:6001/auth/oauth/authorize?client_id=c2&response_type=code&scop=all&redirect_uri=http://www.baidu.com
参数解析
client_id: 客户端ID
response_type:标识 code代表授权码 简单模式 token 直接返回token
scop:授权范围
redirect_uri:重定向的地址 response_type=code 返回的是授权码 response_type=token 返回的是一个token
2.同意授权 重定向获取授权码
3.拿着授权码 换取token(post请求)
获取token 需要post请求 http://localhost:6001/auth/oauth/token
在body中传递参数
client_id:客户端id
client_secret:客户端密码
grant_type:授权方式 authorization_code
scop:授权范围
redirect_uri :重定向的地址
code:授权码
密码模式获取token 比较简单 需要post请求 http://localhost:6001/auth/oauth/token
在body中传递参数
client_id:客户端id
client_secret:客户端密码
grant_type:授权方式 password
scop:授权范围
username:用户名称
password:用户密码
客户端模式获取token 比较简单 需要post请求 http://localhost:6001/auth/oauth/token
在body中传递参数
client_id:客户端id
client_secret:客户端密码
grant_type:授权方式 client_credentials
scop:授权范围
浙公网安备 33010602011771号