Oauth 2.0 WSO2 IS:将OAuth授权代码流与SOAP API一起使用时出错
我正在使用OAuth授权代码流对用户进行身份验证,并针对WSO2身份服务器对我的应用程序进行授权。我使用一个简单的node/express服务器和Passport.js获取访问令牌,Postman使用该访问令牌向SOAP API发出一些测试请求 当使用承载令牌方法授权我的应用程序时,我在IS日志中得到以下错误:Oauth 2.0 WSO2 IS:将OAuth授权代码流与SOAP API一起使用时出错,oauth-2.0,wso2,wso2is,Oauth 2.0,Wso2,Wso2is,我正在使用OAuth授权代码流对用户进行身份验证,并针对WSO2身份服务器对我的应用程序进行授权。我使用一个简单的node/express服务器和Passport.js获取访问令牌,Postman使用该访问令牌向SOAP API发出一些测试请求 当使用承载令牌方法授权我的应用程序时,我在IS日志中得到以下错误:0个在系统中注册的活动身份验证程序。系统应至少注册1个活动验证器服务。我在Postman中收到以下错误:500内部服务器错误,响应主体为身份验证失败 以下是《邮递员》中的内容: 相同的访
0个在系统中注册的活动身份验证程序。系统应至少注册1个活动验证器服务。
我在Postman中收到以下错误:500内部服务器错误
,响应主体为身份验证失败
以下是《邮递员》中的内容:
相同的访问令牌可用于REST API请求,如“”
有人能告诉我这里缺少什么吗?尝试从授权服务手动获取访问令牌并使用它 步骤1:获取授权码
https://:9443/oauth2/authorize?客户端\u id=&redirect\u uri=&response\u type=code&scope=openid
您将在回调URL上获得授权代码
步骤2:调用令牌服务获取访问令牌
Post https://<is_server_url>:9443/oauth2/token
Content-Type:application/x-www-form-urlencoded
Authorization:Basic <base64encoded "<client_id>:<client_secret>">
grant_type:authorization_code
scope:openid
code:<code_from_step_1>
redirect_uri:<callback_url>
服务器:localhost
base64encode(客户端id:client_secret)=base64encode(abcdefgh12345678:xyzsecretkey)=>
https://localhost:9443/oauth2/authorize?client_id=**abcdefgh12345678**&重定向\u uri=**http://locahost/callback**&响应类型=代码&范围=openid
Content-Type:application/x-www-form-urlencoded
Authorization:Basic **YWJjZGVmZ2gxMjM0NTY3ODp4eXpzZWNyZXRrZXk=**
标题
Content-Type:application/x-www-form-urlencoded
Authorization:Basic **YWJjZGVmZ2gxMjM0NTY3ODp4eXpzZWNyZXRrZXk=**
身体
grant_type:authorization_code
scope:openid
code:this01is02your03code
redirect_uri:http://locahost/callback
这将返回一个访问令牌,比如说服务器返回的令牌是12345678ASDFGH
现在,您可以使用此令牌调用任何RestFull或SOAP服务
Authorization: Bearer 12345678ASDFGH
尝试从授权服务手动获取访问令牌并使用它 步骤1:获取授权码
https://:9443/oauth2/authorize?客户端\u id=&redirect\u uri=&response\u type=code&scope=openid
您将在回调URL上获得授权代码
步骤2:调用令牌服务获取访问令牌
Post https://<is_server_url>:9443/oauth2/token
Content-Type:application/x-www-form-urlencoded
Authorization:Basic <base64encoded "<client_id>:<client_secret>">
grant_type:authorization_code
scope:openid
code:<code_from_step_1>
redirect_uri:<callback_url>
服务器:localhost
base64encode(客户端id:client_secret)=base64encode(abcdefgh12345678:xyzsecretkey)=>
https://localhost:9443/oauth2/authorize?client_id=**abcdefgh12345678**&重定向\u uri=**http://locahost/callback**&响应类型=代码&范围=openid
Content-Type:application/x-www-form-urlencoded
Authorization:Basic **YWJjZGVmZ2gxMjM0NTY3ODp4eXpzZWNyZXRrZXk=**
标题
Content-Type:application/x-www-form-urlencoded
Authorization:Basic **YWJjZGVmZ2gxMjM0NTY3ODp4eXpzZWNyZXRrZXk=**
身体
grant_type:authorization_code
scope:openid
code:this01is02your03code
redirect_uri:http://locahost/callback
这将返回一个访问令牌,比如说服务器返回的令牌是12345678ASDFGH
现在,您可以使用此令牌调用任何RestFull或SOAP服务
Authorization: Bearer 12345678ASDFGH
WSO2 Identity Server中的SOAP API无法使用承载令牌进行身份验证。它们可以通过基本身份验证和cookie进行身份验证。这就是在响应中获得
身份验证失败
的原因
但Identity Server中的REST API可以使用承载令牌进行身份验证。因此,
/scim2/Me
使用访问令牌成功进行身份验证。WSO2 Identity Server中的SOAP API无法使用承载令牌进行身份验证。它们可以通过基本身份验证和cookie进行身份验证。这就是在响应中获得身份验证失败
的原因
但Identity Server中的REST API可以使用承载令牌进行身份验证。因此,
/scim2/Me
使用访问令牌成功进行身份验证。OAUTH没有“-”,您能否从令牌中删除“-”,然后重试,同时您能否告诉我在REST API中,您是在令牌字段中传递“-”,还是在notHi@amg\u amit中传递“-”,谢谢您的响应!我对REST端点使用完全相同的访问令牌,包括破折号(-),并返回预期的用户数据。我尝试删除这两个请求的令牌中的破折号,但都失败了。在Postman中,有一个标题选项卡,您可以选择它并粘贴标题值,该标题位于Authorization tabHi@amg\u amit旁边,下面是标题值:Authorization:Bearer 873b4a13-a49b-321f-b43b-7a5e8eb6fc59 Content Type:text/xmlI可能还应该提到,如果我使用Basic Auth,请求可以工作。OAUTH没有“-”,您可以从令牌中删除“-”,然后重试,同时您可以告诉我在REST API中,您是在令牌字段中传递“-”还是不传递@amg_amit,谢谢您的回复!我对REST端点使用完全相同的访问令牌,包括破折号(-),并返回预期的用户数据。我尝试删除这两个请求的令牌中的破折号,但都失败了。在Postman中,有一个标题选项卡,您可以选择它并粘贴标题值,该标题位于Authorization tabHi@amg\u amit旁边,以下是标题值:Authorization:Bearer 873b4a13-a49b-321f-b43b-7a5e8eb6fc59 Content Type:text/xmlI可能还应该提到,如果我使用基本Auth,请求也可以工作。您好,Manduraga,感谢您的回复。我对如何获得安全的OAuth授权流感到有点困惑。如果我使用OAuth2.0对用户进行身份验证,那么我只有一个承载令牌,对吗?那么,我如何将SOAP API与OAuth2.0授权代码流一起使用呢?在用户身份验证之后,如果您需要获取用户信息