フルマネージド
コンテキストブローカー

NGSIv2 + NGSI-LD デュアルプロトコル/AI・地理空間ネイティブ/エンタープライズ認証認可/運用レス

FIWARE Orion 互換 フルマネージド Smart City / IoT Geolonia
v0.17.0 · Context Broker
会社紹介 / Company

会社概要

商号株式会社 Geolonia(Geolonia Inc.)
親会社ジオテクノロジーズ株式会社(GeoTechnologies, Inc.)
設立2019年8月
資本金67,022千円(資本準備金 45,010千円)
本社所在地〒113-0021
東京都文京区本駒込二丁目28番8号
役員
  • 代表取締役CEO 宮内 隆行
  • 取締役公共政策担当 関 治之
  • 取締役 西川 伸一
  • 社外取締役 八剱 洋一郎
  • 社外取締役 但馬 一幸
  • 社外取締役 足立 圭介
  • 社外取締役 藤田 博昭
  • 社外取締役 藤倉 庸子
  • 社外監査役 中瀬 美明
従業員数27名
主な納入先・実績
  • デジタル庁
  • 国土交通省
  • 国土地理院
  • NHK
  • ソフトバンク株式会社
  • 株式会社竹中工務店
  • 高松市
  • 焼津市
  • 那須塩原市
  • 延岡市
  • 鳥取県
政府の取り組みへの貢献
  • 空間ID(経済産業省 / DADC)
    ID 付与のための計算式の考案、共通ライブラリの無償提供
  • スマートシティリファレンスアーキテクチャ(内閣府)
    地理空間情報連携基盤の仕様策定、SCRA 第3版〜第5版の執筆
エグゼクティブサマリー / Executive Summary

自前運用のコストと手間をなくした
すべてのアプリケーションのバックエンドサービス

GeonicDB は FIWARE Orion 互換のコンテキストブローカー。刻々と変わるモノ・場所・人の状態を標準 API で登録・保持・問い合わせ・購読できる基盤を、フルマネージドサービスとして提供します。

標準化された API NGSIv2 と国際標準 NGSI-LD を 1 エンジンで両対応。ETSI 適合度 84.2% で主要 OSS 3 製品を上回り 1 位、ベンダーロックインもありません。
🔒shelter-map.geonicdb.app
避難所を検索
近くの避難所 10 件
AI 対応 MCP 対応で生成 AI から直接データ操作・アプリ開発が可能。「避難所アプリを作って」と頼むだけで、データもアプリも AI が組み上げます。
最適化されたコスト 固定サーバーを持たず、小さく始めて必要な分だけスケールアップ。事業計画にあわせて無理なく拡張できます。
コンテキストブローカーとは — 街じゅうのデータをつなぐデータの中継役コンテキストブローカーとは?— 街じゅうのデータをつなぐ「データの中継役」 —さまざまなデータ形式やルールがバラバラコンテキストブローカー受け取って・そろえて・届けるさまざまなサービス同じ形でかんたんに利用センサー気温・降雨・水位 など業務システム住民・施設・税 などオープンデータ公開された統計 などIoT機器・カメラ現場の機器 などコンテキストブローカーContext Brokerバラバラな形式を共通ルールに統一最新の状態をリアルタイムに一元管理誰でも同じ方法で取り出せる防災・避難マップ庁内ダッシュボード市民向けアプリAIAI分析・予測いわば、街じゅうの情報の「交換台」あちこちのバラバラなデータを共通のルールに翻訳してまとめ、使いたいサービスへ同じ形で届けます。※ データは国際標準のルール(NGSI-LD など)で表現・管理されます。
お客様のデータが GeonicDB で育ち、サービスを生み、その利用がさらにデータを増やす循環。地図・住所・人流はそれを補完するレイヤー

GeonicDB を中心としたエコシステム

分野を越えてつなぐデータ連携基盤。データがサービスを生み、サービスがデータを育てるエコシステム。

国際標準 / NGSI-LD

データ連携のための国際標準 NGSI-LD

欧州電気通信標準化機構(ETSI)が策定した、都市・IoT のデータを表すための国際標準(ETSI GS CIM 009)です。

  • オープンな仕様 — 欧州電気通信標準化機構(ETSI)が策定・公開する国際標準。仕様書は誰でも読める
  • 統一されたデータ表現 — 「もの」を軸に、「値」「つながり」「場所」を必要な分だけ付けて表す
  • 組織を越えた相互運用性 — つながりをたどれば、別部署・別システムのデータにも届く
  • 後方互換性 — 項目や関係は後から足せる。既存の連携が読んでいる項目は変わらないので影響しない
