6. 認証・セキュリティ¶
6.1. カスタム API に対するアクセス制限¶
カスタム API に対する認証はアプリケーションキー認証、 アクセス制限の方法としては ACL を使用する方法と ユーザコード側でアクセスチェックを行う方法の2通りが提供されます。
6.1.1. アプリケーションキー認証¶
API Gateway の認証は、BaaS の他 REST API と同様、X-Application-Id, X-Application-Key ヘッダによるアプリケーションキー認証となります。
アプリケーションキー認証は必須であり、外すことはできません。
6.1.2. ACL¶
Swagger API 定義に ACL を記述することでアクセス制限を行うことが可能です。 具体的な方法はAPI Gateway 利用手順書の 認証・セキュリティ を参照してください。
6.1.3. ユーザコード側でのアクセスチェック¶
ハンドラに引き渡される context.Nebula にはカスタム API 呼び出し時のユーザ情報 (セッショントークン)が格納されていますので、これを使ってアクセス権限チェックを行うことが できます。
以下に例を示します。
exports.myhandler = (event, context) => {
const Nebula = context.Nebula;
// ログインしているかチェックしたい場合
if (!Nebula.isLoggedIn()) {
context.fail(new Error("Not logged in"));
}
// 所属グループをチェックする場合
const groups = Nebula.User.current().groups;
if (groups.indexOf("admin") < 0) {
context.fail(new Error("Unauthorized"));
}
...
なお、BaaS API を呼び出す場合は BaaSサーバ側で ACL のチェックが行われますので、 この権限チェックで十分な場合はユーザコード側でのアクセス権チェックは不要です。