wso2 API Web 应用程序的授权和身份验证管理器

wso2 API manager for authorsation and authentication of a web application

我有一个 Web 应用程序,其中前端层有一个基于 angular 的 UI.It 有两个 public 页面和其他登录用户可以访问的私有页面,它取决于登录用户的角色 我的基于服务器的应用程序是基于 java 的休息服务 api .

我如何使用 wso2 来处理用户身份验证和基于角色的 authorsation.i 希望根据用户的角色有一个额外的 api 安全层。

有人可以解释一下 wso2 中的最佳架构吗? 如果我使用 wso2 api 管理器,我如何处理用户的登录以及如何将 api 访问与登录用户的角色相关联?

提前致谢

您可以使用 wso2 appmanager 来控制任何网络应用程序的访问[1]。应用程序管理器支持基于角色的访问控制以及基于 xacml 策略的访问控制。为了提供 api 级别基于角色的安全性,您可以在 wso2 api manager

中使用 scopes[2]

[1] https://docs.wso2.com/display/APPM120/Web+Application+Resource+Authorization

[2] https://docs.wso2.com/display/APPM120/Web+Application+Resource+Authorization

让我提出另一个解决方案。我还没有用 APIM 尝试过这个。但由于 APIM 还安装了 Identity 功能,因此这应该可行。

使用 OpenID Connect 登录。 See here 示例。此示例适用于 IS,但它也适用于 APIM。 APIM 中只有端点 URL 不同。

Token: https://localhost:8243/token 
Revoke: https://localhost:8243/revoke 
Authorize: https://localhost:8243/authorize 

在那里,当用户登录时,您会得到一个包含用户声明的 ID_token。根据这些数据,您可以 allow/deny 页面浏览量。

在上面的步骤中,您创建了一个 SP 并生成了一个客户端密钥-秘密对。您可以在 APIM 的应用程序中设置相同的密钥。 Read this

然后,正如我提到的 ,您可以使用作用域按角色保护您的 API。