別部署のデータが、同じ「もの」を指すことでつながるもの:避難所urn:ngsi-ld:EvacuationArea:001名称値△△小学校収容人数値420 人場所場所34.3401, 134.0434所在地区つながりもの:水位計urn:ngsi-ld:Device:water-001水位値3.2 m09:00 時点監視区域つながり別部署のデータが同じ「もの」を指すもの:○○地区urn:ngsi-ld:AdministrativeArea:37201名称値○○地区人口値12,480 人
客観的な検証結果 / ETSI Conformance

主要製品を大きく上回る ETSI 適合度 84.2%

84.2% ETSI NGSI-LD 適合度
(870 / 1033 項目)

欧州電気通信標準化機構(ETSI)が策定する NGSI-LD の国際標準仕様「ETSI GS CIM 009」の適合性テストスイート(全 1033 項目)を、GeonicDB と主要 OSS コンテキストブローカー 3 製品に 同一条件で実行。GeonicDB が 4 製品中 1 位のスコアを記録しました。

84.2% GeonicDB Geolonia
51.6% Stellio Easy Global Market (EGM)
36.5% Scorpio NEC Laboratories Europe
24.6% FIWARE Orion-LD FIWARE Foundation

出典: ETSI GS CIM 009 適合性テストスイートを用いた自社計測(4 ブローカーへ同一条件で実行)。

コスト構造 / Scale-up

小さく始めて、必要になってからスケールアップ

GeonicDB は後からでも瞬時にスケールアップできるので、無駄なインフラ投資が必要ありません。

従来のデータ連携基盤 従来: 先に確保した容量と実際の利用の差が、そのままムダになる固定サーバーの上限使われないまま負担するコスト実際の利用⚡ ダウン1 年目2 年目3 年目4 年目

サーバーの性能をピークに合わせて用意するためコストが重く、それでいて想定を超えれば落ちてしまいます。

GeonicDB なら GeonicDB: 容量が利用にぴったり追従し、ムダが出ない従来の固定サーバーの上限この分は負担しなくていい利用度にあわせてスケールアップオートスケール1 年目2 年目3 年目4 年目

当面の利用規模に見合ったコスト負担で始められます。災害時の急増も自動で吸収するので、いざというときも落ちません。

※ スケールアップにはご契約プランのアップグレードが必要です。
※ GeonicDB のレート制限はソフトリミットです。災害等の理由で一時的に上限を超えた場合は無料でオートスケールします。

コスト構造 / Static Apps

連携アプリケーションのコストを大幅削減

連携アプリケーションは HTML / CSS / JavaScript だけの静的な構造で開発できるようになり、付加価値を産まないインフラコストを全額カットできます。

初期費用の一部と、ランニングコストの大半を占める自前のバックエンド・インフラは、GeonicDB が引き受けるため不要になる初期費用UI/UX・フロントエンドバックエンド・インフラランニングコスト(毎年発生)UI/UX・改善保守要員・サーバー機器の維持□GeonicDB が引き受けるため不要

連携アプリケーションをオープンソース化し共同利用を促進すれば、UI/UX の開発コストも大幅に削減することが可能になります。

※ 帯の幅は費目の大小を示すイメージであり、実測値ではありません。構成比は案件の性質により大きく変動します。
※ 自前のバックエンド・インフラは不要になりますが、GeonicDB のご利用料金は別途かかります。

柱 02 / AI Native

データの作成やアプリ開発は AI におまかせ

MCP サーバーや CLI があるため、各種設定やデータの作成、アプリの開発を AI に自然言語で頼むことができます。

✦ AI エージェント Claude・ChatGPT・Gemini など
🔒shelter-map.geonicdb.app
アプリのプレビュー
避難所を検索
近くの避難所 10 件

AI サービスは別途ご契約いただく必要があります。

基礎 / Multi-tenancy

マルチテナンシー: 1 つの基盤を分割してデータと権限を分離

1 つの GeonicDB をテナントで分割すると、それぞれが独立した基盤として、データと権限を分けて持てるテナントで分離都市計画課データ権限住民課データ権限デジタル戦略課データ権限

テナントは、独立した基盤として使うことができ、データと権限を分離することが可能

自動化 / ReactiveCore Rules

条件がそろえば、あとは自動

GeonicDB 内蔵のルールエンジン。条件は CEL 式なので、気温と湿度から不快指数を算出するような複数属性の演算もそのまま書けます。外部のワークフロー基盤を別途構築せず、ブローカー内で完結。

温湿度センサーEnvironmentSensor26.0°C50%31.0°C70%気温湿度temperaturehumidity不快指数が 80 以上になったら{ "type": "celExpression","expression":"0.81 * attribute.temperature.value+ 0.01 * attribute.humidity.value* (0.99 * attribute.temperature.value - 14.3)+ 46.3 >= 80" }評価値 73.1 — 条件を満たさない評価値 82.9 — 全員が不快⚡ 発火!このルールが実行する🔔 不快指数アラート通知sendNotification✏️ 警戒レベルを更新updateAttributeほかに選べるアクション🪝 Webhook 呼び出しwebhook🧬 派生エンティティ生成createEntity
データ連携 / Notifications

変化を好きな方法で受け取る

NGSI サブスクリプションの変化通知は、アプリやシステムの構成に合わせて複数のプロトコルから選べます。

1 つの変化通知が、プッシュ通知・WebSocket・その他(Webhook・MQTT)の 3 経路へ同時に配信されるエンティティ更新🔔 プッシュ通知Web Push(VAPID)— PWA へ OS レベルの通知⚡ WebSocketJWT・API Key・DPoP 認証つきリアルタイムストリーミング🪝 その他Webhook(HTTP)・MQTT(3.1.1/5.0)
プッシュ通知 Web Push(VAPID)。ブラウザ標準の Push API で、PWA に OS レベルの通知を配信。購読・解除は公式 SDK のヘルパー関数で完結します。
WebSocket JWT・API Key・DPoP 認証に対応したリアルタイムストリーミング。フィルタ条件付き購読・自動再接続をサポートします。
その他 Webhook(HTTP コールバック)と MQTT(3.1.1/5.0・QoS・TLS・retain)にも対応。既存システムや IoT デバイスとの連携に使えます。
データ連携 / Federation

組織をまたがってデータを集約

フェデレーションは、テナントやドメインの異なる複数の GeonicDB を 1 つの窓口にまとめる仕組み。手元の GeonicDB が問い合わせを別テナント・別ドメインの GeonicDB へ並列に転送し、返ってきた結果をひとつに束ねて返します。データを 1 か所にコピー・集約する必要はありません。

問い合わせる人GeonicDB(統合の窓口)別テナント/別ドメインの GeonicDB1 回たずねるだけGeonicDB問い合わせを並列転送 → 結果を束ねる形式が違っても自動でそろえて返す別テナント AGeonicDB · NGSI-LD別テナント BGeonicDB · NGSIv2別ドメインGeonicDB · NGSIv2🗂️データを1か所に集めない🔗テナント・ドメインをまたいで取得🔄形式が違っても自動変換

Context Source Registration にもとづく分散クエリ/更新の転送・結果マージ。ループ検知(Via)・警告ヘッダ(NGSILD-Warning)に対応(ETSI GS CIM 009)。

アプリ開発 / Secure by Default

セキュアなアプリケーション開発のための機能

GeonicDB は、認証情報を守る仕組みをブローカー本体と公式 SDK に寄せています。中心にあるのが DPoP(Demonstrating Proof-of-Possession / RFC 9449)— アクセストークンをそのクライアントだけが持つ秘密鍵に紐づけ、盗まれたトークンを使えなくします。

DPoP はアクセストークンをクライアントの秘密鍵に紐づけるため、トークンだけを盗んでも API を呼べない正規のアプリ秘密鍵はブラウザの中Authorization: DPoP <トークン>DPoP: <秘密鍵で署名した proof>トークンを盗んだ第三者秘密鍵は盗めないAuthorization: DPoP <盗んだトークン>DPoP: 署名を作れないGeonicDBDPoP 検証署名・宛先・時刻・鍵の一致✓ 200 OKデータを返す✕ 401 Unauthorizedトークンだけでは通らない
DPoP による API キーの保護 上図のとおり、トークンの文字列を盗まれても、秘密鍵がなければ API は呼べません(RFC 9449)。
アクセスコントロール API キーに origin 制限と DPoP 必須を設定。他サイトへコピーされた鍵は通りません。
XACML による認可 XACML で型・操作ごとに最小権限を割り当て。フロントに置く鍵でも被害範囲を限定できます。

※ このデッキのライブデモも、origin 制限+ DPoP 必須の API キー 1 つで GeonicDB(ステージング)へ接続しています。

セキュリティ / Auth & Authz

