0

私は mod_http_api をテストして、実装での mod_rest の既存の使用法を置き換える最中です。

オプション「admin_ip_access」を使用して、IP アドレスのグループから一部のコマンドへのアクセスを制限解除できます。一部のコマンド (change_password など) を正常に実行できます。

ただし、場合によっては、ユーザー (自分) と管理者 (自分と他のユーザー) の両方にログインが必要になる場合があります。

しかし、Basic Authでログインしようとすると. 成功していません。私は次のことを続けています。私の仮定が正しければ、これは構成に関連している可能性があります。

誰かが正しい構成を行う方法を教えていただければ幸いです。

{
  "status": "error",
  "code": 31,
  "message": "Command need to be run with admin priviledge."
}

現在の構成

modules:
  mod_http_api:
    admin_ip_access: admin_ip_access_rule

acl:
  admin_ip_acl:
     ip:
       - "xx.xx.xx.xx/32"

access:
  admin_ip_access_rule:
    admin_ip_acl:
       - all

編集

テスト目的で、次の構成を有効にしました。

commands_admin_access: configure
commands:
  - add_commands:
     - status
     - get_roster
     - change_password
     - register
     - unregister
     - registered_users
     - muc_online_rooms
     - oauth_issue_token

add_commandsタグ内にリストされているコマンドに対して、ユーザー コマンドと管理者コマンドの両方を正常に実行できました。期待どおりに動作します。ただし、IP 制限に関連するいくつかの問題にまだ直面しています。リストされていないホストから API を呼び出すことadmin_ip_aclも成功しましたが、ホワイトライトされていないホストを呼び出すとエラーが発生することが予想されます

4

1 に答える 1

0

API には、認証用の OAuth トークンが必要です。正しいスコープで生成する必要があります。コマンドが管理者に制限されている場合は、HTTP ヘッダー「X-Admin: true」も渡す必要があります。これにより、ejabberd は、管理者として行動したいと考えていることを認識できます。

于 2016-09-01T12:21:07.747 に答える