Oauth 2.0 WSO2 IS:将OAuth授权代码流与SOAP API一起使用时出错

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内部服务器错误,响应主体为身份验证失败 以下是《邮递员》中的内容: 相同的访

我正在使用OAuth授权代码流对用户进行身份验证,并针对WSO2身份服务器对我的应用程序进行授权。我使用一个简单的node/express服务器和Passport.js获取访问令牌,Postman使用该访问令牌向SOAP API发出一些测试请求

当使用承载令牌方法授权我的应用程序时,我在IS日志中得到以下错误:
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(abcdefgh12345678xyzsecretkey)=>

  • 获取
    https://localhost:9443/oauth2/authorize?client_id=**abcdefgh12345678**&重定向\u uri=**http://locahost/callback**&响应类型=代码&范围=openid
  • 它将使用参数代码向回调url发出请求,比如code=this01is02your03code,请检查您的浏览器地址栏

  • 发布

  • 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(abcdefgh12345678xyzsecretkey)=>

  • 获取
    https://localhost:9443/oauth2/authorize?client_id=**abcdefgh12345678**&重定向\u uri=**http://locahost/callback**&响应类型=代码&范围=openid
  • 它将使用参数代码向回调url发出请求,比如code=this01is02your03code,请检查您的浏览器地址栏

  • 发布

  • 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授权代码流一起使用呢?在用户身份验证之后,如果您需要获取用户信息