我正在设计一个 Erlang/OTP 应用程序,它将通过 RESTful API 公开其服务 (SOA)。
构成后端的服务将是数据库服务、价格计算服务等。
客户端可以有多种类型:Web 客户端、移动客户端、Asterisk 服务器客户端(需要在数据库服务中查找用户记录),甚至还有我不打算拥有且还不知道的客户端。客户端会以不同的方式使用 RESTful API:有些会使用所有服务,有些会只使用部分服务(SOA 方式)。
我主要关心的是身份验证/授权。
我不能使用 Ruby on Rails 的内置身份验证/授权,因为 Web 客户端只是许多可能的客户端中的一个客户端,它们将通过 RESTful API 使用应用程序。
所以,我的问题是:
- 对于预期与许多不同客户端一起使用的典型 RESTful Web 应用程序,身份验证/授权的一般概念是什么?
- 在 RESTful Web 应用程序中授权/认证最实用的软件设计模式是什么?
- 您可以推荐哪些 Erlang/OTP 开源软件库来为此类应用程序实现身份验证/授权?