「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
詳細(2020年 †
5/21 オンライン部会(第0回) †
「Open棟梁」のビルドを通すデモと雑談
準備 †
デモ †
- 修正・変更
- ビルドツールへのパスの調整
- SQL Serverの接続文字列の一括置換
- PowerShell?で以下のコマンドを使用し、
- VB
・Web Forms
・Win Forms(3C/S)
※ パスの問題があるので、テンプレートはCドラ直下に配置。
雑談 †
- テーマ等は特に定めない。
- 録画するので固有名詞は注意。
動画 †
5/26 セルフZoom部会(第0.5回) †
この辺で検討が必要になった、
「Docker Composeを統合・分割する方法」の話を、
MVC_Sampleを使って実践する。
準備 †
- 確認と検証の内容
以下の3つの方法の手順の確認と動作の検証
- 1つ目の方法:
2つのDocker Composeを、外部IP経由でブリッジする方法。
- 2つ目の方法:
Webアプリケーションをビルドしてイメージを作成して、
それを1つのDocker Composeに統合するという方法。
- 3つ目の方法:
(実は、Linksがレガシーな方法らしく、)
2つのDocker Composeを、networksでブリッジする方法。
- 説明が漏れましたが、
- 開発環境は、前回に使用した環境と同じです。
- MVC_Sampleは、0_ExecAllBat?.batを実行すれば基礎となるビルドが通ります。
デモ †
- MVC_Sampleのプロジェクト中のサービス名を
Windowsホストの外部IPのアドレスに変更する。
- コンテナを起動する。
- LocalServices? を docker-compose up -d で起動する。
- MVC_Sample を VS Tools for Dockerで起動する。
- MVC_SampleのDockerfileのEXPOSE を 5000 に変更する。
- MVC_Sampleをビルドしてイメージを作成する。
- ソリューションのディレクトリへ移動。
>cd ...\MVC_Sample
- コンテナを起動する。
- LocalServices? を docker-compose up -d で起動する。
- MVC_Sample を VS Tools for Dockerで起動する。
結果 †
- CT、ST環境の構築など、K8sへのリフト前
ステージング・プロダクション環境にデプロイ前のチェックはコレで行けそう。
動画 †
5/29 オンライン部会(第1回) †
「Open棟梁」とは何か?を説明する会。
準備 †
パワポのピックアップ
- OSC2018 hiroshima
- Open棟梁概要説明
- Open棟梁機能紹介
説明 †
- AS-IS と TO-BE
- SIって良くない側面あるよね。
- OSS化 → プロモーション
- マーケティング → Web → DX
- 参考
- Open棟梁プロジェクトの起源について。 - OSSコンソーシアム
雑談 †
- テーマ等は特に定めない。
- 録画するので固有名詞は注意。
動画 †
6/3 セルフZoom部会(第1.5回) †
5/26 セルフZoom部会が少々高度だったので、
今回は、コンテナ技術(Docker、K8s)の初歩的な話
準備 †
シナリオだけ決めておきます。
- Docker Composeのサンプル実行
- Azure-Samples/azure-voting-app-redis
- EvaluateAspNetCoreOnDocker?/LocalServices?
- Visual Studio Tools for Docker
- Dockerの生成と実行
- Docker Composeの生成と実行
- 上記のDocker、Docker Composeファイルの単体使い
- Dockerの単体使い
- Docker Composeの単体使い
- ローカルK8s
Compose on Kubernetesでdockerdemos/lab-*を実行する。
デモ †
- 単体使い
- Dockerの生成と実行
- Docker Composeの生成と実行
動画中でハマってた所、Docker Composeに書かれていた、環境変数が原因でした。
結果 †
ローカルK8sのダッシュボード以外は無事動作。
動画 †
6/12 セルフZoom部会(第2回) †
コロナで、今更、
準備 †
- クラウドなどにVMを準備
- GitHub?のアカウントを作成しておく。
- デモ内容の事前実施
デモ †
操作説明。
- ファイルの追加
- AAA(更新用1)
- BBB(削除用1)
- CCC(更新用2)
- DDD(削除用2)
- EEE(コンフリクト用)
- コミット&プッシュ
- GitHub?上で変更を確認する。
- Masterブランチ
- ファイルの更新と削除
- コミット&プッシュ
- GitHub?上で変更を確認する。
- Developブランチ
- ファイルの更新と削除
- コミット&プッシュ
- GitHub?上で変更を確認する。
- コンフリクトの
- ブランチAの更新
- ブランチBの更新
- プルリクエストの実行
- コンフリクトの解消とマージ
結果 †
コロナで、今更、
動画 †
6/19 セルフZoom部会(第3回) †
「Open棟梁」の
を行います。
準備 †
デモ †
https://github.com/OpenTouryoProject
- 「Open棟梁」のOAuth2 / OIDCアーキテクチャ対応版のデモと説明
- ビルド
- MultiPurposeAuthSite?
- ResourceServerTemplates?
- FrontendTemplates?
- サーバー起動
・MultiPurposeAuthSite?
・ResourceServerTemplates?
- クライアント起動と実行
・FrontendTemplates?
・MVC_Sample
結果 †
「Open棟梁」の
- 本体側のビルド手順も無事にデモできました。
- OAuth2 / OIDCアーキテクチャ対応版については、
- 未開示のモバイル対応以外は、まぁ、ボチボチ動きますよと。
- 今後、これを、コンテナ化して、Keycloakとコンパチしていく。
動画 †
6/29 セルフZoom部会(第4回) †
汎用認証サイトとKeycloakをコンパチしてみる動画
準備 †
デモ †
汎用認証サイトとKeycloakをコンパチ
結果 †
汎用認証サイトとKeycloakのコンパチが出来た。
動画 †
- 第4回 セルフZoom 部会
汎用認証サイトと Keycloak をコンパチする動画
- 第4回 部会 汎用認証サイトと Keycloak をコンパチする
7/10 セルフZoom部会(第5回) †
「Open棟梁」の機能群のデモ+説明と雑談
準備 †
デモ †
以下のツール・機能を実行(netcoreappで)
結果 †
- 動画化により、無事、説明の手離れができた。
- .NET Core 3.1での動作検証もできた。
動画 †
- Zoomの録画をYoutubeにアップロード
- 第5回 セルフZoom 部会 > Open棟梁の機能デモ
- Demo: using automatic generated table maintenance screen of Open棟梁.
7/29 セルフZoom部会(第6回) †
汎用認証サイトのデモ+説明
準備 †
デモ †
- IdP機能(ASP.NET Identity)
- サインアップ
- サインイン・サインアウト
- パスワード・リセット
- アカウント・ロックアウト
- SecurityStamp?
- アカウントを編集する。
・ユーザ名を変更する。
・メアドを追加・削除する。
・パスワードを変更する。
・電話番号を設定する。
・2要素認証をオンにする。
・FIDO2.0をオンにする。
・属性データ(非定型データ)の管理(編集)
・OAuth2データの管理(編集とToken取得)
→ オンライン決済サービス(テスト)
- OAuth2/OIDC
・Authorization Code Flow
・Implicit Flow
・Hybrid Flow
・PKCE Flow
- metadata(configuration)
・samlmetadata
・.well-known/openid-configuration
・jwkcerts
- 次回
・Financial-grade API
・Hybrid-IdP(ID連携)
結果 †
以下の機能に関する理解が深まった。
- STS機能(Open棟梁拡張)
- 各種認証フロー
- metadata(configuration)
動画 †
- 第回6 セルフZoom 部会 > 汎用認証サイト概要説明
7/31 セルフZoom部会(第7回) †
新リポジトリ群のコンセプト説明。
準備 †
デモ †
Organizationに移動し、
結果 †
新リポジトリ群のコンセプトを理解した。
- 開発環境用と実行環境用のDockerfileは異なる。
よって達成される。
- OAuth2/OIDCアーキテクチャなどの、
複雑、且つ、高難易度の開発も容易化できる。
動画 †
8/3 セルフZoom部会(第8回) †
※ 8/1ではなく、8/3でした。
- あまり慣例に従ってないCI/CD実践例のご紹介。
- 恐らく、こう言うプロダクトも多いんじゃないか?と。
準備 †
デモ †
結果 †
- CI/CDの慣例に従っていなくても、
プロダクト特性に合わせて、チューニングされたCI/CDで良い。
- 「みんなちがって、みんないい。」(金子みすゞ)と言う事が解った。
動画 †
8/12 セルフZoom部会(第9回) †
いよいよやります。OAuth2OidcArchitOnDockerのデモンストレーション。
準備 †
デモ †
- 実行
- Confidential Client : MVC
- Public Client : SPA
- 開発
MVCSampleOnDocker?を、IIS Expressで実行。
- ポイント
- 前回動画と同じコンテナのチェーンを実現
正確には、コンテナによる環境のチェーン
- その他
- 段階毎の構成変更が色々と大変。
- Visual Studio の生成した .NET Core の Dockerfileが色々とオカシイ。
- log4netのLoggerの件、直しました(Appenderを追加)。
- Chrome の Cookie周辺の話しは、SameSite?属性の件だった。
結果 †
Open棟梁 for OAuth2 / OIDCのような、高度なアーキテクチャのプロジェクトを、
Dockerコンテナと、コンテナ・オーケストレータであるDockerコンポーズによって、
開発環境構築を簡素化し、生産性の大幅な向上を図っている点がポイントになります。
動画 †
8/19 セルフZoom部会(第10回) †
に含まれる、Open棟梁 for OAuth2 / OIDCアーキテクチャの
説明資料を作成し、アニメーションが多いので解説動画を撮った。
準備 †
解説 †
下記のPPTを使用して解説を行う。
https://1drv.ms/p/s!Amfs5caPP9r5jQk6uYDmfCG6cBMG
結果 †
Open棟梁 for OAuth2 / OIDCアーキテクチャのサポート機能 / 範囲を把握できた。
動画 †
8/26 セルフZoom部会(第11回) †
構築してみた、Linux開発環境のご紹介。
準備 †
- 開発環境の説明
前述の「Linux開発環境」を使用する。
デモ †
8/12 セルフZoom部会(第9回)の内容を前述の「Linux開発環境」上で実行。
- Linux上に送り込み、UNZIPする。
unzip MVC_Sample.zip
- 以下のコマンドで実行。
sudo dotnet run
- これで、以降は、
- .vscodeフォルダに、launch.json / tasks.jsonが自動生成される。
結果 †
Linuxでの.NET開発も、
ボチボチ、出来そうですね。
動画 †
11/8 セルフZoom部会(第12回) †
2ヶ月ぶりの再開となりましたが、今回は、
汎用認証サイトのIDフェデレーションについて。
準備 †
デモ †
8/12 セルフZoom部会(第11回)で使用したコンテナを利用。
- appsettings.jsonのコンフィグ
・パラメタ置換機能を有効化するスイッチが漏れていたので、
OAuth2OidcArchitOnDocker?のMultiPurposeAuthSiteCore?にコレを追加し、
・「各種Cookie名」と「RedisのDataProtection?に設定するApplicationName?」
の衝突問題の解決のために、パラメタをConfig可能にしてコレを追加。
https://twitter.com/openhishopjpo/status/1324724803106844672
// appSettings section
"appSettings": {
// Webサービス用
"Azure": "MultiPurposeAuthSiteCore",
"FxContainerization": "ON",
// Session周辺の問題対策
"FxSessionCookieName": "MultiPurposeAuthSiteCoreSession",
"FxApplicationName": "MultiPurposeAuthSiteCore",
・以下の、[id_federation_endpoint]に固定値を設定。
"06d20f595b694114b710c1d85e21bb8e": {
"client_secret": "ld47EVKDDkxleIup7Z0UQ1rVy_IR4q3lXamyNcrIUEo",
"redirect_uri_code": "[id_federation_endpoint]",
"redirect_uri_token": "-",
"client_name": "IdFederation"
},
結果 †
一通り動作したが、下記の諸事情により、
Hybrid-IdPの呼び出し元側をコンテナ化することが出来なかった。
- Config可能なパラメタ自体を増やす必要がある。
- Configの環境変数対応済だが、
- Docker Imageを再利用するため、
Config可能なパラメタ自体を増やす必要がある。
- Debugが難しい
- リモート・デバッガが(、まだ)、あまりカジュアルに使えない。
- コレが普及してくると、コンテナ化も加速すると思われる。
- 衝突回避
- Session Cookie名
- Cookie認証チケット名
- RedisのDataProtection?に設定するApplicationName?
- multipurposeauthsitecore2を指定しているのに、
multipurposeauthsitecore1にルーティングされている。
- ポート番号も変えているので、単純に名前解決後のアドレスが
間違っているだけでも無さそう。Docker Desktopのバグなのだろうか?
動画 †
11/15 セルフZoom部会(第13回) †
汎用認証サイトのFAPI1, 2対応について。
準備 †
デモ †
- FAPI1 - CC
Tokenエンドポイントの認証をチェック(JWT)
- FAPI1 - PC
特に無し(QueryのPKCE)。
- Requestオブジェクト(PAR)
- Tokenエンドポイントの認証をチェック(MTLS)
- JWT(access_token : JWS、id_token : JWE)
- FAPI - CIBA
- AD無しのデバッグ・モードで実行。
- Pollingモードでしてある。
- Requestオブジェクト(PAR)
- JWT(access_token : JWS)
- 自身へのTokenリクエストが上手く処理できない課題を発見。
- BrowserのRedirectでは、localhostが使用可能。
- コンテナ内のWebAPI呼出では、localhostが使用不可能。
結果 †
- 一部、コードの修正が必要だった。
- Same Site Cookie対応
- RequestObject? の redirect_uri 設定(テストコード)
動画 †
11/22 セルフZoom部会(第14回) †
.NET5.0でのビルド&実行の確認。
準備 †
- 変更内容:netcoreapp3.0 → net5.0
- 変更内容:Build_netcore30 → Build_net50
- デスクトップについては、
追加で、以下の変更が必要になる。
- TargetFramework?:
net5.0 → net5.0-windows
- 参照設定先フォルダ:
net5.0 → net5.0-windows
- デスクトップに対する変更の例外
- 以下プロジェクトの、参照設定先フォルダを変更しない(net5.0-windows生成前なので)。
・CS\Frameworks\Infrastructure\Business\RichClient?
・CS\Frameworks\Infrastructure\CustomControl?\RichClient?
- 以下プロジェクト中のWSIFType_sample、WSServer_sampleに関しては、
参照設定先フォルダを変更しない(net5.0-windowsではなくnet5.0中に存在するため)。
CS\Samples4NetCore?\Legacy\WS_sample\WSClient_sample\WSClientWin_sample
デモ †
.NET5.0のビルド&結果のデモ(下記の動画を参照)。
結果 †
- 取り敢えず以下を追加することで対応できる。
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
- 以下のようにあるので、
「コンシューマーの"責任"で使用すれば良いのでは?」
という気もする。
BinaryFormatter を利用するかどうかの判断に関する責任は、すべてコンシューマーにあります。
コンシューマーは、BinaryFormatter の使用に関するセキュリティ、技術、評判、法律、規制の要件を評価する必要があります。
※ 動向をウォッチして何処かで判断が必要。
動画 †
参考 †