'Provided Authorization Grant is invalid' 尝试使用 wso2 登录 dockerized 应用程序时出错

'Provided Authorization Grant is invalid' error while trying to login a dockerized application using wso2

我已经 docker 化了我们的 Angular 应用程序,该应用程序一直使用 WSO2 作为 API 管理器。完成配置后,我能够成功 运行 应用程序并能够访问所有现有的 api。唯一的问题出现在我尝试使用 oath2/token api 来执行我们客户的登录操作时。尽管,相同的代码用于早些时候(在 dockerization 之前)执行身份验证没有任何问题,但现在我收到错误消息

{
  "error": "invalid_grant",
  "error_description": "Provided Authorization Grant is invalid"
}

用于登录的令牌生成 api:

https://<myapplicationurl>:9443/oauth2/token

尝试使用用户名 'devtest7@mailinator.com' 登录时 docker 控制台出现错误:

注意事项:

我尝试了在 Whosebug 上看到的解决方案,但没有解决我的问题。任何人都可以帮忙吗?

上面日志中有一行说SP租户不等于用户租户,SP不是SaaS。 SP 和用户是否来自不同的租户?通常用户不能跨租户访问SP。

如果要使 SP 可跨不同租户访问,则需要在 SP 中启用 SaaS 应用程序选项。查看此文档以了解有关 SaaS 应用程序的更多信息 https://docs.wso2.com/display/IS530/Adding+and+Configuring+a+Service+Provider

根据日志,它说

Non-SaaS service Provider's tenant domain is not same as user tenant domain; carbon.super != mailinator.com

根据日志,SP 在 carbon.super 租户中。但它将用户视为租户 mailinator.com

当我们指定使用电子邮件作为用户名进行密码授予的用户名时,我们必须使用具有租户域的完整用户名。 (devtest7@mailinator.com@carbon.super).

感谢所有发表评论并试图找出我提到的问题的解决方案的人。我得到了这个问题的解决方案。当我多次尝试通过配置中的排列和组合登录时,身份验证对我来说被阻止了。因此,我无法登录并生成访问令牌。我能够通过更改 identity.xml 文件中的标志来解决它 IS 。 将 UserOperationEventListener 启用从 'true' 更改为 'false' 。

之前:

<EventListener enable="true" name="org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener" orderId="95" type="org.wso2.carbon.user.core.listener.UserOperationEventListener"/>

之后:

<EventListener enable="false" name="org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener" orderId="95" type="org.wso2.carbon.user.core.listener.UserOperationEventListener"/>

此更改允许我阻止无效的身份验证检查。无论如何,我们正在从我们的代码端添加该检查。