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.

OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤

452 views

Published on

OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤
中堅、中小企業の業務に最適なオープンソース活用セミナー参加報告
https://www.osscons.jp/jo1gelbe5-537/#_537

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤

  1. 1. OSSによるマッシュアップ & サービス化を実現する、 Open棟梁 サービス開発基盤 中堅、中小企業の業務に最適なオープンソース活用セミナー OSS コンソーシアム, .NET 開発基盤部会, Ld : 西野大介
  2. 2. Open棟梁 基幹システム開発基盤 BusinessLogic層 Transaction Root ベースクラス1 サブクラス ベースクラス2 DataAccess層 ベースクラス1 サブクラス ベースクラス2 開発期間を2割短縮させる OSS の .NET 開発基盤。 レガシーな基幹システム開発の難易度も依然として高い。 Open棟梁 01-xx : 基幹システム開発にフォーカス .NET リッチクライアント WWWブラウザ HTML WebAPI (バイナリ転送) WebAPI (REST) 通信制御機能 .NET サービスインターフェイス バイナリ・オブジェクト転送 汎用サービスインターフェイス SOAP, REST (JSON, XML) バイナリ・オブジェクト転送 Presentation層:ASP.NET Web Form or MVC 様々なスマート・デバイス SOAP, REST (JSON, XML) DBMS XML or SQL ファイル <?xml version="1.0" encoding="shift_jis" ?> <ROOT> SELECT A, B, C, D FROM T <WHERE> WHERE <IF>AND A = @A</IF> <IF>AND A LIKE @A_LIKE</IF> <IF>AND B = @B</IF> <IF>AND B LIKE @B_LIKE</IF> <IF>AND C = @C</IF> </WHERE> ORDER BY <IF name="SEQUENCE">A<ELSE>B</ELSE></IF> </ROOT>
  3. 3. Open棟梁 02-xx : サービス開発にフォーカス Open棟梁 02-00 生産性・品質を向上させる 3層フレームワーク • 共通部品群 • 開発支援ツール群 セキュリティを 考慮した認証基盤 シングルサインオンや ソーシャルログインの サポート 多様なアーキテクチャに 対応したテンプレート群 オンライン決済など 外部サービスとの連携 v02-00以降のコンセプトは、迅速なサービスインの実現 … Open棟梁 01-xx からの継続機能 … Open棟梁 02-00 での新機能
  4. 4. 1. Open 棟梁 02-00 以降は サービス開発にフォーカスしている。 2. サービス開発では、従来の基幹システムと 比較して認証・認可の仕組みが大きく異なる。 3. そのサービス界隈での 認証・認可の仕組みはどうなっているか?
  5. 5. • サインイン ( = ログインのこと) Facebook(や、LINE、Twitter)にローカル・ログイン 自前ユーザ・ストアを使用してForms認証、 認証チケットを使用してWebApp、WebAPIをガード。 • シングルサインオン ( SSO ) サービスが信頼する Identity Provider (IdP) に認証処理 を委譲し、サービス(のWebApp、WebAPI)は、このIdPでの 認証結果を受けて認証済みアクセスを可能にする。 サービス界隈の認証・認可ユースケース(1)
  6. 6. • 認証・認可 アプリAから、アプリBの機能やリソースへの利用権限を 要求する。アプリBで認証・認可、アプリBへ発行された access tokenをアプリA(のWebAPI)へ渡す。 • IDフェデレーション IdP Aに、IdP BのID属性を連携することで、  サインアップ・プロセスを省略し、  ドメインを跨いだSSOを実現する。 サービス界隈の認証・認可ユースケース(2)
  7. 7. これらの認証技術は難しいので、 (SE・開発者でも知らない人がほとんど) 事例を交えて説明すればピンとくるかも。 …昨今のIdPには、下記プロトコルを用いた Secure Token Service (STS) 機能 が実装されているのがポイント。 • Web系 : OAuth, OpenID Connect • エンプラ系 : SAML, WS-Federation
  8. 8. • サインイン( = ログインのこと) サービス界隈の認証・認可ユースケース(1-1) Webブラウザ ネイティブ
  9. 9. • シングルサインオン(SSO) サービス界隈の認証・認可ユースケース(1-2) MicrosoftのSaaSに、Microsoft アカウントでサインイン MicrosoftのSaaS Microsoft アカウントでサインイン URLを確認したところ、プロトコルには、 WS-FEDを使用しているもよう。
  10. 10. • 認証・認可 (OAuth, OpenID Connect) サービス界隈の認証・認可ユースケース(2-1) Twitter連携アプリに、当該アカウントを使用した 機能・リソースに対するアクセス許可を付与する。 認可 権限 中には、悪質なTwitter連携 アプリもあるので注意する。 URLを確認したところ、 Twitterは認可プロトコルに、 OAuth1.0を使用しているもよう。 (1) (2)
  11. 11. • IDフェデレーション サービス界隈の認証・認可ユースケース(2-2) 参考 : Azureサブスクリプションの所有者と組織アカウント https://www.slideshare.net/kuniteruasami/azure-62175660 引用 : ハイブリッド ID で必要なポートとプロトコル - Azure | Microsoft Docs https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnect-ports 職場または学校アカウント = 組織アカウント <IDフェデレーションの裏側> = Hybrid-IdP 構成となるのが一般的 SaaS → Azure AD → ADFS構成の場合、 連携には、OpenID, OAuth系プロトコルではなく、 エンプラ系(SAML or WS-FED)プロトコルを使用。
  12. 12. 1. このようにサービス上で、 多様な認証技術が使用されている。 2. サービス開発においては、さまざまな外部 サービスを組合せて作り上げるのが一般的。 3. 外部サービスの組合せにおいては、 ID(ユーザアカウント)同士の紐付けが重要。 4. この“ID”は、認証によって特定される。
  13. 13. サービス統合の事例(o365 - Yammer) Yammer のAzure移行や、Azure ADとの ID の連携に関する取り組みの成果として、 Yammer がOffice 365 に完全に統合。 • Yammer の会話を Skype の通話に引き継ぐ • Outlook予定表から会議スケジュール設定 • YammerからOneDriveファイルにアクセス 引用 : Yammer がついに完全統合へ – Office Blogs https://blogs.technet.microsoft.com/microsoft_office_/2016/02/15/get-ready-for-yammer/
  14. 14. 様々なプロダクトを組合せ、サービス化を可能に サービスの重要性が高まっているが、サービスの利 用にも、開発にも、認証基盤が不可欠。しかし、ぜい弱 性を十分に考慮した認証基盤の開発は、とても大変。 → Open棟梁 汎用認証サイトを活用! • サインアップ、サインイン・サインアウト • シングルサインオン(SSO) • 認証・認可や、IDフェデレーション • セキュリティや、ぜい弱性の考慮
  15. 15. 様々なプロダクト あらゆる言語・Platform の Web Site からでも汎用認証 サイトを利用したSSOが可能! 様々なプロダクトを組合せ、サービス化を可能に 汎用認証サイト wwwブラウザ Web Site A Web Site B Web Site C 汎用認証サイト (STS専用モード) Intranet Internet UserStore UserStoreオンライン決済 ノーティフィケーション 外部ログイン IDフェデレーション シングルサインオン (SSO)
  16. 16. 様々なプロダクトをスマートデバイスで利用したい 今や、スマホ / タブレッド(スマートデバイス)の業務 利用は当たり前の時代に。 • デバイスと連動した機能も実現可能! • プッシュ通知 • GPS連携 • メッセンジャー連携 • 迅速なサービスインを実現するアーキテクチャ Open 棟梁で、これらの機能を mBaaS として実装中!
  17. 17. 様々なプロダクトをスマートデバイスで利用したい 汎用認証サイト (IdMaaS) Resources Server A Resources Server B Resources Server C UserStoreオンライン決済 ノーティフィケーション 外部ログイン 様々なプロダクト あらゆる言語・Platform の Web APIから連携が可能! ハイブリット・アプリ 汎用Mobile Backend (mBaaS) • プッシュ通知 • GPS連携 • メッセンジャー連携 ASP.NET Core2 WebAPI 外部サービス オレンジ色部分が、現在開発中の Open 棟梁 追加コンポーネント クライアント・サイド Cordovaテンプレート サーバー・サイド ASP.NET Core2 MVC 認証・認可
  18. 18. やってみた感想、・・・ 非常に難しい。 mBaaS を活用したスマホ・アプリ開発は、 「フロントエンドからWeb APIを呼び出すだけ。簡単。」 ・・・ではなかった。 テンプレート整備によって、「認証」 により、 「フロントエンド」 と 「サービス」、または、 「オンプレミス」 の間を連携させるノウハウを凝集させ、 コストの大幅削減デリバリの大幅短縮を図る必要がある。
  19. 19. デモンストレーション! 「汎用認証サイト & Cordovaテンプレート」による、 「スマホ(ハイブリッド)アプリ」における、 シングルサインオン・エクスペリエンス(SSO-UX) 参考 :OAuth for Native Apps | GREE Engineers' Blog http://labs.gree.jp/blog/2015/12/14831/ 知っておきたい7つのID連携実装パターン - Yahoo! JAPAN Tech Blog https://techblog.yahoo.co.jp/web/auth/id_federation_impl_patterns/
  20. 20. 本日のまとめ • サービスベースのアーキテクチャで、 サービスインを迅速化する、Open棟梁 サービス開発基盤。 • サービスベースのアーキテクチャでは、  サービスのサイズが重要という訳では無い。  サービスの抽象化により、サービス間連携への注力を可能に することで、価値に集中できるようになり、生産性が向上する。  認証技術を駆使し、サービスを組み合わせる方式が慣例。  ぜい弱性やUI / UXを考慮した認証方式の検討が重要。
  21. 21. 本日のまとめ 参考 • マイクロサービス • マイクロサービスの終焉 | 開発手法・プロジェクト管理 | POSTD http://postd.cc/the-end-of-microservices/ • ベンチャー企業のエンジニアが一人でアプリを開発しなければならない時に、 フレームワークやサービスの選定で悩んでいること→結論追記しました https://qiita.com/osamu1203/items/8d6c548a6ef7f4178970 • スマホアプリの認証 • OAuth for Native Apps | GREE Engineers' Blog http://labs.gree.jp/blog/2015/12/14831/ • 知っておきたい7つのID連携実装パターン - Yahoo! JAPAN Tech Blog https://techblog.yahoo.co.jp/web/auth/id_federation_impl_patterns/

×