【发布时间】:2016-12-08 08:52:02
【问题描述】:
我最近了解了 OIDC 如何在 OAuth 2 之上提供用户身份,并且还设法创建了一个 OIDC 登录到我的 web 应用程序。但是,当涉及到授权部分时,不清楚应用程序应该如何知道请求 API 的范围?
例如,某些端点应该受到“管理员”范围的保护,并且相应的 UI 元素应该对非管理员用户隐藏。我可以轻松实现强制部分,但是当用户登录时,应用程序需要知道用户是否是管理员 - 即是否请求“管理员”范围/显示与管理员相关的 UI 部分。
是否有任何标准方法可以在来自 IDP 的用户个人资料中表示特定于应用的详细信息?最令我不安的是,据我所知,此类信息无法添加到来自例如 Google/Twitter/Facebook 的用户配置文件中,因此需要 a)额外的层(IdentityServer/OpenAM/等),或 b)额外的webapp 数据库中的用户配置文件数据。
我的第一个想法是通过执行 a) 添加自定义声明 - 但是在与现有 IDP 集成时,可能无法调整所有用户配置文件(例如大型企业数据库),所以我假设应用程序它本身应该足够灵活,可以将现有的用户配置文件数据转换为“管理员/非管理员”。
有没有更好的解决方案?
【问题讨论】: