在关键配置服务器中访问被拒绝的加密请求

Encryption request with access denied in pivotal config server

当我运行下面的脚本时,我得到以下return:

{"error": "access_denied", "error_description": "Access is denied"}

如何解决这个问题?

const request = require('request');
 
request({
  url: 'access_token_uri',
  method: 'POST',
  auth: {
    user: 'client_id',
    pass: 'client_secret'
  },
  form: {
    'grant_type': 'client_credentials'
  }
}, function(err, res) {
  var json = JSON.parse(res.body);
  encrypt(json.access_token, 'word');
});

function encrypt(token, word){
  request({
    url: 'uri/encrypt',
    method: 'POST',
    auth: {
      'bearer': token
    },
    body: word
  }, function(err, res) {
    console.log(res.body);
  });
}

很难从您的示例中分辨出来,但我认为您得到的令牌类型有误。对于 /encrypt 端点,您需要一个基于密码的令牌。

有关更多详细信息,请参阅 Get a Password Credentials Access Token 部分(我不能 link 直接转到该部分,您必须使用之前的 link 向下滚动到该部分)。

流程基本是这样的:

  1. cf login
  2. cf oauth-token
  3. curl -H "Authorization: <oauth-token>" https://uri/encrypt -d 'Value to be encrypted'

如果您想查看 cf cli 使用的 API,您可以 export CF_TRACE=true (Bash) 或 set CF_TRACE=true ( Windows) 然后重复命令。这将转储 HTTP request/response 信息。