无法在APIGee中生成OAuth 2.0访问令牌
问题描述:
我是APIGee的新用户。 在我的项目中,我使用OAuth 2.0进行身份验证。但我无法生成访问令牌。 我已经创建了所有必需的策略,但我仍然一直得到相同的错误。无法在APIGee中生成OAuth 2.0访问令牌
这是我用来生成访问令牌的命令。
我正在使用邮递员生成访问令牌。
https://<myorgname>test.apigee.net/<myproxyname>/client_credential/accesstoken?grant_type=client_credentials&client_id=<myclient_id>&client_secret=<myclient_secret>’
我也试图与卷曲
https://<myorgname>test.apigee.net/<myproxyname>/client_credential/accesstoken?grant_type=client_credentials -X POST -d 'client_id=<myclient_id>&client_secret=<myclient_secret>’
他们都给出了同样的错误
{ “故障”:{ “faultstring”:“分类失败for host orgname-test.apigee.net“, ”detail“:{ ”code“:”CLASSIFICATION_FAILED“ } }}
请帮忙。 在此先感谢。
答
“分类失败”通常意味着该URL没有解析到任何端点。可能有以下几种原因:
- 您发送的网址错误。您需要发送的URL是hostname + basepath + pathsuffix。当您在Apigee中创建代理时,默认情况下您的basepath将看起来像/ v1/proxyname。确保/ v1不丢失。您也可以使用trace来查看主机名+ basepath应该是什么。
- 你打电话给https,但你的代理没有为它设置。确保您的ProxyEndpoint中引用了安全虚拟主机。
- 您的HTTP动词可能不正确。通常您需要使用POST来获取OAuth令牌。确保你的动词符合你的实施。如果您不使用CURL提供动词,则默认为GET。
- 可能不是您错误的原因,但OAuth参数通常通过x-www-form-urlencoded有效内容发送,而不是通过命令行。此外,通常通过基本身份验证传入客户端ID和密码。 Apigee默认预期这些位置。有关详细信息,请参见OAuth 2.0 spec和Apigee's docs。
答
此错误通常意味着消息处理器无法对请求进行分类 - 分类错误。这可能发生以下原因导致:
代理未部署到你打
-
请求主机头不匹配环境hostAlias环境在其上代理部署。在https://community.apigee.com/questions/13707/unable-to-identify-proxy-for-host.html
更多细节通常在APIGEE门户OAuth代理既不部署在“正式版”或“测试”开始。我们必须手动将其部署到任一环境才能运行。
你是对的迈克,事实上第4'选项的工作。之前我使用传递client_Id和client_secret作为表单载荷,而不是x-www-form-urlencoded载荷。只要我将其更改为x-www-form-urlencoded,它就开始工作。其次它适用于http和https,并生成令牌版本号不是必需的,正如你在第1点中提到的那样.Atleast它对我的情况起作用。无论如何非常感谢。 Nitin verma。 – user3386895