SlideShare uma empresa Scribd logo
1 de 37
Adding Identity Management, Access Control and
API Management in your system
(システムに ID 管理、アクセス制御、API 管理を追加)
A complete framework for Identity, Access Control and API
Management
Álvaro Alonso
FIWARE Security Chapter
(Translated into Japanese by Kazuhito Suda k@fisuda.jp)
ID管理 (Identity Manager)
2
ID管理 (Identity Manager)
3
Account
OAuth 2.0
4
OAuth 2.0
Login with
OAuth 2.0
▪ 資格情報を共有せずに制限されたリソースへのアクセスを
アプリケーションに提供するメカニズム
• アプリケーションは Oauth プロバイダ (FIWAREなど) が発行した
アクセス・トークンを使用してリソースにアクセスします
• OAuth 2.0 仕様は、HTTP で使用するように設計されています
▪ ロール:
• リソース所有者: 保護されたリソースへのアクセスを許可できるエン
ティティ (たとえば、エンドユーザ)
• リソース・サーバ: 保護されたリソースをホストするサーバ
• クライアント: リソース所有者に代わって保護されたリソース要求を
行うアプリケーション
• 認可サーバ: アクセス・トークンをクライアントに発行するサーバ
OAuth 2.0
▪ 認可コード・グラント
(Authorization Code Grant)
▪ インプリシット・グラント (暗黙的グランド)
(Implicit Grant)
▪ リソース・オーナー・パスワード・クレデンシャル・グラント
(Resource Owner Password Credentials Grant)
▪ クライアント・クレデンシャル・グラント
(Client Credentials Grant)
OAuth 2.0 アーキテクチャ
認可コード・グラント
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Architecture
インプリシット・グラント
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Architecture
リソース・オーナー・パスワード・クレデンシャル・グラント
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Architecture
クライアント・クレデンシャル・グラント
OAuth Provider
account.lab.fiware.org
OAuth 2.0 ライブラリ
▪ http://oauth.net/2/
• PHP, Cocoa, iOS, Java, Ruby, Javascript, Python.
▪ Node.js を使用した例
• https://github.com/ging/oauth2-example-client
12
FIWARE アカウントでの
OAuth2 クレデンシャル
保護されたユーザ情報の取得
14
Web App Account
OAuth2 requests flow
access-token
OAuthLibrary
アクセス・トークンを使ってユーザ情報をリクエスト
GET /user?access_token={token}
Web アプリケーション と GEs
15
Generic Enabler
Account
Request+
access-token
Oauth2 flows
access-token
OK + user info (roles)
Web App OAuthLibrary
access_token
GET https://GE_URL HTTP/1.1
Host: GE_hostname
X-Auth-Token: access_token
バックエンドのセキュリティ保護
16
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info (roles)
Oauth2 flows
access_token
GET https://PEP_PROXY HTTP/1.1
Host: PEP_PROXY_hostname
X-Auth-Token: access_token
FIWARE Lab アカウント での PEP Proxy
バックエンドのセキュリティ保護
▪ レベル 1: 認証 (Authentication)
• ユーザが FIWARE アカウントを持っているかどうか
をチェックします
▪ レベル 2: 基本的な認可 (Basic Authorization)
• ユーザがリソースにアクセスする権限を持っているか
どうかをチェックします
• HTTP 動詞 + リソース・パス
▪ レベル 3: 高度な認可 (Advanced Authorization)
• カスタム XACML ポリシー
* XACML : eXtensible Access Control Markup Language
レベル 1: 認証 (Authentication)
19
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info (roles)
Oauth2 flows
access_token
レベル 2: 基本的な認可 (Basic Authorization)
20
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info
Oauth2 flows
access_token
Authz PDP
GE
XACML <Request>:
roles + verb + path
OK
Basic RBAC policies in
XACML
(simple role permissions)
レベル 2: 基本的な認可 (Basic Authorization)
レベル 3: 高度な認可 (Advanced Authorization)
22
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy extension
Oauth2 flows
access_token
Auth PDP
GE
access-token
OK + user info
XACML <Request>:
roles + verb + path
OK
More generic ABAC
policies in XACML
(custom XACML Rules)
レベル 3: 高度な認可 (Advanced Authorization)
APInf と PEP Proxy
Back-end
Request+
APIKey
Web App
Back-end Back-end Back-end
APInf と PEP Proxy
Back
end
App
Account
Request+
access-tokenWeb App
OauthLibrary
PEP Proxy
access-token
OK + user info (roles)
Oauth2 flows
access_token
Back
end
App
Back
end
App
Back
end
App
IoT 認証 (IoT Authentication)
▪ Context Broker
• IoT 管理
• パブリッシュ / サブスクライブ モデル
□ コンテキスト・プロデューサ
□ コンテキスト・コンシューマ
▪ センサ認証 (Sensors Authentication)
• アプリケーション でのセンサ登録
• 各センサが、自身のアカウントを持つ
□ トークンの作成と検証
IoT 認証 (IoT Authentication)
27
Context Broker
Account
OK + user info (roles)
Context
Producer /
Consumer
access-token
update / query
Token creation
FIWARE アカウントでの IoT センサ
Industrial Data Space
FIWARE セキュリティによる対応
Industrial Data Space
Infrastructure
IdP PAP
Policies DB
PDP
Industrial Data Space
Context Consumer
Connector
Industrial Data Space
Context Producer
Connector
PEP
セキュリティ GEs
▪ Identity Management – Keyrock
▪ Authorization PDP – AuthZForce
▪ PEP Proxy – Wilma
▪ あなたのインフラに導入してください!!!
• セキュリティ GEs
インストールと設定ガイド
* PDP : Policy Decision Point (ポリシー決定点)
* PEP : Policy Enforcement Point (ポリシー実行点)
セキュリティ GEs – IdM - KeyRock
▪ APIs
• OAuth2
• リソース管理
• SCIM 2.0
▪ ソースコード
• https://github.com/ging/fi-ware-idm
▪ ドキュメント
• http://catalogue.fiware.org/enablers/identity-management-keyrock
▪ FIWARE OAuth2 デモ:
• https://github.com/ging/oauth2-example-client
31
新しい Keyrock をリリース
▪ カスタム・テーマをサポート
▪ 改善された OAuth 2.0 のリフレッシュトークンのサポート
▪ アプリケーションのアクセス許可の編集および削除
▪ 外部データベース認証のためのドライバ
▪ 登録済みアプリケーションで使用可能なグラント・タイプを設定するため
のサポート
▪ 改善された組織管理 (organizations management)
▪ クラウドの依存関係をクリーンアップ
▪ バックエンド DB として PostgreSQL をサポート
32
セキュリティGEs – PEP Proxy - Wilma
▪ ポリシー実行点 (Policy Enforcement Point)
▪ OAuth2 および Keystone トークンとの互換性
▪ ソースコード:
• https://github.com/ging/fi-ware-pep-proxy
▪ ドキュメント
• http://catalogue.fiware.org/enablers/pep-proxy-wilma
▪ グローバル・インスタンス
33
セキュリティ GEs – Authorization PDP – AuthZForce
▪ XML 最適化を使用した 100% XACML-3.0 標準準拠 および クラウド対応
RESTful ABAC フレームワークのシングル・オープン仕様
(Authorization PDP GE) および オープンソース実装 (GEri Authzforce)
▪ PDP(s)/PAP(s) のためのマルチテナント REST
▪ 標準:
• OASIS: XACML 3.0 + プロファイル (REST, RBAC, Multiple Decision)
• ISO: Fast Infoset
▪ 拡張性: 属性プロバイダ (PIP), ファンクション, 他
▪ PDP クラスタリング
34
2020年までに、大部分の企業は ABAC を重要な資産を保護する支配的なメカニズムとして
使用しますが、現在は5%未満です。 (Gartner, 2013)
IBAC
ABACRBAC
* PIP : Policy Information Point
* PDP : Policy Decision Point
* IBAC : Identity Based Access Control
* RBAC : Role-Based Access Control
* ABAC : Attribute-Based Access Control
セキュリティ GEs – Authorization PDP – AuthZForce
▪ FIWARE catalogue: https://catalogue.fiware.org/enablers/authorization-pdp-authzforce
▪ FIWARE Lab イメージ: authzforce-5.4.1
▪ Authorization PDP GE’s APIary: http://docs.authorizationpdp.apiary.io/#
▪ AuthzForce (GEri) ソースコード:
• WADL での API 仕様: https://github.com/authzforce/rest-api-model
• 実装: https://github.com/authzforce/server/
▪ AuthzForce ディストリビューション
• Ubuntu/Debian ライク: .deb / 他: Maven Central にある .tar.gz :
http://central.maven.org/maven2/org/ow2/authzforce/authzforce-ce-server-dist/
• Docker: https://hub.docker.com/r/fiware/authzforce-ce-server/
▪ テスト用グローバル・インスタンス: https://az.lab.fiware.org/authzforce-ce/
▪ ドキュメント: http://catalogue.fi-ware.org/enablers/access-control-tha-implementation/documentation
35
* WADL : Web Application Description Language
追加情報…
Account
National
eID
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
 
FIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソースFIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソース
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)
 
FIWARE Big Data Ecosystem : Cygnus
FIWARE Big Data Ecosystem : CygnusFIWARE Big Data Ecosystem : Cygnus
FIWARE Big Data Ecosystem : Cygnus
 
FIWARE implementation of IDS concepts
FIWARE implementation of IDS conceptsFIWARE implementation of IDS concepts
FIWARE implementation of IDS concepts
 
FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
 
FIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE Big Data Ecosystem : Cygnus and STH CometFIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE Big Data Ecosystem : Cygnus and STH Comet
 
FIWARE Overview and description of GEs
FIWARE Overview and description of GEsFIWARE Overview and description of GEs
FIWARE Overview and description of GEs
 
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.2.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.2.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 

Semelhante a FIWARE の ID 管理、アクセス制御、API 管理

Semelhante a FIWARE の ID 管理、アクセス制御、API 管理 (20)

OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
 
Cld014 セキュアな io_t_システ
Cld014 セキュアな io_t_システCld014 セキュアな io_t_システ
Cld014 セキュアな io_t_システ
 
Cld014 セキュアな io_t_システ
Cld014 セキュアな io_t_システCld014 セキュアな io_t_システ
Cld014 セキュアな io_t_システ
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピングAmazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
 