認証・認可

  • 5 種の認証 — JWT・API Key・OAuth 2.0・OIDC 外部 IdP・DPoP(RFC 9449)
  • XACML 3.0 単一レイヤ — 5 ロール × 属性ベースのきめ細かいポリシー
  • per-tenant IP 制限・監査ログ・トークン失効
  • PEP プロキシ(Wilma 等)を別途立てる必要がない
Policy: owner-only-access
target: entity.owner == ${subject.userId}
rules:
  - Permit read   if owner
  - Permit write  if owner
  - Deny   *      otherwise
# 所有者のみがアクセス可能
信頼性 / Reliability

信頼性

99.95%+ 想定可用性(稼働率)
  • サーバーレスで自動スケール
  • 冗長構成+マルチリージョン
  • 自動フェイルオーバー 10–30 秒
  • RTO < 5 分 / RPO < 1 分
GeonicDB の高可用システム構成図クライアント / SDK・CLIRoute 53 — ヘルスチェック / 自動フェイルオーバー切替リージョン A(プライマリ・稼働中)API GatewayAWS Lambda ×N(自動スケール)マルチ AZ 冗長 / 指数バックオフ再試行MongoDB Atlas3 ノード レプリカセットDynamoDBGlobal TablesMongoDB 自動リーダー選出(10–30 秒)・重要テーブルは PITRリージョン B(セカンダリ・待機)API GWLambdaMongo /DynamoDBレプリカ同期
ライブデモ / Live Demo

Live Demo

実際に GeonicDB へ接続したデモをご覧ください

LIVE
リンクトデータ / NGSI-LD

回答が「つながるデータ」になる

NGSI-LD(ETSI 国際標準)は、エンティティ同士が Relationship でつながるリンクトデータ。組織を越えても意味を保ったまま連携できます。

GeonicDB への期待度
回答の集計
ご所属
関心のあるユースケース
お住まいの地域
接続中… 回答は GeonicDB に実接続して作成し、WebSocket で受信しています 直近 1 週間の回答 0 件
LIVE
ジオクエリー / Geo-Query

Geo クエリーでデータを絞り込む

このページのデモは実際に GeonicDB に接続して動作しています。 地図データは香川県高松市が公開するオープンデータ(AED 設置場所)を利用しています。
LIVE
ユースケース・自治体 / 防災

避難所の混雑度を時系列データで

指定避難所の位置に Temporal API の受入状況を重ね、1 日の混雑の移り変わりを再生。下のスライダーで時刻を動かすと各避難所が混雑度で色分けされ、クリックすると 24 時間の推移が見られます。

避難所の位置・収容人数は高松市オープンデータ「指定緊急避難場所・指定避難所」(CC BY 4.0)。
LIVE
ユースケース・民間 / 共同編集 GIS

共同編集が可能な GIS

地図にポイント・ライン・ポリゴンを描くと NGSI-LD の地物として作成され、WebSocket で全員の画面にリアルタイム反映。現地調査・資産管理・エリア共有などを 1 つの地図で共同編集できます。

データは NGSI-LD として保存され、WebSocket で全員に配信されます
LIVE
ユースケース・民間 / メッセージング

リアルタイムメッセージング

投稿(名前+メッセージ)は NGSI-LD エンティティとして作成され WebSocket で全員に配信。サーバの ReactiveCore Rules が投稿を検知してログを自動記録します。メッセージとログを並べてリアルタイムに確認できます。

投稿すると ReactiveCore Rules がログを自動生成します
💬 メッセージ 0
📋 ログ 0
メッセージは geonicdb-livedeck-Message、ログは ReactiveCore Rules が生成する geonicdb-livedeck-MessageLog。WebSocket で全員に配信されます。
補足資料 / Appendix

Appendix

技術詳細・補足データ・参考情報

全機能カタログ / Feature Catalog

全機能カタログ ①

NGSIv2 API
  • エンティティ CRUD(一覧・ページング・フィルタ・ソート)
  • バッチ操作 POST /v2/op/update(append/update/delete/replace)
  • 属性レベル操作(get/set/delete・値のみ)
  • 型管理(型一覧・メタデータ)
  • サブスクリプション(Webhook/MQTT・条件・スロットリング)
  • レジストレーション/フェデレーション
NGSI-LD API(ETSI CIM 009)
  • 作成/取得/置換(PUT)/マージ(PATCH)/属性追加
  • マルチ属性(datasetId)
  • バッチ create/upsert/update/merge/delete/purge
  • サブスクリプション(cooldown・showChanges・指数バックオフ)
  • Context Source Registration(CSR)
  • 型・属性・JSON-LD コンテキスト管理
