「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>FrontPage]]
--[[部会メモ(2020年)>#qba10194]]
--[[部会メモ(2021年)]]
--[[部会メモ(2022年)]]
--[[部会メモ(2023年)]]

*目次 [#l898b156]
#contents

*概要 [#m1142774]
-部会開催メモ
--計画
--実施内容
--コンテンツ

-当ページの探し方~
「[[Open棟梁 Wiki 部会メモ>https://www.google.com/search?q=Open%E6%A3%9F%E6%A2%81+Wiki+%E9%83%A8%E4%BC%9A%E3%83%A1%E3%83%A2]]」で検索すると出てきます。

*詳細(2020年 [#qba10194]

**5/21 オンライン部会(第0回) [#je679acb]
「Open棟梁」のビルドを通すデモと雑談

***準備 [#ba542c26]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-環境の準備~
--[[構成概要>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97]]
--[[構成動画(おまけ動画)>#l7293a27]]
--Visual Studio は、Code と 2019のみインストール。

-デモ内容の事前実施

--[[Download .NET SDKs for Visual Studio>https://dotnet.microsoft.com/download/visual-studio-sdks]]のインストール
---[[.NET 4.7 Developer Pack>https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net47-developer-pack-offline-installer]]
---[[.NET 4.8 Developer Pack>https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-developer-pack-offline-installer]]

***デモ [#qf0398a0]

-プログラムの取得

--本体のGitクローン~
https://github.com/OpenTouryoProject/OpenTouryo

--テンプレートのダウンロードZIP~
https://github.com/OpenTouryoProject/OpenTouryoTemplates
>すいません、今回、利用のバージョンは02-60なので、正確には、~
テンプレートは、以下のURLからダウンロードZIPして下さい。~
https://github.com/OpenTouryoProject/OpenTouryoTemplates/tree/02-60~

-Docker系~
https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker
--開発環境~
https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/tree/master/LocalServices
--Docker化されたMVCの実行~
https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/tree/master/MVC_Sample

-修正・変更
--ビルドツールへのパスの調整
--SQL Serverの接続文字列の一括置換
--PowerShellで以下のコマンドを使用し、
---ファイルのブロックを解除する。
 >cd C:\root\programs\
 >ls . -r | unblock-file
---コンテナの具合が悪い場合、クリーンナップする。
 docker ps -q | %{ docker stop $_ }
 docker ps -aq | %{ docker rm $_ }
 docker images -q | %{ docker rmi $_ }
※ [[Dockerコマンド - .NET 開発基盤部会 Wiki > 全部ほにゃららする。>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89#v0dcfe79]]

-ビルド・実行

--テンプレートの

---C#~
・MVC~
・MVC Core

---VB~
・Web Forms~
・Win Forms(3C/S)

--本体
---C#
---NuGet

>※ パスの問題があるので、テンプレートはCドラ直下に配置。

-調整
--Npgsqlの依存関係が引けてない。
--例外の動作の変更が必要になる。~
https://twitter.com/openhishopjpo/status/1260514188184567810

-チュートリアル~
ココまで出来たら、チュートリアルに進むことが出来る。~
https://github.com/OpenTouryoProject/OpenTouryo/wiki/Home.ja

***雑談 [#y532cce6]
-テーマ等は特に定めない。
-録画するので固有名詞は注意。

***動画 [#l0d64806]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第0回 OL 部会~
Open棟梁をビルドしながら雑談する回~
https://www.youtube.com/watch?v=71-tc3ofvIQ

-OSSコンソーシアム Blogにも掲載

--第0回 OL 部会~
Open棟梁をビルドしながら雑談する回~
https://www.osscons.jp/jo116pvm5-537/

**5/26 セルフZoom部会(第0.5回) [#qc778622]
[[この辺>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3#v6aa5053]]で検討が必要になった、~
「Docker Composeを統合・分割する方法」の話を、~
MVC_Sampleを使って実践する。

***準備 [#w3bb4ab8]

-確認と検証の内容~
以下の3つの方法の手順の確認と動作の検証

--1つ目の方法:~
2つのDocker Composeを、外部IP経由でブリッジする方法。

--2つ目の方法:~
Webアプリケーションをビルドしてイメージを作成して、~
それを1つのDocker Composeに統合するという方法。

--3つ目の方法:~
(実は、Linksがレガシーな方法らしく、)~
2つのDocker Composeを、networksでブリッジする方法。

-利用する物件

--https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/tree/master/LocalServices

--https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s/tree/master/MVC_Sample

-説明が漏れましたが、
--開発環境は、[[前回に使用した環境>#ba542c26]]と同じです。
--MVC_Sampleは、0_ExecAllBat.batを実行すれば基礎となるビルドが通ります。

-その他の参考情報

--マイクロソフト系技術情報 Wiki

---[[Docker for Windowsのネットワーク設定>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A]]

---[[VS Tools for Dockerを使用せず、単体使いを研究する。>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#r606f9ad]]

--[[Dockerのネットワーク設定 - 開発基盤部会 Wiki>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A#k76b1473]]

***デモ [#x542f6a3]

-1つ目の方法:

--MVC_Sampleから外部サービスを削除する。

--MVC_Sampleのプロジェクト中のサービス名を~
Windowsホストの外部IPのアドレスに変更する。

--Windowsホストの外部IP経由でコンテナへルーティングされるよう設定。
 >ipconfig
   IPv4 アドレス . . . . . . . . . . . .: yyy.yyy.yyy.yyy
   サブネット マスク . . . . . . . . . .: xxx.xxx.xxx.xxx
 ...
 
 >route -p add 10.0.75.1 mask xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy
 OK!
 ...
 
 >route delete 10.0.75.1 mask xxx.xxx.xxx.xxx
 OK!
※ [[最新の環境では変更されている。>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A]]

--コンテナを起動する。
---LocalServices を docker-compose up -d で起動する。
---MVC_Sample を VS Tools for Dockerで起動する。

--結果:&color(red){繋がるには繋がるが、相変わらず、不安定。};

-2つ目の方法:

--MVC_SampleのDockerfileのEXPOSE を 5000 に変更する。

--MVC_Sampleをビルドしてイメージを作成する。

---ソリューションのディレクトリへ移動。
 >cd ...\MVC_Sample

---ビルドしてイメージを作成する。
 >docker build -f MVC_Sample/DockerFile -t dotnetapp-dev .

---作成したイメージを確認する。
 >docker images
 REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
 dotnetapp-dev                          latest              4c0d98760acb        4 seconds ago       229MB

--下記をLocalServicesのDocker Composeにマージして、コチラを起動する。
  nginx-proxy:
    image: nginx-proxy
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - "8888:80"
    links:
      - mvc_sample
  mvc_sample:
    image: dotnetapp-dev:latest
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

--結果:安定して動作した。

-3つ目の方法:

--networksにcommon_linkを作成する。
 >docker network create --driver bridge common_link

--LocalServicesとMVC_Sampleのnetworksにcommon_linkを追加する。
 services:
   webapp1:
     ...
     networks:
       - common_link
 networks:
   common_link:
     external: true

--MVC_Sampleから外部サービスを削除する。

--コンテナを起動する。
---LocalServices を docker-compose up -d で起動する。
---MVC_Sample を VS Tools for Dockerで起動する。

--結果:安定して動作した。

-ユーティリティ

--コンテナの具合が悪い場合、クリーンナップする。
 docker ps -q | %{ docker stop $_ }
 docker ps -aq | %{ docker rm $_ }
 docker images -q | %{ docker rmi $_ }

--コンテナの起動と停止
 >docker-compose up -d
 ...
 
 >docker-compose down
 ...

***結果 [#q447ac3e]
-1つ目は相変わらず不安定。

-1つ目以外(2、3つ目)の方法は行ける。

-CT、ST環境の構築など、K8sへのリフト前~
ステージング・プロダクション環境にデプロイ前のチェックはコレで行けそう。

-参考:[[コンテナのチェーン - マイクロソフト系技術情報 Wiki>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3]]

***動画 [#g5f9c703]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第0.5回 セルフZoom 部会~
2つのDocker Composeを統合・分割する方法~
https://www.youtube.com/watch?&v=FR4tQH6VlLg

-OSSコンソーシアム Blogにも掲載

--第0.5回 セルフZoom 部会~
2つのDocker Composeを統合・分割する方法~
https://www.osscons.jp/jogfiigaw-537/

**5/29 オンライン部会(第1回) [#s713af15]
「Open棟梁」とは何か?を説明する会。

***準備 [#zc0bbb59]
パワポのピックアップ

-OSC2018 hiroshima
-Open棟梁概要説明
-Open棟梁機能紹介

***説明 [#k9a62382]
-[[OSC2018 hiroshima session slide by OSSC>https://www.slideshare.net/daisukenishino/osc2018-hiroshima-session-slide-by-ossc]]

--自己紹介

--プロジェクト
---開発基盤開発
---プロモーション
---マーケティング

--フレームワークとか、ツールとか。

---[[開発支援ツールの種類>https://www.google.com/search?q=%E9%96%8B%E7%99%BA%E6%94%AF%E6%8F%B4%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E7%A8%AE%E9%A1%9E]]

---[[Dry (Don‘t repeat yourself)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Dry%28Don%27t%20repeat%20yourself%29#w3e98c70]]

---とは言え「[[標準化(PM用語)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PMP%EF%BC%9A%E5%85%B1%E9%80%9A%20-%20OPM%20-%20%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88#tb6eac13]]」が必要。

--AS-IS と TO-BE
---SIって良くない側面あるよね。
---OSS化 → プロモーション
---マーケティング → Web → DX

-Open棟梁 v02-00
--[[概要説明>https://www.slideshare.net/daisukenishino/open-01-50-40474003]]
--[[機能紹介>https://www.slideshare.net/daisukenishino/open-0150]]

-参考
--Open棟梁プロジェクトの起源について。 - OSSコンソーシアム~
---第 1 回:https://www.osscons.jp/jovhb4u5u-537
---第 2 回:https://www.osscons.jp/joiwseup2-537
---第 3 回:https://www.osscons.jp/jovplg4up-537
---第 4 回:https://www.osscons.jp/jooifez5q-537

***雑談 [#p4e4ae5d]
-テーマ等は特に定めない。
-録画するので固有名詞は注意。

***動画 [#g53101a4]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第1回 OL 部会~
今更、Open棟梁をパワポで説明しながら雑談する回~
https://www.youtube.com/watch?v=F55zyVZM4d0

-OSSコンソーシアム Blogにも掲載

--第1回 OL 部会 今更、Open棟梁をパワポで説明しながら雑談する回~
https://www.osscons.jp/joxwti8u8-537/

**6/3 セルフZoom部会(第1.5回) [#od49c621]
[[5/26 セルフZoom部会>#qc778622]]が少々高度だったので、~
今回は、コンテナ技術(Docker、K8s)の初歩的な話

***準備 [#r23222be]
シナリオだけ決めておきます。

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-Docker Composeのサンプル実行
--Azure-Samples/azure-voting-app-redis
--EvaluateAspNetCoreOnDocker/LocalServices

-Visual Studio Tools for Docker
--Dockerの生成と実行
--Docker Composeの生成と実行

-上記のDocker、Docker Composeファイルの単体使い
--Dockerの単体使い
--Docker Composeの単体使い

-応用例~
[[5/26 セルフZoom部会>#qc778622]]の内容が該当。

-ローカルK8s~
Compose on Kubernetesでdockerdemos/lab-*を実行する。

***デモ [#c0f0bf6c]

-サンプルの実行
--[[Azure-Samples/azure-voting-app-redis>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Kubernetes%20Service%20%28AKS%29#c7683828]]
--[[EvaluateAspNetCoreOnDocker/LocalServices>https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/tree/master/LocalServices]]

-[[VS Tools for Docker>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker]](アドリブ)
--Dockerの生成と実行
--Docker Composeの生成と実行

-[[単体使い>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#r606f9ad]]
--Dockerの生成と実行
--Docker Composeの生成と実行~
&color(red){動画中でハマってた所、Docker Composeに書かれていた、環境変数が原因でした。};

-[[応用例>#qc778622]]

-[[ローカルK8s>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20Desktop%20for%20Windows#ad01d6b3]]

***結果 [#cecfa277]
ローカルK8sのダッシュボード以外は無事動作。

***動画 [#j2c4d31e]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第1.5回 セルフZoom 部会~
コンテナ技術(Docker、K8s)の初歩的な話~
https://www.youtube.com/watch?v=py_DlGEdKWc

-OSSコンソーシアム Blogにも掲載

--第1.5回 セルフZoom 部会~
コンテナ技術(Docker、K8s)の初歩的な話~
https://www.osscons.jp/jopac86nt-537/

**6/12 セルフZoom部会(第2回) [#jcaf881e]
コロナで、今更、
-[[Git>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Git]] を [[TortoiseGit>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?TortoiseGit]] + [[GitHub>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9]]で使う方法を説明する。
-あと、以前から使用している[[コチラ>#ba542c26]]の環境の構築手順も説明する。

***準備 [#c3b0a718]
-クラウドなどにVMを準備
-GitHubのアカウントを作成しておく。
-[[デモ内容>#z47896c7]]の事前実施

***デモ [#z47896c7]
操作説明。

-インストール

--[[Git for Windows>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Git#f825d4d1]]

--[[TortoiseGit>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?TortoiseGit]](GUIツール)

--[[WinMerge>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E8%A8%80%E8%AA%9E%E7%AD%89%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%AA%E3%81%84%E6%B1%8E%E7%94%A8%E9%96%8B%E7%99%BA%E6%94%AF%E6%8F%B4%E3%83%84%E3%83%BC%E3%83%AB#ecaa5f82]](DIFFツール)

--[[サクラエディタ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E8%A8%80%E8%AA%9E%E7%AD%89%E3%81%AB%E4%BE%9D%E5%AD%98%E3%81%97%E3%81%AA%E3%81%84%E6%B1%8E%E7%94%A8%E9%96%8B%E7%99%BA%E6%94%AF%E6%8F%B4%E3%83%84%E3%83%BC%E3%83%AB#g4951729]](TXTエディタ)

--各種設定等

-準備
--GitHub
---でリポジトリを作成
---のリポジトリをクローン

--ファイルの追加
---AAA(更新用1)
---BBB(削除用1)
---CCC(更新用2)
---DDD(削除用2)
---EEE(コンフリクト用)

--コミット&プッシュ
--GitHub上で変更を確認する。

-操作
--Developブランチを作成

--Masterブランチ
---ファイルの更新と削除
---コミット&プッシュ
---GitHub上で変更を確認する。

--Developブランチ
---ファイルの更新と削除
---コミット&プッシュ
---GitHub上で変更を確認する。

--プルリクエストの実行

-コンフリクトの
--ブランチAの更新
--ブランチBの更新
--プルリクエストの実行
--コンフリクトの解消とマージ

-おまけ

--[[WSL>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%EF%BC%88Windows%EF%BC%89#ccac9962]]

---インストール
---テスト利用

--[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%EF%BC%88Windows%EF%BC%89#g5c6d5cd]]

---インストール
---テスト利用

***結果 [#pfce6abc]
コロナで、今更、

-[[Git>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Git]] を [[TortoiseGit>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?TortoiseGit]] + [[GitHub>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9]]で使う方法が解った!
--[[Git>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Git]]単体使いに言及していませんでしたが、
もちろん、[[こんな感じ>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Kubernetes%20Service%20%28AKS%29#m0d071ff]]で出来ます。
--SIでは敬遠される部分もありますが、[[コチラ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%20-%20%E3%83%95%E3%83%AD%E3%83%BC%E9%96%A2%E9%80%A3]]のフローなどで、~
SI運用を検討することで、SIでも十分、採用できるかと思います。

-序に、[[WSL>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%EF%BC%88Windows%EF%BC%89#ccac9962]] と [[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%EF%BC%88Windows%EF%BC%89#g5c6d5cd]] のインストール、テスト利用ができた♨。~
(今回は、トラブル続きで、[[動画の編集>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E5%8B%95%E7%94%BB%E7%B7%A8%E9%9B%86]]を幾らか行いました。)

***動画 [#l7293a27]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第2回 セルフZoom 部会~
---在宅に適した分散型バージョン管理システム、Gitの利用方法の紹介~
https://www.youtube.com/watch?v=7XgZRIN_j7A
---おまけ動画(WSLとDocker Desktopをインストールして使用する)~
https://www.youtube.com/watch?v=05PigZHSj2Y

-OSSコンソーシアム Blogにも掲載

--第2回 部会
---在宅に適した分散型バージョン管理システム、Gitの利用方法~
https://www.osscons.jp/jo5t4453u-537/
---おまけ動画(WSLとDocker Desktopをインストールして使用する)~
https://www.osscons.jp/jo4be1po3-537/

**6/19 セルフZoom部会(第3回) [#n79cc0a7]
「Open棟梁」の

-[[5/21 オンライン部会>#je679acb]]で説明から漏れた本体側のビルド
-今後、[[リリース予定>リリース情報#p486eaa7]]のOAuth2 / OIDCアーキテクチャ対応版のデモと説明

を行います。

***準備 [#n0c14408]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#ue8dea11]]の事前実施

***デモ [#ue8dea11]

https://github.com/OpenTouryoProject

-「Open棟梁」の本体側のビルド

--クローン~
[[OpenTouryo>https://github.com/OpenTouryoProject/OpenTouryo]]
--ビルド~
[[OpenTouryo(develop)>https://github.com/OpenTouryoProject/OpenTouryo/tree/develop]]

--実行~
[[7/10 セルフZoom部会>#ta3fd0be]]

-「Open棟梁」のOAuth2 / OIDCアーキテクチャ対応版のデモと説明

--クローン
---[[MultiPurposeAuthSite>https://github.com/OpenTouryoProject/MultiPurposeAuthSite]]
---[[ResourceServerTemplates>https://github.com/OpenTouryoProject/ResourceServerTemplates]]
---[[FrontendTemplates>https://github.com/OpenTouryoProject/FrontendTemplates]]

--ビルド
---MultiPurposeAuthSite
---ResourceServerTemplates
---FrontendTemplates

--設定
---ファイルの配置
---configファイルの設定

--実行

---サーバー起動~
・MultiPurposeAuthSite~
・ResourceServerTemplates~

---クライアント起動と実行~
・FrontendTemplates~
・MVC_Sample~

***結果 [#v328e38c]
「Open棟梁」の
-本体側のビルド手順も無事にデモできました。
-OAuth2 / OIDCアーキテクチャ対応版については、
--未開示のモバイル対応以外は、まぁ、ボチボチ動きますよと。
--今後、これを、コンテナ化して、Keycloakとコンパチしていく。

***動画 [#db93537f]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第3回 セルフZoom 部会~
---前編:第0回部会から漏れたOpen棟梁の本体側をビルドする動画~
https://www.youtube.com/watch?v=NV0ondKILn0
---後編:Open棟梁 for OAuth2 / OIDCアーキテクチャのデモと説明の動画~
https://www.youtube.com/watch?v=sf9JgX1c-fs

-OSSコンソーシアム Blogにも掲載

--第3回 部会
---前編:第0回部会から漏れたOpen棟梁の本体側をビルドする~
https://www.osscons.jp/jozfffwlh-537/
---後編:Open棟梁 for OAuth2 / OIDCアーキテクチャのデモと説明~
https://www.osscons.jp/jo3jtjwi8-537/

**6/29 セルフZoom部会(第4回) [#j1c03e00]
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]とKeycloakをコンパチしてみる動画

***準備 [#pec882d5]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#d2af4c3a]]の事前実施

***デモ [#d2af4c3a]
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]とKeycloakをコンパチ

-OIDC の Authorization Code Flowで連携~
→ [[Client上での id_Token の検証>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Keycloak#v0476d13]]

-OIDC でない PKCE 4 SPAで連携~
→ [[Resource Server上での access_token の検証>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Keycloak#hc3a041e]]

***結果 [#ncccb198]
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]とKeycloakのコンパチが出来た。

***動画 [#z312592c]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第4回 セルフZoom 部会~
汎用認証サイトと Keycloak をコンパチする動画
---前編:code編~
https://www.youtube.com/watch?v=3ZC024SsftY
---後編:PKCE 4 SPA編~
https://www.youtube.com/watch?v=OmjzJia-kU8

-OSSコンソーシアム Blogにも掲載

--第4回 部会 汎用認証サイトと Keycloak をコンパチする
---前編:code編~
https://www.osscons.jp/jo4o5cvpy-537/
---前編:PKCE 4 SPA編~
https://www.osscons.jp/jogpgrs9z-537/

**7/10 セルフZoom部会(第5回) [#ta3fd0be]
「Open棟梁」の機能群のデモ+説明%%と雑談%%

***準備 [#w1351dff]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明
--[[前回に使用した環境>#ba542c26]]と同じ。
--(追加で、[[.NET3.1のSDKのインストール>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20Core#h811be14]]は必要です)

-[[デモ内容>#d58a3a4e]]の事前実施

***デモ [#d58a3a4e]
以下のツール・機能を実行(netcoreappで)

-[[動的パラメタライズド・クエリ分析ツール]]

-自動生成

--[[D層自動生成ツール]]
---自動生成
---組み込み
---[[POCO変換部品の利用>機能一覧 - 共通部品群#r9af4f09]]
---[[自動生成Dao性能対策]]
---[[自動生成Daoのパラメタ属性指定]](型指定)

--[[テーブル・メンテナンス画面の自動生成]]
---Products、Categories、Supplierテーブルを使用
---SQL ファイル、Dao クラス、テーブル・メンテナンス画面の生成

--%%[[データ・メンテナンス画面の自動生成]]%%

-その他
--[[非同期イベント・フレームワーク]]
--%%[[非同期処理サービス]]%%
--[[汎用認証サイトは別の機会に。>#g50b14e7]]

-参考
--Home.ja · OpenTouryoProject/OpenTouryo Wiki~
https://github.com/OpenTouryoProject/OpenTouryo/wiki/Home.ja
---D層自動生成は、各アプリケーション編で説明
---動的パラメタライズド・クエリ分析ツール編
---テーブル・メンテナンス画面自動生成編

***結果 [#o2b47864]
-動画化により、無事、説明の手離れができた。
-.NET Core 3.1での動作検証もできた。

***動画 [#m6021280]

-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード
--第5回 セルフZoom 部会 > Open棟梁の機能デモ
---(1):動的パラメタライズド・クエリ分析ツール編~
https://www.youtube.com/watch?v=jnfZmXqnM7Y
---(2):D層自動生成機能編~
https://www.youtube.com/watch?v=OqEXe0-r_aE
---(3):テーブル・メンテナンス画面自動生成編~
https://www.youtube.com/watch?v=e82QHAc0pHY
---(4):非同期イベント・フレームワーク編~
https://www.youtube.com/watch?v=WSL7sIxQGdc

-OSSコンソーシアム Blogにも掲載

--第5回 部会 Open棟梁の機能のデモを.NET Core 3.1でやってみる。~
https://www.osscons.jp/jot0ots5e-537/

-参考

--Demo: dynamic parametrized query analysis tool of Open棟梁.~
https://www.youtube.com/watch?v=6_8baBTVcRM

--Demo: D layer automatic generation tool of Open棟梁.~
https://www.youtube.com/watch?v=6_8baBTVcRM

--Demo: using automatic generated table maintenance screen of Open棟梁.
---(1) : https://www.youtube.com/watch?v=kBT8QnSI0SI
---(2) : https://www.youtube.com/watch?v=sjNvBNAKrgc

**7/29 セルフZoom部会(第6回) [#g50b14e7]
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]のデモ+説明

***準備 [#j6337435]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#d56f8800]]の事前実施

***デモ [#d56f8800]
-[[クローン&ビルド>#n79cc0a7]]

-[[config>汎用認証サイトのコンフィギュレーション]]
--[[.NET Framework版>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config]]
--[[.NET Core版>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSiteCore/MultiPurposeAuthSiteCore/appsettings.json]]

-機能説明

--IdP機能(ASP.NET Identity)
---サインアップ
---サインイン・サインアウト
---パスワード・リセット
---アカウント・ロックアウト
---SecurityStamp
---アカウントを編集する。~
・%%ユーザ名を変更する。%%~
・%%メアドを追加・削除する。%%~
・パスワードを変更する。~
・電話番号を設定する。~
・2要素認証をオンにする。~
・FIDO2.0をオンにする。~
・属性データ(非定型データ)の管理(編集)~
・OAuth2データの管理(編集とToken取得)~
 → オンライン決済サービス(テスト)

--STS機能(Open棟梁拡張)

---SAML2
>汎用認証サイトのSAML2連携テスト、~
.NET Core版へのマージが完了。 - OSSコンソーシアム~
https://www.osscons.jp/jo021eogb-537/

---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連携)

***結果 [#ee746774]
以下の機能に関する理解が深まった。

-[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]の使い所

-IdP機能(ASP.NET Identity)

-STS機能(Open棟梁拡張)
--各種認証フロー
--metadata(configuration)

***動画 [#q83dab4d]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第回6 セルフZoom 部会 > 汎用認証サイト概要説明
---(1):IdP(Identity Provider)編~
https://www.youtube.com/watch?v=62kPiUlgktw
---(2):閑話休題~
https://www.youtube.com/watch?v=hCRMUany4hI
---(3):STS(Security Token Service)編~
https://www.youtube.com/watch?v=_nPa6hmaff4

-OSSコンソーシアム Blogにも掲載

--第6回 部会 汎用認証サイトの概要説明をしてみる。~
https://www.osscons.jp/joe580qq9-537/

**7/31 セルフZoom部会(第7回) [#fa1ad410]
[[新リポジトリ群>https://github.com/NetDevInfraWGinOSSConsortium]]のコンセプト説明。

-新Organization&Repository公開、Linux開発環境等。 - OSSコンソーシアム~
https://www.osscons.jp/joez0yt30-537/

***準備 [#ec6aa41b]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#dd40c609]]の事前実施

***デモ [#dd40c609]
[[Organization>https://github.com/NetDevInfraWGinOSSConsortium]]に移動し、

-[[LocalServicesOnDocker>https://github.com/NetDevInfraWGinOSSConsortium/LocalServicesOnDocker]]を
--クローンして実行
--コンテンツの説明

-[[MVCSampleOnDocker>https://github.com/NetDevInfraWGinOSSConsortium/MVCSampleOnDocker]]を
--クローンして実行
--コンテンツの説明

***結果 [#eef4725a]
新リポジトリ群のコンセプトを理解した。

-コンテナを使って生産性の向上が可能。

-開発環境用と実行環境用のDockerfileは異なる。

-工程毎のコンテナ環境は、

--ビルド・プロセスの調整と
--コンテナ・レジストリに

>よって達成される。

-OAuth2/OIDCアーキテクチャなどの、~
複雑、且つ、高難易度の開発も容易化できる。

***動画 [#a81130dc]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第7回 セルフZoom 部会:~
新Organization&Repositoryのコンセプト等の説明をしてみる。~
https://www.youtube.com/watch?v=AquKQZ43a18

-OSSコンソーシアム Blogにも掲載

--第7回 部会 新Organization&Repositoryのコンセプト等の説明をしてみる。~
https://www.osscons.jp/joh22kyyf-537/

**8/3 セルフZoom部会(第8回) [#q03b4fa0]
※ 8/1ではなく、8/3でした。

-あまり慣例に従ってないCI/CD実践例のご紹介。
-恐らく、こう言うプロダクトも多いんじゃないか?と。

***準備 [#da4a42f8]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#a66818dd]]の事前実施

***デモ [#a66818dd]
-[["\OpenTouryo\root\programs\z_CICD.bat">https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/z_CICD.bat]]の実行&説明

-[["\OpenTouryoTemplates\z_CICD.bat">https://github.com/OpenTouryoProject/OpenTouryoTemplates/blob/develop/z_CICD.bat]]の実行&説明

***結果 [#p3e58469]
-CI/CDの慣例に従っていなくても、~
プロダクト特性に合わせて、チューニングされたCI/CDで良い。

-「みんなちがって、みんないい。」(金子みすゞ)と言う事が解った。

-参考
--Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。~
https://www.slideshare.net/daisukenishino/open-111086067

***動画 [#e212b563]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第8回 セルフZoom 部会:~
あまり慣例に従ってないCI/CD実践例のご紹介。~
https://www.youtube.com/watch?v=eaghMVhUdrw

-OSSコンソーシアム Blogにも掲載
 
--第8回 部会 あまり慣例に従ってないCI/CD実践例のご紹介。~
https://www.osscons.jp/jo0wmbkc8-537/

**8/12 セルフZoom部会(第9回) [#l8b260ed]
いよいよやります。[[OAuth2OidcArchitOnDocker>Github上の成果物#jf07e370]]のデモンストレーション。

***準備 [#y6fc4d4f]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#v6677b20]]の事前実施

***デモ [#v6677b20]
-起動
--[[LocalServicesOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#d606e9b3]]
--[[MVCSampleOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#s176fb94]]
--[[OAuth2OidcArchitOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#q728dba9]]

-実行
--Confidential Client : MVC
--Public Client : SPA

-開発~
MVCSampleOnDockerを、IIS Expressで実行。

-ポイント
--前回動画と同じコンテナのチェーンを実現~
正確には、コンテナによる環境のチェーン

--その他
---段階毎の構成変更が色々と大変。
---Visual Studio の生成した .NET Core の Dockerfileが色々とオカシイ。
---log4netのLoggerの件、直しました(Appenderを追加)。
---Chrome の Cookie周辺の話しは、SameSite属性の件だった。

-参考

--各種 Wiki

---[[コンテナのチェーン>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3]]

---[[特定のポートが開いているかどうか確認する。>https://techinfoofmicrosofttech.osscons.jp/index.php?netstat%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89#gd3d2b60]]

---[[.NET CoreのDockerfile>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20Core%E3%81%AEDockerfile]]

---[[コンテナ化する際の設定ポリシー>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E5%8C%96%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC]]

--OSSコンソーシアム Blog

---SameSite属性どころか、HTTP自体がダメになってた件(Cookie)~
https://www.osscons.jp/jov9t04kz-537/

***結果 [#qf549916]
[[Open棟梁 for OAuth2 / OIDC>#n79cc0a7]]のような、高度なアーキテクチャのプロジェクトを、~
Dockerコンテナと、コンテナ・オーケストレータであるDockerコンポーズによって、~
開発環境構築を簡素化し、生産性の大幅な向上を図っている点がポイントになります。

***動画 [#f3e396bf]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第9回 セルフZoom 部会:~
言うなれば、Open棟梁 for Dockerと言った感じの物件のご紹介。~
https://www.youtube.com/watch?v=2a7T1Gldzbw

-OSSコンソーシアム Blogにも掲載

--第9回 部会 言うなれば、Open棟梁 for Dockerと言った感じの物件のご紹介。~
https://www.osscons.jp/jofvzdsx9-537/

**8/19 セルフZoom部会(第10回) [#k8acd9c2]
-[[6/19 セルフZoom部会(第3回)>#n79cc0a7]]
-[[8/12 セルフZoom部会(第9回)>#l8b260ed]]

に含まれる、Open棟梁 for OAuth2 / OIDCアーキテクチャの~
説明資料を作成し、アニメーションが多いので解説動画を撮った。

***準備 [#wc6ad738]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-[[解説>#ne47cf47]]用のPPTの作成

***解説 [#ne47cf47]
下記のPPTを使用して解説を行う。
>https://1drv.ms/p/s!Amfs5caPP9r5jQk6uYDmfCG6cBMG

***結果 [#yf4556eb]
Open棟梁 for OAuth2 / OIDCアーキテクチャのサポート機能 / 範囲を把握できた。

***動画 [#f743bce4]
-Zoomの録画をYoutubeにアップロード

-Zoomの録画をYoutubeにアップロード。

--第10回 部会 Open棟梁 for OAuth2 / OIDC の説明資料を作成した。~
https://www.youtube.com/watch?v=BX-SmU0l9l4

-OSSコンソーシアム Blogにも掲載

--第10回 部会 Open棟梁 for OAuth2 / OIDC の説明資料を作成した。~
https://www.osscons.jp/jon8dnhox-537/

**8/26 セルフZoom部会(第11回) [#kaeec19b]
構築してみた、[[Linux開発環境>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?VM%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%EF%BC%88Linux%EF%BC%89]]のご紹介。

***準備 [#g19b9aff]

-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
前述の「Linux開発環境」を使用する。

-[[デモ内容>#k4f4c393]]の事前実施

***デモ [#k4f4c393]
[[8/12 セルフZoom部会(第9回)>#l8b260ed]]の内容を前述の「Linux開発環境」上で実行。

-起動
--[[LocalServicesOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#d606e9b3]]
--[[MVCSampleOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#s176fb94]]
--[[OAuth2OidcArchitOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#q728dba9]]

-開発~
MVCSampleOnDockerを、[[Visual Studio Code>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Code]]で開発。

--Windows上でビルド・実行した以下フォルダをZIP
 ..\MVCSampleOnDocker\MVC_Sample

--Linux上に送り込み、UNZIPする。
 unzip MVC_Sample.zip 

--Program.csの起動パスを変更。
 string url = Environment.GetEnvironmentVariable("UseUrl");
 if (string.IsNullOrEmpty(url))
 {
     url = "https://0.0.0.0:44334/";
 }

--以下のコマンドで実行。
 sudo dotnet run

--これで、以降は、
---.vscodeフォルダに、launch.json / tasks.jsonが自動生成される。

---[[Visual Studio Code>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Code]]でフォルダを開いてデバッグ実行できる。~
(HTTPSのデバッグ実行はVisual Studio Codeをsudoで起動する必要があるもよう)
 $ sudo code --user-data-dir='~/.vscode-root'

-ポイント
--コンテナのクリーンナップ(Linux版)
 docker stop `docker ps -q`
 docker rm -f `docker ps -aq`
 docker rmi `docker images -q`
※ [[Dockerコマンド - .NET 開発基盤部会 Wiki > 全部ほにゃららする。>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89#v0dcfe79]]

--why i cant login with sa · Issue #55 · microsoft/mssql-docker~
https://github.com/microsoft/mssql-docker/issues/55

--VSCodeを使用してroot権限でデバッグ実行する | Developers.IO~
https://dev.classmethod.jp/articles/vscode-sudo-debug/

***結果 [#w380208d]
Linuxでの.NET開発も、~
ボチボチ、出来そうですね。

***動画 [#f761c66a]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第11回 部会 .NET開発をLinux上で行う~
(Open棟梁 for OAuth2 / OIDC をLinuxVM上で動かしてみる)。~
https://www.youtube.com/watch?v=OtoGhnK4dPE

-OSSコンソーシアム Blogにも掲載

--第11回 部会 .NET開発をLinux上で行う~
(Open棟梁 for OAuth2 / OIDC をLinux上で~
https://www.osscons.jp/joazwac6h-537/

**11/8 セルフZoom部会(第12回) [#f963ec87]
2ヶ月ぶりの再開となりましたが、今回は、~
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]のIDフェデレーションについて。

***準備 [#rd91d4cf]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#y88bc6ee]]の事前実施

***デモ [#y88bc6ee]
[[8/12 セルフZoom部会(第11回)>#l8b260ed]]で使用したコンテナを利用。

-起動
--[[LocalServicesOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#d606e9b3]]
--[[OAuth2OidcArchitOnDocker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Github%E4%B8%8A%E3%81%AE%E6%88%90%E6%9E%9C%E7%89%A9#q728dba9]]

-Hybrid-IdP(ID連携)~

--修正ポイント

---appsettings.jsonのコンフィグ~
・[[パラメタ置換機能>Docker対応#jf6957a9]]を有効化するスイッチが漏れていたので、~
 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"
 },

---IdPのコンフィグ~
コンテナ化後の[[redirect_uri(2つ目)を、各IdPに追加>汎用認証サイト(Multi-purpose Authentication Site)#ie8c4d4d]]した。~
・https://localhost:44300/MultiPurposeAuthSite/signin-xxxx~
・https://localhost:44300/signin-xxxx ← コレを追加

--以下が、必要なDocker Composeの定義

---連携元~
以下を「multipurposeauthsitecore - environment」に追加~
(XXXXXには、別途、実際の値の取得と設定が必要)
  multipurposeauthsitecore1:
    image: osscjpdevinfra/multipurposeauthsitecore:OAuth2OidcArchitOnDocker
    environment:
      - UseUrl=http://0.0.0.0:5000/;https://0.0.0.0:5001/
      - RedisConfig=redis
      - RedisInstanceName=redis
      - ASPNETCORE_Kestrel__Certificates__Default__Password=seigi@123
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/app/aspnetapp.pfx
      - ConnectionString_SQL=Data Source=sqlserver;Initial Catalog=Northwind;User ID=sa;Password=seigi@123;
      - ConnectionString_MCN=Server=mysql;Database=test;User Id=root;Password=seigi@123;
      - ConnectionString_NPS=HOST=postgres;DATABASE=postgres;USER ID=postgres;PASSWORD=seigi@123;
      -------------------- 以下を追加 --------------------
      - FxSessionCookieName=MultiPurposeAuthSiteCoreSession1
      - FxApplicationName=MultiPurposeAuthSiteCore1
      - MicrosoftAccountAuthentication=true
      - MicrosoftAccountAuthenticationClientId=XXXXX
      - MicrosoftAccountAuthenticationClientSecret=XXXXX
      - GoogleAuthentication=true
      - GoogleAuthenticationClientId=XXXXX
      - GoogleAuthenticationClientSecret=XXXXX
      - FacebookAuthentication=true
      - FacebookAuthenticationClientId=XXXXX
      - FacebookAuthenticationClientSecret=XXXXX
      - TwitterAuthentication=true
      - TwitterAuthenticationClientId=XXXXX
      - TwitterAuthenticationClientSecret=XXXXX
      - IdFederationAuthorizeEndPoint=https://localhost:44301/authorize
      - IdFederationTokenEndPoint=http://multipurposeauthsitecore2:5000/token
      - IdFederationUserInfoEndPoint=http://multipurposeauthsitecore2:5000/userinfo
      ----------------------------------------------------
    ports:
      - "44300:5001"
    networks:
      - common_link

---連携先~
以下の「multipurposeauthsitecore2」serviceを追加
  multipurposeauthsitecore2:
    image: osscjpdevinfra/multipurposeauthsitecore:OAuth2OidcArchitOnDocker
    environment:
      - UseUrl=http://0.0.0.0:5000/;https://0.0.0.0:5001/
      - RedisConfig=redis
      - RedisInstanceName=redis
      - ASPNETCORE_Kestrel__Certificates__Default__Password=seigi@123
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/app/aspnetapp.pfx
      - ConnectionString_SQL=Data Source=sqlserver;Initial Catalog=Northwind;User ID=sa;Password=seigi@123;
      - ConnectionString_MCN=Server=mysql;Database=test;User Id=root;Password=seigi@123;
      - ConnectionString_NPS=HOST=postgres;DATABASE=postgres;USER ID=postgres;PASSWORD=seigi@123;
      - FxSessionCookieName=MultiPurposeAuthSiteCoreSession2
      - FxApplicationName=MultiPurposeAuthSiteCore2
      
    ports:
      - "44301:5001"
    networks:
      - common_link

***結果 [#q7e26049]
一通り動作したが、下記の諸事情により、~
Hybrid-IdPの呼び出し元側をコンテナ化することが出来なかった。

-コンテナ化における課題

--Config可能なパラメタ自体を増やす必要がある。
---Configの環境変数対応済だが、
---Docker Imageを再利用するため、~
Config可能なパラメタ自体を増やす必要がある。

--Debugが難しい
---リモート・デバッガが(、まだ)、あまりカジュアルに使えない。
---コレが普及してくると、コンテナ化も加速すると思われる。

-Hybrid-IdPの問題

--衝突回避
---Session Cookie名
---Cookie認証チケット名
---RedisのDataProtectionに設定するApplicationName

--Tokenリクエストを自IdPに行ってしまう。~

---multipurposeauthsitecore2を指定しているのに、~
multipurposeauthsitecore1にルーティングされている。

---ポート番号も変えているので、単純に名前解決後のアドレスが~
間違っているだけでも無さそう。Docker Desktopのバグなのだろうか?

***動画 [#s12ed6bb]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第12回 部会 コンテナを使用した~
汎用認証サイトの外部ログイン系機能評価~
https://www.youtube.com/watch?v=O0r4TBjT5HA

-OSSコンソーシアム Blogにも掲載

--第12回 部会 コンテナを使用した~
汎用認証サイトの外部ログイン系機能評価~
https://www.osscons.jp/jon8xgvc4-537/

**11/15 セルフZoom部会(第13回) [#fd1f6676]
[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]のFAPI1, 2対応について。

***準備 [#ved7b193]
-Zoomのスケジュール~
(まだ、一般募集は無し)

-開発環境の説明~
[[前回に使用した環境>#ba542c26]]と同じ。

-[[デモ内容>#vd686987]]の事前実施

***デモ [#vd686987]
-概要~
以下の様なデモンストレーションを実施する。
--[[FAPI1>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%201%20%28Read%20Only%20API%20Security%20Profile%29]]
---[[Confidential Client>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%201%20%28Read%20Only%20API%20Security%20Profile%29#x56eb861]]
---[[Public Client>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%201%20%28Read%20Only%20API%20Security%20Profile%29#k5a50e89]]
--[[FAPI2>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%202%20%28Read%20and%20Write%20API%20Security%20Profile%29]]
---[[Confidential Client>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%202%20%28Read%20and%20Write%20API%20Security%20Profile%29#y0fe1fb9]]
---[[Public Client>https://techinfoofmicrosofttech.osscons.jp/index.php?FAPI%20Part%202%20%28Read%20and%20Write%20API%20Security%20Profile%29#uca31885]](未サポート)
---[[FAPI-CIBA(AD無しモード)>https://techinfoofmicrosofttech.osscons.jp/index.php?CIBA%28Client%20Initiated%20Backchannel%20Authentication%29#fc870e7d]]

-詳細

--FAPI1 - CC~
Tokenエンドポイントの認証をチェック(JWT)

--FAPI1 - PC~
特に無し(QueryのPKCE)。

--FAPI2 - CC

---Requestオブジェクト(PAR)
---Tokenエンドポイントの認証をチェック(MTLS)
---JWT(access_token : JWS、id_token : JWE)

--FAPI2 - PC~
サポートなし

--FAPI - CIBA
---AD無しのデバッグ・モードで実行。
---Pollingモードでしてある。
---Requestオブジェクト(PAR)
---JWT(access_token : JWS)

-今回はコンテナを使用しない。

--クライアント証明書を使用するTLSスタック構成方法が不明(→ [[IIS Express>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%EF%BC%8B%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8#sf697402]])。

--自身へのTokenリクエストが上手く処理できない課題を発見。
---BrowserのRedirectでは、localhostが使用可能。
---コンテナ内のWebAPI呼出では、localhostが使用不可能。

--クローン&ビルド、configは、[[6/19 セルフZoom部会(第3回)>#n79cc0a7]]と同じ。

***結果 [#s17b950a]
-まぁまぁ、動かせたが、結構大変。

-一部、コードの修正が必要だった。
--Same Site Cookie対応 
--RequestObject の redirect_uri 設定(テストコード)

***動画 [#j63e561f]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第13回 部会 汎用認証サイトのFAPI系機能評価(コンテナ使用できず~
https://www.youtube.com/watch?v=ItU2ftCblHg

-OSSコンソーシアム Blogにも掲載

--第13回 部会 汎用認証サイトのFAPI系機能評価(コンテナ使用できず~
https://www.osscons.jp/joebd09ow-537

**11/22 セルフZoom部会(第14回) [#e8115aff]
.NET5.0でのビルド&実行の確認。

***準備 [#n83be882]

-対象は、下記(OpenTouryoTemplatesリポジトリ/developブランチ)のroot_VS2019~
https://github.com/OpenTouryoProject/OpenTouryoTemplates/tree/develop/root_VS2019

-[[以前の動画>#ta3fd0be]]を参照して以下を実施。

--変更:TargetFramework

---対象:
 *.csproj; *.bat

---変更内容:netcoreapp3.0 → net5.0

--変更:ビルド出力先

---対象:
 *.csproj; *.bat

---変更内容:Build_netcore30 → Build_net50

-ポイント~

--デスクトップについては、~
追加で、以下の変更が必要になる。

---TargetFramework:
 net5.0 → net5.0-windows

---参照設定先フォルダ:
 net5.0 → net5.0-windows

---Microsoft.NET.Sdk.WindowsDesktop SDKが不要に。
 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
 → <Project Sdk="Microsoft.NET.Sdk"> に変更する。

--デスクトップに対する変更の例外
---以下プロジェクトの、参照設定先フォルダを変更しない(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

***デモ [#kcdbcafa]
.NET5.0のビルド&結果のデモ(下記の動画を参照)。

***結果 [#z50195d2]
-ビルド&MVC、3層C/Sで動作ができた。

-割と大きめな破壊的変更を発見した。
--破壊的変更の内容~
[[BinaryFormatter シリアル化メソッドが古い形式になり、ASP.NET アプリでは使用不可に>https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/3.1-5.0#binaryformatter-serialization-methods-are-obsolete-and-prohibited-in-aspnet-apps]]

--エラーメッセージ
 NotSupportedException: BinaryFormatter serialization and deserialization are disabled within this application. See https://aka.ms/binaryformatter for more information.

--取り敢えず以下を追加することで対応できる。 
 <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
--以下のようにあるので、~
「コンシューマーの"責任"で使用すれば良いのでは?」~
という気もする。
 BinaryFormatter を利用するかどうかの判断に関する責任は、すべてコンシューマーにあります。 
 コンシューマーは、BinaryFormatter の使用に関するセキュリティ、技術、評判、法律、規制の要件を評価する必要があります。
※ 動向をウォッチして何処かで判断が必要。

***動画 [#uf75f850]
-Zoomの録画をYoutubeにアップロード。
-Zoomの録画をYoutubeにアップロード

--第14回 部会 Open棟梁の機能のデモを.NET 5でやってみる。~
https://www.youtube.com/watch?v=ItU2ftCblHg

-OSSコンソーシアム Blogにも掲載

--第14回 部会 Open棟梁の機能のデモを.NET 5でやってみる。~
https://www.osscons.jp/jof8hchcy-537/

*参考 [#sab60f3b]

**[[部会メモ(開発基盤部会)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E9%83%A8%E4%BC%9A%E3%83%A1%E3%83%A2]] [#t335cb5d]

IP:124.96.76.100 TIME:"2023-01-04 (水) 21:59:21" REFERER:"https://opentouryo.osscons.jp/index.php?cmd=edit&amp;page=%E9%83%A8%E4%BC%9A%E3%83%A1%E3%83%A2" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS