【问题标题】:OAuth and authorizationOAuth 和授权
【发布时间】:2014-05-18 10:27:09
【问题描述】:

我构建了一个带有身份验证机制的 RESTful 服务。身份验证使用 OAuth 协议(使用来自 oauth.net 的库)。

我的服务是为学校管理服务。我现在只有教师小组。现在我还想添加学生面板,几乎相同,但我不希望学生能够编辑内容,因此在这种情况下需要授权。

当老师想登录时,他向'authentcation.php'发送post请求,如果字段有效,他从OAuth中取回身份验证令牌。学生登录 'authentication_students.php'

如何通过 OAuth 中的授权检查令牌是否有权编辑内容?

【问题讨论】:

  • OAuth 用于委托授权和身份验证,但并非真正用于“纯授权”。这就是 XACML 的用途......

标签: php authentication oauth-2.0 authorization


【解决方案1】:

OAuth 2.0 规范有意揭示了令牌验证,因此具体实施取决于您。服务器可以提供自定义端点,其中令牌有效性可以通过受保护的资源检查,或者以客户端可以直接解释而无需咨询服务器的格式发出令牌(参见例如 JWS:带有签名的 json Web 令牌)。

如果您使用的是库,则可以检查它支持哪种方法。

颁发令牌时,您应该为教师和学生请求不同的范围(类似于用户角色),以便您可以根据授予客户端的令牌范围允许或拒绝对受保护资源的访问。

【讨论】:

    【解决方案2】:

    令牌需要包含类似“canEdit”= true/false 的声明。在您的情况下,身份验证是从两个不同的页面完成的,因此填充此声明应该不是什么大问题?

    如果我完全离开这里,请告诉我?我错过了什么吗?

    【讨论】:

    • 但是我该如何检查呢?如何从令牌中获取 canEdit 值?
    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 2018-11-21
    • 2014-07-05
    • 2019-02-15
    • 2020-02-21
    • 2013-04-19
    • 2015-09-16
    • 2018-12-11
    相关资源
    最近更新 更多