使用WSO2 API管理器进行身份验证

使用WSO2 API管理器进行身份验证,api,authentication,wso2,wso2-am,Api,Authentication,Wso2,Wso2 Am,我们有一个三层系统,包括API服务器(后端)、客户端网站和最终用户。现在,身份验证发生在API服务器上,可以在两种情况下完成。在一种情况下,客户机网站直接使用令牌(客户机令牌)调用API,该令牌基于用户/通行证从服务获得,在另一种情况下,除了最终用户使用客户机网站登录到API服务器之外,身份验证发生在客户机网站以外的API服务器上。客户端站点获取另一个名为Auth token的令牌(用于最终用户调用),然后通过发送两个提到的令牌来调用最终用户请求的API。通过使用客户端和身份验证令牌,API服务

我们有一个三层系统,包括API服务器(后端)、客户端网站和最终用户。现在,身份验证发生在API服务器上,可以在两种情况下完成。在一种情况下,客户机网站直接使用令牌(客户机令牌)调用API,该令牌基于用户/通行证从服务获得,在另一种情况下,除了最终用户使用客户机网站登录到API服务器之外,身份验证发生在客户机网站以外的API服务器上。客户端站点获取另一个名为Auth token的令牌(用于最终用户调用),然后通过发送两个提到的令牌来调用最终用户请求的API。通过使用客户端和身份验证令牌,API服务器检查客户端和最终用户是否分别登录。对实体及其关系进行了说明

我想使用API管理器作为API服务器和客户端站点之间的网关,并使用它管理身份验证过程。 如何使用WSO2 API管理器实现此场景?
谢谢你的回复

APIM中支持相同的功能。您可以简单地从后端取消身份验证登录(或替换为简单登录),并使用APIM身份验证

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

欲了解更多详情,请阅读:


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

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

欲了解更多详情,请阅读:


扩展上一个答案

如果后端在API管理器(adviced)后面,API maanger可以将客户机/用户/应用程序信息作为JWT令牌传递给后端。因此,这确实是一个使用API管理器的好用例

编辑:根据评论扩展答案

在一个场景中,当用户登录到客户端网站时,它会传递给用户 &传递到API服务器。因此,API服务器检查U&P的有效性

事实上,使用默认的OAuth(代码或密码配置文件)是可行的

并创建一个身份验证令牌以及为用户创建一个会话

差不多好了。返回令牌后,API管理器中没有用户会话。所有授权都基于提供的令牌

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

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


在另一个场景中,客户端网站直接调用API,而不需要任何 来自最终用户的请求。在此方案中,身份验证令牌不存在


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

扩展先前的答案

如果后端在API管理器(adviced)后面,API maanger可以将客户机/用户/应用程序信息作为JWT令牌传递给后端。因此,这确实是一个使用API管理器的好用例

编辑:根据评论扩展答案

在一个场景中,当用户登录到客户端网站时,它会传递给用户 &传递到API服务器。因此,API服务器检查U&P的有效性

事实上,使用默认的OAuth(代码或密码配置文件)是可行的

并创建一个身份验证令牌以及为用户创建一个会话

差不多好了。返回令牌后,API管理器中没有用户会话。所有授权都基于提供的令牌

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

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


在另一个场景中,客户端网站直接调用API,而不需要任何 来自最终用户的请求。在此方案中,身份验证令牌不存在


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

感谢您的回复。但我希望使用APIM生成和处理第二个令牌(Auth-token),而不是将其传递给API服务器并对其进行处理。我可以这样做,还是最好将身份验证令牌传递到后端?我也更新了我的帖子,请参考它了解更多信息。谢谢@Bhathiya我不懂逻辑,我编辑了错误的答案(你的而不是我的),请拒绝编辑谢谢你的回答。但我希望使用APIM生成和处理第二个令牌(Auth-token),而不是将其传递给API服务器并对其进行处理。我可以这样做,还是最好将身份验证令牌传递到后端?我也更新了我的帖子,请参考它了解更多信息。谢谢@Bhathiya我不懂逻辑,我编辑了错误的答案(你的而不是我的),请拒绝编辑谢谢,请参考我给Bhathiya先生的答案,其中显示了我的要求@大卫比尔,简单点,伙计。APIM正在以某种方式工作,您正在假设一些可能不真实的事情:)请看编辑它不是我的假设,它是一个真正的系统,现在正在工作,由于阻力,我必须遵循它:)。事实上,我同意这种复杂性,所以我想使用API管理器简化它!根据您的回复,我发现API Manager上不能有两个身份验证令牌。那么,我只为应用程序身份验证实现客户端令牌,而最终用户身份验证保持现在的实现状态,这是一种好的方式吗?@DavidbIR您可以有两个令牌(用户和应用程序),但只发送一个令牌,这取决于特定cal的真正客户端是谁