0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Sync Gateway利用方法:アクセス確認

Last updated at Posted at 2021-11-16

アクセス確認

目的

管理REST APIを使用して、以下を確認することができます。

  • ユーザーがアクセスできるチャネル

  • ロールがアクセスできるチャネル

  • ドキュメントが割り当てられているチャネル

コンテクスト

ユーザーアカウントのall_channelsプロパティによって、ユーザーがアクセスできるチャネルが決まります。その値は、次の和集合から導き出されます。

  • 管理RESTAPIを使用して設定されるユーザーのadmin_channelsプロパティ。

  • ドキュメントの現在のリビジョンに対して呼び出されたSync関数からのaccess()呼び出しによって、ユーザーがアクセスを許可されたチャネル。

  • ユーザーが属するロールのall_channelsプロパティ。これは、上記のルールを介して決定されます。

エンドポイントの種類と利用法

ユーザー

/{tkn-db}/_user/{name}エンドポイントにGETリクエストを送信します。

ユーザーpupshawのアクセスを確認します。

curl http://localhost:4985/db/_user/pupshaw

以下の出力からユーザーpupshawは、以下のチャネルにアクセスできることがわかります。

  • allチャネル(admin_channels設定を通じて)
  • hoopyチャネル(froodsロールのadmin_channels設定を通じて)
{
    "admin_channels": [
        "all" 
    ],
    "admin_roles": [
        "froods"
    ],
    "all_channels": [
        "all",
        "hoopy" 
    ],
    "name": "pupshaw",
    "roles": [
        "froods"
    ]
}

ロール

/{tkn-db}/_role/エンドポイントにGETリクエストを送信します。

ロールfroodのアクセスを確認します。

curl http://localhost:4985/db/_role/frood

以下の出力からロールfroodは、以下のチャネルにアクセスできることがわかります。

  • hoopyチャネル(froodsロールのadmin_channels設定を通じて)
{
    "name": "froods",
    "admin_channels": [
        "hoopy" 
    ],
    "admin_roles": [
        "froods"
    ],
    "all_channels": [
        "hoopy" 
    ]
}

ドキュメント

/{tkn-db}/_alldocsエンドポイントにGETリクエストを送信します。

キーourdocを持つドキュメントがどのチャネルにアサインされているかを確認します。

curl http://localhost:4985/ourdb/_all_docs?channels=true&keys=[ourdoc]" -H "accept: application/json"

以下の出力からドキュメントourdocは、allhoopyチャンネルに割り当てられていることがわかります。
このドキュメントは、hoopyへ割り当てられているため、froodsロール、したがって、pupshawユーザーが利用することができることが分かります。

{
  "id": "ourdoc",
  "key": "ourdoc",
  "value": {
      "channels": [ 
          "short",
          "hoopy"
      ],
      "rev": "1-86effb929acbf953905dd0e3974f6051"
  }
}

関連情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?