如何让我的最终用户(在 wso2 身份服务器下)订阅 wso2 api 管理器中的 api?

How do I make my end users (under wso2 identity server) subscribe to a api in wso2 api manager?

我目前正在 WSO2 API 管理器 (v2.6.0) 上进行 PoC。我已经有一个 Web 应用程序(例如:比萨饼预订)以及正在使用该应用程序进行比萨饼预订的注册客户(最终用户)。现在我想引入披萨预订应用程序的后端服务,例如

  1. 选择商店位置,
  2. 预订披萨,
  3. 跟踪订单等

as APIs 进入 WSO2 API 管理器。为此,我会在 API 管理器中创建所需的 api。然后我想将我现有的 Web 应用程序用户(最终用户)带入 API 管理器并提供对这些 api 的访问。

实现这个的最佳方法是什么?

  1. 将我的用户置于 WSO2 身份服务器下并将身份服务器用作我的 API 经理的密钥管理器?
  2. 将我的用户置于辅助用户存储下/使用 API 经理的自定义用户存储?

在那种情况下,我将如何提供对特定 API(订阅 API)的访问权限,而无需登录到 API 经理商店并为每个人手动订阅用户?

此外,

  1. Inbound认证下创建Service provider和创建Oauth应用有什么用?

  2. 我可以用这个应用程序做什么?

  3. 这与我们在 API 经理商店中订阅 API 之前创建的应用程序相同吗?

  4. 我可以将用户添加到此应用程序并授予他们共同的访问权限吗?

  5. 我可以使用此应用程序订阅 API,以便此应用程序下的所有用户都可以访问它吗?

您可以任意选择。使用 IS 作为密钥管理器(如果您已经使用 IS),或添加为辅助用户存储。

因此,如果您已经在部署中使用 WSO2 Identity Server,将其配置为密钥管理器(通过共享用户存储),将自动启用 IS 中的所有用户(具有适当权限)访问 api。

如果您目前不使用 IS,最好的选择是将其作为辅助用户存储添加到现有的 APIM 部署中。

请在下面找到其他问题的答案。

  1. Inbound认证下创建Service provider和创建Oauth应用有什么用?
  2. 我可以用这个应用程序做什么?
  3. 这与我们在 API 经理商店中订阅 API 之前创建的应用程序相同吗?
  4. 我可以将用户添加到此应用程序并授予他们共同的访问权限吗?
  5. 我可以使用此应用程序订阅 API 以便此应用程序下的所有用户都可以访问它吗?

回答

服务提供商在创建 Oauth 应用程序并生成密钥时自动创建。但是,这两个实体有不同的方面。

  • 服务提供商通常用于生成应用程序密钥以获取访问令牌以调用 api。

  • OAuth 应用程序(当您通过 API 商店创建时)还有其他几种用途,例如订阅 APIs、对订阅实施限制策略等。

为了使用应用程序生成的令牌,应用程序应订阅相应的 API。否则,即使您拥有有效的访问令牌,您也将无法调用 API。

您只能从通过 API 商店创建的 OAuth 应用程序订阅 API。

您的用户可以使用相同的 OAuth 应用程序(通过商店门户创建并订阅 API)为他们生成访问令牌。也就是说,通过向他们提供应用程序密钥并使用密码授予类型,他们可以为他们生成令牌

有关令牌 API 和授权类型的更多信息,请参阅此文档。 https://docs.wso2.com/display/AM260/Token+API

添加@Menaka 已解释的内容。

您的最终用户不必订阅 API。只有应用程序开发人员必须订阅消费者 key/secret 并将其嵌入到他们的应用程序中。然后应用程序应使用这些密钥对+最终用户凭据为最终用户生成令牌。