繁体   English   中英

PHP:创建和使用REST和身份验证

[英]PHP: creating and consuming REST and authentication

我打算创建一些简单的REST Web服务,以供其他一些应用程序使用(所有内部应用程序,不面向Internet)。 由于某些原因,应用程序应与SSO(Windows,NTLM或其他)一起使用。 我的问题是如何在Web服务中进行身份验证。

调用Web服务的应用程序不知道用户密码,因此我迷失了如何在无需用户登录的情况下针对REST进行身份验证? 例如。 避免基本身份验证

我希望避免登录是因为用户简单易用,而不必在应用程序中处理密码。 我有什么选择? 我是否缺少明显的东西?

这将是一个解决方案:创建令牌,将其传递给服务并将其存储在数据库中。 Web服务检查令牌是否存在于数据库中。 (到期处理?)

如您所述,最常见的解决方案是基于简单密钥或令牌的身份验证。 这就是许多Google服务(例如地图)的工作方式。 您只需在服务提供商上为每个使用者生成一个密钥,然后将其存储在数据库中,并验证所有呼叫均传递了有效密钥。

更复杂的选项是HMACOAuth身份验证。 考虑到您的情况,即仅在您的Intranet内提供服务,我想说要保持简单,并进行单个密钥身份验证。

在上述情况下,我看不到需要处理到期时间。 但是,如果您想实现它,则可以

  • 在每个客户端请求上,在服务器上生成基于时间戳的令牌
  • 在您对请求的回复中,还包括此令牌
  • 客户应在后续请求中同时使用静态API密钥和动态令牌
  • 服务器应检查令牌的生存期,并在必要时接受/拒绝请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM