wso2 API-M 3.0 - 如何为 product/admin api 调用获取 oauth 令牌

wso2 API-M 3.0 - how to get oauth token for product/admin api calls

我正在使用通用 admin/admin 凭据测试 wso2 API-M 的预发布版本 3.0,并希望在 [=13] 调用各种发布者 apis =] - 例如创建一个新的 api。

所有这些 api 都采用 oauth 访问令牌,但是在他们的文档中我只看到了他们的 oauth2 范围,但我没有看到如何生成访问令牌以传递 api请求。
很清楚如何为 apis 和已经在 wso2 store/publisher 中创建的应用程序生成 oauth 令牌,但我一直没能找到如何为更高级别的产品生成 oauth 令牌 apis 在 https://docs.wso2.com/display/AM300/Product+APIs

我知道 wso2 的早期版本有 "carbon" 端点与管理和身份服务器 UI 这可能有助于解决这个问题,但这个新版本没有那个端点和 "admin" 我偶然发现的端点不会产生与 oauth 令牌相关的任何内容。关于如何获取 oauth 凭据以调用这些 api 的任何想法?谢谢。

您需要执行以下操作。

  1. 使用 DCR 端点,创建一个 oauth 应用程序并生成客户端密钥和密码。

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Basic YWRtaW46YWRtaW4=" --data @payload.json https://localhost:9443/api/identity/oauth2/dcr/v1.0/register -kv

payload.json内容

{
  "redirect_uris": [
    "http://localhost"
  ],
  "client_name": "name_1",
  "grant_types": [
    "password"
  ]
}

授权令牌是 Base64 编码的(用户名:密码)

  1. 使用密码授予类型获取访问令牌

    curl -X POST -H "Authorization: Basic MTNiYmM1ODAtYjkwYy00ZDg0LWE5NjItYjg4NTg2Yzk1MmEyOjYxZGE1M2YwLTkxN2MtNDhmNi1hYWEzLWVmMDU3NjEzMDdiMw==" -H "Content-Type: application/x-www-form-urlencoded" -d 'username=admin&password=admin' "https://localhost:9443/api/auth/oauth2/v1.0/token?grant_type=password&scope=scope" -kv

授权令牌是 Base64 编码的(clientId:clientSecret)

  1. 使用收到的令牌

    调用 API

    curl -X GET -H "Authorization: Bearer 9uAXi-J5GywvdTupCjbg005-NdqDSfD397vI_UKcbaw" "https://localhost:9443/api/am/publisher/v1.0/apis/" -kv

详情请参考以下内容

  1. https://docs.wso2.com/display/AM300/DCR+and+DCRM+APIs
  2. https://docs.wso2.com/display/AM300/Token+API