Temporal API(時系列)
  • 時系列データの作成・取得・バッチ操作
  • 時間演算子 timerel(after/before/between)・lastN
  • 集約 aggrMethods(count/sum/avg/min/max/stddev…)
  • temporalValues 簡易表現
  • MongoDB Time Series 格納・プラン別上限
地理空間(差別化の柱)
  • Geo クエリ georel(near/within/intersects/…)
  • 空間 ID(ZFXY)・spatialIdDepth 階層
  • CRS 変換(EPSG:4326/3857・URN)
  • GeoJSON 出力(options=geojson)
  • ベクトルタイル(TileJSON 3.0・自動クラスタリング)
データモデル・知識管理
  • Smart Data Models(8+ ドメイン/50+ 型)
  • カスタムデータモデル(JSON Schema 自動生成・検証)
  • データカタログ(DCAT/CKAN・全文検索)
  • CADDE 連携(ブローカー間データ交換)
イベント・リアルタイム
  • WebSocket ストリーミング(JWT/APIKey/DPoP・フィルタ・自動再接続)
  • MQTT サブスクリプション(3.1.1/5.0・QoS・TLS・retain)
  • Web Push(VAPID)サブスクリプション通知
  • ReactiveCore Rules(CEL 条件・アクション・クールダウン)
全機能カタログ / Feature Catalog

全機能カタログ ②

分散・フェデレーション
  • レジストレーション(外部プロバイダ登録・転送)
  • CSR/Subscription(NGSI-LD・ループ検知・警告伝播)
  • エンティティマップ(クエリ結果キャッシュ)
AI / LLM 統合(AI ネイティブ)
  • AI Plugin Manifest(/.well-known/ai-plugin.json)
  • llms.txt / tools.json / OpenAPI
  • MCP サーバ(POST /mcp)・A2A(POST /a2a)
  • 統一 5 ツール(entities/batch/temporal/config/admin)
SDK・CLI・開発者体験
  • JavaScript SDK(@geolonia/geonicdb-sdk)
  • 公式 CLI(geonic)— 管理・認証・JSON/YAML 出力
  • OpenAPI/Swagger(/openapi.json・/api.json)
マルチテナント・運用
  • マルチテナンシー(Fiware-Service/NGSILD-Tenant)
  • サービスパス階層・クォータ&レート制限
  • High Availability/フェイルオーバー(マルチリージョン)
  • ヘルスチェック・監視(Prometheus/X-Ray)
  • スナップショット・バックアップ
入力検証・制限値
  • 文字列長(ID/型/属性名 256・クエリ 2000)
  • 配列要素数(attrs/pick/omit 各 50・バッチ 100)
  • 数値境界(throttling・timeout・lastN)
  • ネスト深度 10・ReDoS 対策(正規表現 200 字)
  • 全入力を Zod スキーマで検証

※ 出典: GeonicDB プロダクトリファレンス「全機能カタログ(網羅的)」

LIVE
標準API / Dual Protocol

NGSIv2 と NGSI-LD に対応

1 つのブローカーで NGSIv2 と NGSI-LD の両方の標準 API に対応。用途に合わせてどちらの形式でもエンティティを取得できます。下のボタンで実際の API レスポンスを取得します。

NGSIv2FIWARE NGSIv2
GET /v2/entities/{id}
取得を待機中…
NGSI-LDETSI GS CIM 009
GET /ngsi-ld/v1/entities/{id}
取得を待機中…
GeonicDB に実接続し、実際の API レスポンスを表示しています
競合比較 / Comparison

FIWARE Orion との比較

機能GeonicDBFIWARE Orion
NGSIv2 / NGSI-LD◎ 両対応(1 エンジン)○ 製品が分離
Temporal API◎ フル△ 限定的
WebSocket / ベクトルタイル / 空間 ID◎✕
組込み JWT / RBAC / XACML◎✕ プロキシ別途
外部 OIDC / IP 制限 / DPoP◎✕
DCAT-AP / CKAN / CADDE◎✕
スケーリングオートスケール手動

出典: docs/FIWARE_ORION_COMPARISON.md。Orion はオンプレ/マルチクラウド/FIWARE スタック実績で優位。

AI 連携 / AI Integration

AI 連携の仕様

