アクセス確認
目的
管理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
は、all
とhoopy
チャンネルに割り当てられていることがわかります。
このドキュメントは、hoopy
へ割り当てられているため、froods
ロール、したがって、pupshaw
ユーザーが利用することができることが分かります。
{
"id": "ourdoc",
"key": "ourdoc",
"value": {
"channels": [
"short",
"hoopy"
],
"rev": "1-86effb929acbf953905dd0e3974f6051"
}
}
関連情報