【问题标题】:What is REST API and user roles design Best Practice?什么是 REST API 和用户角色设计最佳实践?
【发布时间】:2017-06-14 11:42:11
【问题描述】:

我正在开发一个 Grails REST 应用程序。我有三个用户角色:BusinessOwner、User、Admin、Public(非身份验证)

我有像api/business/1 这样的端点。

当具有 BusinessOwner 角色的用户调用它时,它会返回业务的所有详细信息,但如果具有公共(非身份验证)角色的用户调用它,它会返回详细信息的子集。 所以问题是如何实现端点:

1- 拥有一个类似api/business/1 的端点并检查用户角色是什么并返回正确的值(几个 if/else 语句,....)

2- 具有单独的 API 区域,如下所示,每个区域都有自己的特定安全性并返回特定子集:

api/admin/business/1

api/businessOwner/business/1

api/public/business/1

哪个更好?和

设计 REST API 和应用用户角色的最佳做法是什么?

【问题讨论】:

  • 选项 1。与选项 2 相比,这将允许轻松更改可用角色。

标签: java rest api grails


【解决方案1】:

身份验证和授权

我认为 URL 不应基于授权指示或以其他方式分隔 Web 服务。对于格式良好的 RESTful 服务,应在 HTTP 标头中发送令牌(就像在 OAuth 2.0 中一样)。

大多数成熟的 RESTful 框架都会内置授权流程。据我所知,它们都没有为同一服务实现不同的 URL 作为授权机制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2019-10-21
    • 2017-02-04
    • 2016-11-02
    • 2018-02-11
    相关资源
    最近更新 更多