NGINXでの認可について考える
NGINXでの認可について考えるNGINXでの認可について考える
NGINXでの認可について考える
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
 
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
 
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティOAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
 
Sec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるidSec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるid
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402
 
Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要
 
Azure IoT Edge Deep Dive
Azure IoT Edge Deep DiveAzure IoT Edge Deep Dive
Azure IoT Edge Deep Dive
 
「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ
 
AWSの共有責任モデル(shared responsibility model)
AWSの共有責任モデル(shared responsibility model)AWSの共有責任モデル(shared responsibility model)
AWSの共有責任モデル(shared responsibility model)
 

Mais de fisuda

Mais de fisuda (20)

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.6.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.6.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.5.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.5.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.5.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.5.0対応)
 

FIWARE の ID 管理、アクセス制御、API 管理

  • 1. Adding Identity Management, Access Control and API Management in your system (システムに ID 管理、アクセス制御、API 管理を追加) A complete framework for Identity, Access Control and API Management Álvaro Alonso FIWARE Security Chapter (Translated into Japanese by Kazuhito Suda k@fisuda.jp)
  • 6. OAuth 2.0 ▪ 資格情報を共有せずに制限されたリソースへのアクセスを アプリケーションに提供するメカニズム • アプリケーションは Oauth プロバイダ (FIWAREなど) が発行した アクセス・トークンを使用してリソースにアクセスします • OAuth 2.0 仕様は、HTTP で使用するように設計されています ▪ ロール: • リソース所有者: 保護されたリソースへのアクセスを許可できるエン ティティ (たとえば、エンドユーザ) • リソース・サーバ: 保護されたリソースをホストするサーバ • クライアント: リソース所有者に代わって保護されたリソース要求を 行うアプリケーション • 認可サーバ: アクセス・トークンをクライアントに発行するサーバ
  • 7. OAuth 2.0 ▪ 認可コード・グラント (Authorization Code Grant) ▪ インプリシット・グラント (暗黙的グランド) (Implicit Grant) ▪ リソース・オーナー・パスワード・クレデンシャル・グラント (Resource Owner Password Credentials Grant) ▪ クライアント・クレデンシャル・グラント (Client Credentials Grant)
  • 12. OAuth 2.0 ライブラリ ▪ http://oauth.net/2/ • PHP, Cocoa, iOS, Java, Ruby, Javascript, Python. ▪ Node.js を使用した例 • https://github.com/ging/oauth2-example-client 12
  • 14. 保護されたユーザ情報の取得 14 Web App Account OAuth2 requests flow access-token OAuthLibrary アクセス・トークンを使ってユーザ情報をリクエスト GET /user?access_token={token}
  • 15. Web アプリケーション と GEs 15 Generic Enabler Account Request+ access-token Oauth2 flows access-token OK + user info (roles) Web App OAuthLibrary access_token GET https://GE_URL HTTP/1.1 Host: GE_hostname X-Auth-Token: access_token
  • 16. バックエンドのセキュリティ保護 16 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info (roles) Oauth2 flows access_token GET https://PEP_PROXY HTTP/1.1 Host: PEP_PROXY_hostname X-Auth-Token: access_token
  • 17. FIWARE Lab アカウント での PEP Proxy
  • 18. バックエンドのセキュリティ保護 ▪ レベル 1: 認証 (Authentication) • ユーザが FIWARE アカウントを持っているかどうか をチェックします ▪ レベル 2: 基本的な認可 (Basic Authorization) • ユーザがリソースにアクセスする権限を持っているか どうかをチェックします • HTTP 動詞 + リソース・パス ▪ レベル 3: 高度な認可 (Advanced Authorization) • カスタム XACML ポリシー * XACML : eXtensible Access Control Markup Language
  • 19. レベル 1: 認証 (Authentication) 19 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info (roles) Oauth2 flows access_token
  • 20. レベル 2: 基本的な認可 (Basic Authorization) 20 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info Oauth2 flows access_token Authz PDP GE XACML <Request>: roles + verb + path OK Basic RBAC policies in XACML (simple role permissions)
  • 21. レベル 2: 基本的な認可 (Basic Authorization)
  • 22. レベル 3: 高度な認可 (Advanced Authorization) 22 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy extension Oauth2 flows access_token Auth PDP GE access-token OK + user info XACML <Request>: roles + verb + path OK More generic ABAC policies in XACML (custom XACML Rules)
  • 23. レベル 3: 高度な認可 (Advanced Authorization)
  • 24. APInf と PEP Proxy Back-end Request+ APIKey Web App Back-end Back-end Back-end
  • 25. APInf と PEP Proxy Back end App Account Request+ access-tokenWeb App OauthLibrary PEP Proxy access-token OK + user info (roles) Oauth2 flows access_token Back end App Back end App Back end App
  • 26. IoT 認証 (IoT Authentication) ▪ Context Broker • IoT 管理 • パブリッシュ / サブスクライブ モデル □ コンテキスト・プロデューサ □ コンテキスト・コンシューマ ▪ センサ認証 (Sensors Authentication) • アプリケーション でのセンサ登録 • 各センサが、自身のアカウントを持つ □ トークンの作成と検証
  • 27. IoT 認証 (IoT Authentication) 27 Context Broker Account OK + user info (roles) Context Producer / Consumer access-token update / query Token creation
  • 29. Industrial Data Space FIWARE セキュリティによる対応 Industrial Data Space Infrastructure IdP PAP Policies DB PDP Industrial Data Space Context Consumer Connector Industrial Data Space Context Producer Connector PEP
  • 30. セキュリティ GEs ▪ Identity Management – Keyrock ▪ Authorization PDP – AuthZForce ▪ PEP Proxy – Wilma ▪ あなたのインフラに導入してください!!! • セキュリティ GEs インストールと設定ガイド * PDP : Policy Decision Point (ポリシー決定点) * PEP : Policy Enforcement Point (ポリシー実行点)
  • 31. セキュリティ GEs – IdM - KeyRock ▪ APIs • OAuth2 • リソース管理 • SCIM 2.0 ▪ ソースコード • https://github.com/ging/fi-ware-idm ▪ ドキュメント • http://catalogue.fiware.org/enablers/identity-management-keyrock ▪ FIWARE OAuth2 デモ: • https://github.com/ging/oauth2-example-client 31
  • 32. 新しい Keyrock をリリース ▪ カスタム・テーマをサポート ▪ 改善された OAuth 2.0 のリフレッシュトークンのサポート ▪ アプリケーションのアクセス許可の編集および削除 ▪ 外部データベース認証のためのドライバ ▪ 登録済みアプリケーションで使用可能なグラント・タイプを設定するため のサポート ▪ 改善された組織管理 (organizations management) ▪ クラウドの依存関係をクリーンアップ ▪ バックエンド DB として PostgreSQL をサポート 32
  • 33. セキュリティGEs – PEP Proxy - Wilma ▪ ポリシー実行点 (Policy Enforcement Point) ▪ OAuth2 および Keystone トークンとの互換性 ▪ ソースコード: • https://github.com/ging/fi-ware-pep-proxy ▪ ドキュメント • http://catalogue.fiware.org/enablers/pep-proxy-wilma ▪ グローバル・インスタンス 33
  • 34. セキュリティ GEs – Authorization PDP – AuthZForce ▪ XML 最適化を使用した 100% XACML-3.0 標準準拠 および クラウド対応 RESTful ABAC フレームワークのシングル・オープン仕様 (Authorization PDP GE) および オープンソース実装 (GEri Authzforce) ▪ PDP(s)/PAP(s) のためのマルチテナント REST ▪ 標準: • OASIS: XACML 3.0 + プロファイル (REST, RBAC, Multiple Decision) • ISO: Fast Infoset ▪ 拡張性: 属性プロバイダ (PIP), ファンクション, 他 ▪ PDP クラスタリング 34 2020年までに、大部分の企業は ABAC を重要な資産を保護する支配的なメカニズムとして 使用しますが、現在は5%未満です。 (Gartner, 2013) IBAC ABACRBAC * PIP : Policy Information Point * PDP : Policy Decision Point * IBAC : Identity Based Access Control * RBAC : Role-Based Access Control * ABAC : Attribute-Based Access Control
  • 35. セキュリティ GEs – Authorization PDP – AuthZForce ▪ FIWARE catalogue: https://catalogue.fiware.org/enablers/authorization-pdp-authzforce ▪ FIWARE Lab イメージ: authzforce-5.4.1 ▪ Authorization PDP GE’s APIary: http://docs.authorizationpdp.apiary.io/# ▪ AuthzForce (GEri) ソースコード: • WADL での API 仕様: https://github.com/authzforce/rest-api-model • 実装: https://github.com/authzforce/server/ ▪ AuthzForce ディストリビューション • Ubuntu/Debian ライク: .deb / 他: Maven Central にある .tar.gz : http://central.maven.org/maven2/org/ow2/authzforce/authzforce-ce-server-dist/ • Docker: https://hub.docker.com/r/fiware/authzforce-ce-server/ ▪ テスト用グローバル・インスタンス: https://az.lab.fiware.org/authzforce-ce/ ▪ ドキュメント: http://catalogue.fi-ware.org/enablers/access-control-tha-implementation/documentation 35 * WADL : Web Application Description Language