使用WSO2 API Manager进行身份验证

时间:2017-09-19 04:41:47

标签: api authentication wso2 wso2-am

我们有一个包含三层的系统,包括API服务器(后端),客户端网站和最终用户。现在,身份验证发生在API服务器上,有两种情况。在一种情况下,客户端网站直接使用从基于用户/通过的服务获取的令牌(客户端令牌)调用API,在另一种情况下,除了最终用户使用客户端网站登录到API服务器,但在API服务器上进行了身份验证客户网站以外的内容。客户端站点获取另一个名为Auth Token的令牌(用于最终用户呼叫),然后通过发送两个提到的令牌来调用最终用户请求的API。通过使用客户端和身份验证令牌,API服务器会检查客户端和最终用户是否分别登录。实体及其关系如in here

所示

我想将API Manager用作API Server和Client Site之间的网关,并使用它来管理身份验证过程。 如何使用WSO2 API Manger实现此方案? 谢谢你的回复!

2 个答案:

答案 0 :(得分:0)

APIM支持相同的功能。您可以简单地从后端删除身份验证登录(或替换为简单登录)并使用API​​M身份验证。

APIM使用OAuth2。为满足您的要求,您可以使用不同的授权类型。对于客户端网站,您可以使用客户端凭据授予类型,对于最终用户,您可以使用其他授权类型,如密码或授权代码。

有关详细信息,请阅读:

https://docs.wso2.com/display/AM210/Quick+Start+Guide https://docs.wso2.com/display/AM210/Token+API

答案 1 :(得分:0)

扩展先前的答案..

如果后端位于API管理器(建议)后面,则API管理员可以将客户端/用户/应用程序信息作为JWT令牌传递给后端。事实上,这是一个使用API​​管理器的好用例

编辑:根据评论扩展答案

  

在用户登录客户端网站的一个场景中,它会传递给用户   &安培;传递给API服务器。因此,API服务器检查U& P

的有效性

确实,使用默认OAuth(代码或密码配置文件)将起作用。

  

并创建一个Auth令牌,同时为用户创建一个会话。

几乎不错。返回令牌,API Manager中没有用户会话。所有授权均基于提供的令牌。

  

的会话,即客户网站和最终用户   是否已登录。由两个令牌执行的检查过程

不。 APIM不会检查任何会话。它仅检查OAuth(承载)令牌。

  

并在另一个场景中客户端网站直接调用API而没有任何   来自最终用户的请求。在此方案中,auth令牌不存在

网站(让我们称之为应用程序)可以使用自己的凭据进行身份验证(所谓的client_credentials配置文件)。它可能会收到自己的OAuth应用程序令牌。