zf2教义2 Zestful服务登录认证授权ACL

Posted

技术标签:

【中文标题】zf2教义2 Zestful服务登录认证授权ACL【英文标题】:zf2 doctrine2 Zestful services Login authentication authorization ACL 【发布时间】:2013-09-16 18:28:36 【问题描述】:

我正在 ZF2 中构建 Restful Web 服务 (CURD)。我发现很多关于在 zf2 中构建 RESTful Web 服务的资源,但没有找到关于在 zf2 中使用 acl 进行用户授权的任何资源

我需要一些关于在 zf2 中实现身份验证和 authorization using ACL 作为 Web 服务的一部分的指导。

每个用户都有一个角色,每个角色都可以访问有限的资源(例如 curd 操作)。

用户将能够根据其在数据库中的权限执行 curd 操作,该权限可以使用特定角色的 RESTful 服务获取。

但是,首先需要使用服务对客户端用户名和密码进行身份验证,并在成功时返回允许的资源列表。 我不确定这适合凝乳的什么地方。我打算使用带有 HTTP 摘要的 curl 并返回 json (这是正确的方法吗?还是有更好的选择?)

然后这些资源将被加载到acl中用于客户端控制器的授权,用户基本信息将保存在会话中以供进一步使用。

每个请求/动作都将在客户端应用程序中(在控制器中)进行/执行,并且控制器动作将使用 CURL 访问服务以进行 CURD 操作

每个 Curl 服务请求都将使用 http 摘要进一步进行身份验证。

这样,Restfull 服务将只执行 Curd 操作,而 ACL 将在客户端应用程序上处理。

有没有人在 zf2 acl 中实现过 restful 服务和登录认证和授权。

抽象图看起来像这样。

我已阅读以下内容,但仍然不知道这是否是正确的暗示方式。上面有什么关于 zf2 和教义 2 的推荐读物吗?

how-do-i-implement-login-in-a-restful-web-service

designing-restful-login-service

【问题讨论】:

您的问题标题似乎是无意义的关键字。能改一下吗? 【参考方案1】:

如果您想要处理从客户端应用程序到 API 服务器的身份验证,您应该尝试使用 password 授权类型使用Oauth2。它将被实现为 POST /oauth 端点。然后来自客户端的每个后续请求都应该有一个 Authorization 标头,您可以使用它来识别用户并应用 ACL。

但是,由于您使用的是 ZF2,我强烈建议您为此使用 Apigility。它与 ZF2 很好地集成,处理身份验证和授权并简化了许多事情。

【讨论】:

以上是关于zf2教义2 Zestful服务登录认证授权ACL的主要内容,如果未能解决你的问题,请参考以下文章

从服务定位器调用教义 2 实体时调用成员函数 get()

kafka安全认证与授权(SASL/PLAIN)

zend框架中的身份验证+ acl 2

BIND服务rndc的配置,子域授权,区域转发及acl

Zookeeper权限acl,acl的构成 scheme与id

SpringCloud微服务安全API安全 2-8 授权