Access Controlアクセス制御
アクセス制御
Included in the “Power Extensions” bundle
ユーザーのログイン状態、ロール、ケイパビリティなどに基づいて、スキーマへのきめ細かなアクセスを付与します。
説明
この拡張機能を使用すると、アクセス制御リストを作成し、GraphQLスキーマのさまざまな要素(オペレーション、フィールド、ディレクティブ)にアクセスできるユーザーを管理できます。
新しい「アクセス制御リスト」Custom Post Typeがサイトに追加されます。メニューの「アクセス制御リスト」ページでエントリを参照し、「新しいアクセス制御リストを追加」をクリックしてエディターに新しいエントリを追加できます。


エディターでは、オペレーション(query または mutation)、フィールド、グローバルフィールド、ディレクティブの中から、どのスキーマ要素にアクセスするためにどのルールを満たす必要があるかを指定します。

スキーマ設定を通じて、アクセス制御リストを目的のエンドポイント(プライベートエンドポイント、シングルエンドポイント、カスタムエンドポイント、または persisted queries)に割り当てます。

GraphQLクエリを実行する際、アクセス制御リストで選択されたスキーマ要素が含まれている場合、選択されたルールが評価されます。
いずれかのルールが満たされない場合、そのオペレーション、フィールド、またはディレクティブへのアクセスが拒否され、APIがどのようにレスポンスを提供するかを設定できます:
- パブリックモード:アクセスが拒否された理由をユーザーにエラーメッセージで通知する
- プライベートモード:エラーメッセージには、オペレーション、フィールド、またはディレクティブが存在しないことが示される
たとえば、パブリックモード では次のレスポンスが返される場合があります:
{
"errors": [
{
"message": "You must have role 'author' to access field 'title' for type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}プライベートモード では次のレスポンスが返される場合があります:
{
"errors": [
{
"message": "There is no field 'title' on type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}アクセス制御ルールの一覧
この拡張機能は以下のアクセス制御ルールを提供します:
- アクセスを無効にする
- ユーザーがログイン中またはログアウト中の場合のみアクセスを許可する
- ユーザーが特定のロールを持つ場合のみアクセスを許可する
- ユーザーが特定のケイパビリティを持つ場合のみアクセスを許可する
Next