ディスカバリ(自律発見)
  • /.well-known/ai-plugin.json AI プラグインマニフェスト
  • /llms.txt LLM 向け概要(llmstxt.org 準拠)
  • /openapi.json・/api.json(OpenAPI 3.0)
  • /tools.json Tool Use / Function Calling スキーマ
  • いずれも未認証で取得可 → エージェントが自力で把握
MCP サーバー
  • POST /mcp(Model Context Protocol)
  • Streamable HTTP トランスポート(ステートレス)
  • Claude / Cursor など MCP クライアントから直結
  • 認証: Bearer(JWT)— ロールに応じた認可
A2A(Agent-to-Agent)
  • POST /a2a(JSON-RPC 2.0・protocol 0.2.2)
  • Agent Card /.well-known/agent-card.json
  • 同期リクエスト/レスポンス(タスク状態管理あり)
  • 認証: Bearer / API Key / OAuth2 / DPoP
統一 5 ツール(MCP・A2A・tools.json 共通)
  • entities — CRUD・型・属性・geo 検索
  • batch — 一括操作(最大 100 件)
  • temporal — 時系列・履歴
  • config — Rules・JSON-LD・Data Models
  • admin — ユーザー・テナント・ポリシー
認可(ロール連動)
  • ツール実行はアクセス主体のロールに従う
  • config / admin は tenant_admin / super_admin のみ
  • XACML 3.0 ポリシーをそのまま適用
  • エージェント経由でも権限は越えられない
相互運用
  • MCP 対応ツール(Claude Desktop / Code 等)
  • A2A 対応エージェント基盤
  • tools.json で OpenAI Function Calling 互換
  • SDK / CLI と同じ API・同じ認可で動作

※ エンドポイント定数は本体 src/config/defaults.ts(MCP_PATH / A2A_PATH / AGENT_CARD_PATH ほか)に準拠

管理機能 / Administration

管理機能

テナント管理
  • テナントの作成/更新/削除・有効化/無効化
  • クォータ・使用量(取得/更新・履歴)
  • per-tenant IP 制限(allowlist)
ユーザー・メンバーシップ
  • ユーザー CRUD・有効化/無効化・ロック解除
  • テナントへの所属追加/削除・所属一覧
  • パスワードポリシー(最小 12 文字)
認証情報の管理
  • API キー(作成/更新/失効/リフレッシュ)
  • OAuth クライアント(作成/更新/Secret 再生成/削除)
  • 本人用 /me 配下のキー・クライアント・ポリシー
ポリシー管理(XACML 3.0)
  • ポリシー CRUD・有効化/無効化
  • ポリシーセット・優先度・deny-fence
  • XACML エクスポート/インポート
監査ログ(Audit Log)
  • 「いつ・誰が・何を」を構造化記録(level=AUDIT)
  • 対象: エンティティ/バッチ・購読・管理操作・ログイン/トークン更新・特権読み取り
  • 記録項目: actor(id/email/role)・tenant・servicePath・resourceId・statusCode・clientIp・correlator/traceId
  • LOG_LEVEL=SILENT でも必ず出力(コンプライアンス用途)
監視・運用
  • メトリクス(/admin/metrics・API 呼び出し)・Prometheus・OpenTelemetry/X-Ray
  • ヘルスチェック(/health・/health/ready)
  • テナント削除+暗号消去(crypto-shred・KMS 鍵失効)+削除レポート
  • CADDE 設定管理
セキュリティ詳細 / Password

パスワードの保護

パスワードそのものを守る仕組みと、パスワードを当てにいく攻撃を止める仕組みの二段構えで守ります。

パスワードのハッシュ化 パスワードは PBKDF2-SHA512・10 万回反復、利用者ごとのランダムソルト付きで保存。万一 DB が流出しても、総当たり解読は非現実的です。
タイミング攻撃対策 比較は timingSafeEqual で定数時間。存在しないアカウントでも同じハッシュ計算を挟むため、応答時間からアカウントの有無を推測できません。
ブルートフォースアタック対策 15 分以内に 5 回失敗でアカウントを 60 秒ロック。2 回目の失敗からは待ち時間が 2 → 4 → 8 秒と倍増し、機械的な試行が続けられません。
パスワードスプレー対策 1 つの IP から多数のアカウントを 1 回ずつ試す攻撃には、5 分間に 20 回失敗でその IP を 15 分ブロックして対処します。
パスワードポリシー 12 文字以上を必須とし、記号や大文字は強制しません(構成ルールを課さない点は NIST SP 800-63B に沿う方針)。管理者発行の一時パスワードは 7 日で失効します。
セッションの即時失効 パスワードの変更・リセット・管理者による上書きのたびに、その利用者の既存トークンをすべて失効。旧パスワード時代のセッションは残りません。
API リファレンス / Query Parameters

