Web services RESTAPI认证机制
我正在使用自定义协议来保护我的REST API- 将一组唯一数据散列在一起(包括用户的令牌),并将其作为授权头发送(非常类似于) 目前,我正在让用户发送它的un\pw,以便为将来的所有呼叫获取令牌:Web services RESTAPI认证机制,web-services,security,rest,restful-authentication,Web Services,Security,Rest,Restful Authentication,我正在使用自定义协议来保护我的REST API- 将一组唯一数据散列在一起(包括用户的令牌),并将其作为授权头发送(非常类似于) 目前,我正在让用户发送它的un\pw,以便为将来的所有呼叫获取令牌: POST http://xxxx/token Body: {"username" : "Bob", "password":"foo"} 我的问题是如何保护生成用户令牌的初始登录调用?当前的情况足够好吗?您的解决方案看起来像是对一个j_security_servlet的调用,该servlet的正文中
POST http://xxxx/token
Body: {"username" : "Bob", "password":"foo"}
我的问题是如何保护生成用户令牌的初始登录调用?当前的情况足够好吗?您的解决方案看起来像是对一个j_security_servlet的调用,该servlet的正文中有用户名和密码。 您可以在此处找到有关servlet的更多信息: 您可能希望选择TLS安全连接来加密您发送的用户名/密码。 但您可能想考虑将HTTP基本身份验证与TLS或其他一些经验证的技术结合起来,而不是设计自己的技术
顺便说一句,我的答案是使用SSL/TLS。您也可以使用OAuth2,因为这基本上就是您要实现的。请参阅“4.3.资源所有者密码凭据授予”: 在OAuth2中,请求如下(来自RFC的示例): “Authorization”标头用于授权客户端应用程序,正文中的用户名/密码是用户的凭据 以下是相应的答复:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
OAuth2需要TLS/SSL来保证安全性(与brazo一样也提供了答案)
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}