【问题标题】:Using external authentication server for WSO2 API Manager为 WSO2 API Manager 使用外部身份验证服务器
【发布时间】:2016-04-11 09:15:45
【问题描述】:

我对最终用户身份验证如何与 WSO2 AM 配合使用感到困惑。

默认情况下,WSO2 AM 充当 OAuth 流的用户身份验证服务器,因此根据通过 API 存储输入并存储在密钥管理器中的用户凭据来验证用户凭据。但这些用户不是目标 API 的最终用户,而是已注册构建应用程序以使用 API 的开发人员。这对我来说没有意义,所以也许我误解了文档?

我需要并且认为大多数其他 API 发布者需要的是针对 API 发布者的用户身份验证 API 对最终用户进行身份验证的能力,因此 WSO2 AM 通过重定向将用户身份验证委托给此类外部身份验证 API(以防万一授权授予或隐式授予流)或服务器-服务器调用(在资源所有者凭据授予的情况下)。

如何配置这样的设置,WSO2 AM 和外部身份验证 API 之间的接口是什么,用于重定向和服务器-服务器交互?您能否指出此类设置的任何文档或示例?

谢谢, 克里斯

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    我对此的看法是最终用户直接使用应用程序,而不是 API。应用程序开发人员构建使用 API 的应用程序。所以这符合 WSO2 API Manager 的理念,它迎合了应用程序开发人员。

    就 API Manager 而言,API 发布者的用户身份验证 API 只是另一个 API。您可以通过 API Manager 公开此 API,并让用户(或我认为的应用程序)使用指定的参数调用 API 并获得响应(在您的情况下,用户凭据作为参数和基于这些凭据的身份验证的响应)。底层 API 的作用与 API Manager 无关,它只是简化了 API 调用的管理。

    【讨论】:

    • 应用程序通常会向 API 发出经过身份验证的用户特定请求,以便为使用应用程序的用户提供服务。 OAuth2 [tools.ietf.org/html/rfc6749#section-1.3.3](resource owner password credentials grant) 是应用程序用来获取用户特定 OAuth 令牌的少数 OAuth 授权选项之一,它需要根据 API 发布者的用户身份验证 API 对用户凭据进行身份验证。作为参考,这里是 [apigee.com/docs/api-services/content/… 文档)关于如何做到这一点。
    【解决方案2】:

    应用通常会向 API 发出经过身份验证的用户特定请求,以便为使用应用的用户提供服务。 OAuth2 resource owner password credentials grant 是应用程序用来获取用户特定 OAuth 令牌的少数 OAuth 授权选项之一,它需要根据 API 发布者的用户身份验证 API 对用户凭据进行身份验证。作为参考,这里是apigee's documentation 的操作方法。

    【讨论】:

      【解决方案3】:

      wso2 APIM 有四个角色模型-> 管理员、创建者、发布者和订阅者。 因此具有创建者和发布者角色的人可以在发布者应用程序中创建和发布 api(他们是开发者)。 并且具有订阅者角色的人可以在商店中订阅 api 并生成 oath 令牌(他们是最终用户)。因此,每当用户从商店中注册时,都会被分配给订阅者角色。所以只有订阅角色的人是该api的最终用户。

      因此,当最终用户使用从商店获取的令牌访问 api 时,他将通过 APIM 进行身份验证。

      1.https://docs.wso2.com/display/AM160/User+Roles+in+the+API+Manager

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多