クエリで使えるパラメータ

ページング・件数
  • limit 取得件数(既定 20・最大 1000)
  • offset オフセット(最大 10000)
  • count 総件数を返却
  • options keyValues / sysAttrs 等のフラグ
フィルタリング
  • type / id タイプ・ID(,区切り 各最大 100)
  • idPattern ID 正規表現(最大 200 字)
  • q 属性条件(例 temp>20;hum<80)
  • mq メタデータ条件(NGSIv2)
  • attrs 取得属性(最大 50)
属性選択・整形(NGSI-LD)
  • pick / omit 属性の選択・除外
  • lang 言語フィルタ
  • scopeQ スコープ条件
  • orderBy / orderDirection 並び替え
ジオクエリ
  • georel 関係(near;maxDistance==, within 等)
  • geometry 形状(Point / Polygon 等)
  • coordinates(LD)/ coords(v2)座標
  • geoproperty 対象プロパティ(既定 location)
  • orderByDistance 距離順
空間 ID・連携
  • spatialId / spatialIdDepth 空間 ID
  • crs 座標参照系
  • localOnly フェデレーション除外
  • join / joinLevel 関連エンティティ結合
主な制限値
  • バッチ最大 100 件 / 最大 Limit 1000(Admin 100)
  • ID・型・属性名 最大 256 字
  • クエリ文字列 最大 2000 字 / 正規表現 200 字
  • 属性リスト(attrs/pick/omit)最大 50
用語集 / Glossary

用語集

本資料で用いた専門用語の説明

