マルチテナンシー

このプラットフォームは、 サービスおよびサブサービスの概念に基づいてマルチテナントを実装します。サービスは、通常テナントに関連付けられたトップレベルのグループに対応しています。各サービス内では、特定のテナントが複数のサブサービスを設定できます。たとえば、テナントはマドリッド、パリ、ロンドンなどの都市を表し、テナント内のサブサービスはその都市の異なる垂直エリア(雷、交通、健康など)を表します。

認証と認可は、サービスとサブサービスに基づいています。言い換えれば、ユーザ/ロールのアクセスはサービスとサブサービスごとです。たとえば、特定のユーザが特定のサービスのすべてのサブサービスで読み取りのアクセス権を持ち、そのようなサブサービスのサブセット内の変更権限のみを持つことを定義できます。

サービスおよびサブサービスは、プラットフォームAPIでサポートされています。具体的には、サービスおよびサブサービスは、それぞれHTTPヘッダ Fiware-ServiceFiware-ServicePath によって指定されます。これらのヘッダを使用して、特定のサービス (たとえば、Data API を使用したエンティティの作成リクエスト) は、特定のサービスおよびサブサービスでスコープできます。たとえば :

POST /v2/entities
Content-Type: application/json
Fiware-service: smartown
Fiware-servicepath: /roads

{
  "id": "BCZ6754",
  "type": "Car",
  "speed": {
     "value": 54,
     "type": "Number"
  }
}

サービスには次の構文規則が適用されます :

  • 英数字とアンダースコア(_)のみ使用できます
  • 最大文字数は50文字です
  • 最小文字数は1文字です
  • 大文字を使用すると、小文字に変換されます

サブサービスには、次の構文規則が適用されます :

  • /文字で始まる必要があります
  • 最大文字数は50文字です
  • 最小文字数は1文字です
  • 英数字とアンダースコア(_)は許可されています(最初の`/'は除く)
  • 大文字と小文字を区別して解釈されます