Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

370 views

Published on

FIWARE の ID 管理、アクセス制御、API 管理の Generic Enaber の Keyrock, AuthZFroce, Wilma の紹介資料です。

Published in: Software
  • Be the first to comment

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

  1. 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)
  2. 2. ID管理 (Identity Manager) 2
  3. 3. ID管理 (Identity Manager) 3 Account
  4. 4. OAuth 2.0 4
  5. 5. OAuth 2.0 Login with
  6. 6. OAuth 2.0 ▪ 資格情報を共有せずに制限されたリソースへのアクセスを アプリケーションに提供するメカニズム • アプリケーションは Oauth プロバイダ (FIWAREなど) が発行した アクセス・トークンを使用してリソースにアクセスします • OAuth 2.0 仕様は、HTTP で使用するように設計されています ▪ ロール: • リソース所有者: 保護されたリソースへのアクセスを許可できるエン ティティ (たとえば、エンドユーザ) • リソース・サーバ: 保護されたリソースをホストするサーバ • クライアント: リソース所有者に代わって保護されたリソース要求を 行うアプリケーション • 認可サーバ: アクセス・トークンをクライアントに発行するサーバ
  7. 7. OAuth 2.0 ▪ 認可コード・グラント (Authorization Code Grant) ▪ インプリシット・グラント (暗黙的グランド) (Implicit Grant) ▪ リソース・オーナー・パスワード・クレデンシャル・グラント (Resource Owner Password Credentials Grant) ▪ クライアント・クレデンシャル・グラント (Client Credentials Grant)
  8. 8. OAuth 2.0 アーキテクチャ 認可コード・グラント OAuth Provider account.lab.fiware.org
  9. 9. OAuth 2.0 Architecture インプリシット・グラント OAuth Provider account.lab.fiware.org
  10. 10. OAuth 2.0 Architecture リソース・オーナー・パスワード・クレデンシャル・グラント OAuth Provider account.lab.fiware.org
  11. 11. OAuth 2.0 Architecture クライアント・クレデンシャル・グラント OAuth Provider account.lab.fiware.org
  12. 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
  13. 13. FIWARE アカウントでの OAuth2 クレデンシャル
  14. 14. 保護されたユーザ情報の取得 14 Web App Account OAuth2 requests flow access-token OAuthLibrary アクセス・トークンを使ってユーザ情報をリクエスト GET /user?access_token={token}
  15. 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. バックエンドのセキュリティ保護 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. 17. FIWARE Lab アカウント での PEP Proxy
  18. 18. バックエンドのセキュリティ保護 ▪ レベル 1: 認証 (Authentication) • ユーザが FIWARE アカウントを持っているかどうか をチェックします ▪ レベル 2: 基本的な認可 (Basic Authorization) • ユーザがリソースにアクセスする権限を持っているか どうかをチェックします • HTTP 動詞 + リソース・パス ▪ レベル 3: 高度な認可 (Advanced Authorization) • カスタム XACML ポリシー * XACML : eXtensible Access Control Markup Language
  19. 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. 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. 21. レベル 2: 基本的な認可 (Basic Authorization)
  22. 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. 23. レベル 3: 高度な認可 (Advanced Authorization)
  24. 24. APInf と PEP Proxy Back-end Request+ APIKey Web App Back-end Back-end Back-end
  25. 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. 26. IoT 認証 (IoT Authentication) ▪ Context Broker • IoT 管理 • パブリッシュ / サブスクライブ モデル □ コンテキスト・プロデューサ □ コンテキスト・コンシューマ ▪ センサ認証 (Sensors Authentication) • アプリケーション でのセンサ登録 • 各センサが、自身のアカウントを持つ □ トークンの作成と検証
  27. 27. IoT 認証 (IoT Authentication) 27 Context Broker Account OK + user info (roles) Context Producer / Consumer access-token update / query Token creation
  28. 28. FIWARE アカウントでの IoT センサ
  29. 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. 30. セキュリティ GEs ▪ Identity Management – Keyrock ▪ Authorization PDP – AuthZForce ▪ PEP Proxy – Wilma ▪ あなたのインフラに導入してください!!! • セキュリティ GEs インストールと設定ガイド * PDP : Policy Decision Point (ポリシー決定点) * PEP : Policy Enforcement Point (ポリシー実行点)
  31. 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. 32. 新しい Keyrock をリリース ▪ カスタム・テーマをサポート ▪ 改善された OAuth 2.0 のリフレッシュトークンのサポート ▪ アプリケーションのアクセス許可の編集および削除 ▪ 外部データベース認証のためのドライバ ▪ 登録済みアプリケーションで使用可能なグラント・タイプを設定するため のサポート ▪ 改善された組織管理 (organizations management) ▪ クラウドの依存関係をクリーンアップ ▪ バックエンド DB として PostgreSQL をサポート 32
  33. 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. 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. 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
  36. 36. 追加情報… Account National eID
  37. 37. Thank you! http://fiware.org Follow @FIWARE on Twitter

×