A2A(Agent-to-Agent) AI エージェント同士が直接やり取りするための標準プロトコル。GeonicDB は Agent Card と JSON-RPC で対応。
AES-256-GCM/AWS KMS AES-256-GCM は強力な共通鍵暗号方式。AWS KMS はその暗号鍵を安全に保管・管理するクラウドサービス。
API キー プログラムからサービスを利用する際に使う、認証用の鍵。
CADDE 分野を越えてデータを安全に流通・連携させる、日本のデータ連携基盤。
CKAN/DCAT-AP オープンデータを公開・検索するためのカタログの標準と代表的ソフトウェア。
Context Broker さまざまなデータを共通ルールで受け取り・整え・配る「中継役」のソフトウェア。
DoS(サービス妨害) 大量のアクセスを集中させ、サービスを停止に追い込む攻撃。
DPoP(RFC 9449) トークンの持ち主であることの証明を求め、盗まれたトークンの悪用を防ぐ仕組み。
ETSI GS CIM 009 NGSI-LD を定める、欧州 ETSI の国際標準仕様。
FIWARE/FIWARE Orion-LD FIWARE はスマートシティ/IoT 向けのオープンソース基盤群。Orion-LD はその中核となる NGSI-LD 対応コンテキストブローカー実装。
GeoJSON 位置や形(点・線・面)を JSON で表す標準形式(RFC 7946)。
Geo-query(ジオクエリー) 「この範囲内」「近い順」など、位置情報でデータを絞り込む検索。
JSON-LD 意味づけ(リンクトデータ)を持たせた JSON 形式。NGSI-LD の土台。
JWT 改ざん検知の署名が付いた認証トークン。ログイン状態の受け渡しに使う。
MCP(Model Context Protocol) AI(LLM)が外部のツールやデータへ安全に接続するための標準プロトコル。
MQTT IoT 機器で広く使われる軽量な通信プロトコル。少ない通信量でメッセージを配信できる。
NGSI-LD コンテキスト情報を相互運用可能に表現する国際標準 API(ETSI)。
NGSIv2 FIWARE が定めるコンテキスト API 仕様。GeonicDB は NGSI-LD と両対応。
Nonce/Origin Nonce は一度きり有効な使い捨ての値(リプレイ防止)。Origin はアクセス元のドメイン。
OAuth 2.0/OIDC OAuth 2.0 はアクセス権限の委譲、OIDC はそこに本人確認を加えた認証の標準。
OpenAPI API の仕様を機械可読に記述するための標準フォーマット。
PBKDF2・ハッシュ・ソルト パスワードを復元できない形へ変換(ハッシュ)して保存する技術。ソルトは各パスワードに加える個別の値。
PEP(Policy Enforcement Point) 認可の判断を実際に適用する箇所。GeonicDB は本体に内蔵するため、別途プロキシを立てる必要がない。
PoW(Proof of Work) 処理の前に一定量の計算を求め、機械的な大量実行を割に合わなくする仕組み。
Property/Relationship/GeoProperty NGSI-LD の属性タイプ。値は Property、他エンティティへの参照は Relationship、位置は GeoProperty で表す。
RBAC 役割(ロール)ごとに権限をまとめて管理する方式。
ReactiveCore Rules 条件が満たされると自動で処理を実行する、GeonicDB のルールエンジン。
ReDoS 正規表現の弱点を突き、処理を極端に遅延させてサービスを止める攻撃。
RTO/RPO 障害復旧の目標値。RTO は復旧までにかかる時間、RPO は失われうるデータの時間幅。
Scorpio NGSI-LD に対応する OSS コンテキストブローカーの一つ。NEC の欧州研究拠点 NEC Laboratories Europe が開発し、FIWARE の Generic Enabler に採用されている。
Smart Data Models 分野ごとに標準化された NGSI-LD のデータモデル集。型と属性の定義を共通化できる。
SSRF サーバーをだまし、内部ネットワークやクラウド管理情報など内部資源へアクセスさせる攻撃。
Stellio NGSI-LD に対応する OSS コンテキストブローカーの一つ。Easy Global Market(EGM)が開発し、FIWARE の Generic Enabler に採用されている。
Temporal API データの過去の変化(時系列)を遡って取得できる API。
WebSocket サーバーとブラウザが双方向にリアルタイム通信する仕組み。
XACML 属性に基づき「誰が何をできるか」を細かく定義する、認可ポリシーの標準。
エンティティ(Entity) NGSI-LD でデータを表す単位。型と id を持ち、属性や Relationship で他のエンティティとつながる。
オートスケール(自動スケール) アクセス量に応じて、処理能力を自動で増減させる仕組み。
カスタムデータモデル 型・属性・制約を独自に定義したデータ構造。サーバー側でバリデーションに使われる。
監査ログ/トークン失効 監査ログは「いつ・誰が・何をしたか」の証跡。トークン失効は漏れた認証情報を無効化する仕組み。
空間 ID(ZFXY) 空間を立体的なマス目に区切り、1 つの ID で位置と範囲を表す日本発の方式。
サーバーレス サーバーの調達・管理をクラウド側に任せ、実際に処理された分だけ自動で確保・課金される方式。
サブスクリプション(購読) データの作成・更新・削除を条件付きで待ち受け、変化があった時点で通知を受け取る仕組み。
指数バックオフ 失敗のたびに待ち時間を倍々に延ばし、連続した試行を成立しにくくする手法。
冗長構成 同じ機能を複数用意し、一部が壊れても止まらないようにする構成。
スケールアップ/スケールアウト 処理能力の増やし方。スケールアップは 1 台あたりの性能を上げ、スケールアウトは台数を増やす。
ソフトリミット 超えた瞬間に遮断されない上限。一時的な超過は許容され、恒常的に超える場合に契約の見直しで引き上げる。
タイミング攻撃 処理にかかる時間のわずかな差から、秘密情報を推測しようとする攻撃。
テナント/マルチテナンシー 1 つの基盤を組織・プロジェクト単位で完全に分離して共有する仕組み。データも権限も混ざらない。
フェデレーション 複数のブローカーを 1 つの窓口に束ね、データを移さずに横断して問い合わせる仕組み(Context Source Registration にもとづく)。
フルマネージド サーバー運用・保守を提供側が引き受け、利用者は運用不要で使える形態。
ブルートフォース/パスワードスプレー 前者はパスワードを総当たりで試す攻撃。後者はありがちなパスワードを多数のアカウントへ広く試す攻撃。
ベクトルタイル 地図データを座標のまま小さなタイルに分けて配信する方式。拡大しても輪郭が滑らかで、表示を後から変えられる。
リンクトデータ データ同士を参照で結びつけ、意味を保ったままつなげる考え方。NGSI-LD の核となる発想。
レート制限(トークンバケット) 一定時間あたりの利用回数に上限を設ける仕組み。許容量を超えると一時的に拒否する。

都市 OS を、
フルマネージドサービスで。

運用レス・自動スケール・高可用。スマートシティと IoT の次の基盤を、いますぐ。

お問い合わせ・デモのご相談はお気軽に

Geolonia, Inc. · GeonicDB Context Broker

⇩
← → / Space で移動 · G で目次 · P で自動再生 · F で全画面 · Esc で解除