我正计划创建一些简单的REST Web服务,供其他一些应用程序使用(内部一切,不面向Internet)。出于某些原因,应用程序应与SSO(Windows,NTLM或其他)一起使用。我遇到的问题是如何在Web服务中进行身份验证。
调用Web服务的应用程序不知道用户密码,所以我很遗憾如何在没有用户登录的情况下对REST进行身份验证?例如。避免基本身份验证
我想避免登录,因为用户操作简单,无需在我的应用程序中处理密码。我有什么选择?我错过了一些明显的东西吗?
这是一个解决方案: 创建令牌,将其传递给服务并将其存储在数据库中。 Web服务检查数据库中是否存在令牌。 (到期处理?)
答案 0 :(得分:1)
如您所述,此问题最常见的解决方案是基于密钥或令牌的简单身份验证。这就是很多谷歌服务(例如地图)的工作方式。您只需为每个使用者在服务提供者上生成一个密钥,将其存储在数据库中,并验证所有呼叫都是否通过了有效密钥。
更复杂的选项是HMAC或OAuth身份验证。鉴于您的情况,即仅在您的Intranet内提供服务,我会说保持简单并使用单一密钥身份验证。
在上面的场景中,我没有看到处理过期的必要性。尽管如此,如果你想实现它,那么你可以