2020/4/25「.NETラボ勉強会 2020年4月」参加メモ #dotnetlab

突然の12連休となった今年の大型連休1日目、.NETラボ勉強会にオンラインで参加しました。

木澤さん「解説!Windows 10 May 2020 Update」

Windows10の定期更新、秋は品質向上、春は新機能リリースとなっているとのこと。以下は説明があった中で印象的だったもの。
・Windows Subsystem for Linux 2:Ubuntuのカロニカル社と共同開発。完全互換化(エミュレーション→仮想環境化)しており、Windowsカーネルは経由せずHyperVスーパーバイザ上でLinuxカーネルを直接動作させる仕組み。MSが提供するディストリビューション。
・クラウドインストール:Windowsのクリーンインストールをインターネットからダウンロードする仕組み。なお、MacOSは既に同じ仕組み。
・顔文字の強化(Windowsキー+「.」で今でもパレットが出るのは知らなかった)
・電卓アプリ:グラフ描画機能がついた。もしかしたらGA版では落ちるかも。
・タスクマネージャのGPU温度表示
<所感>
WSL2のような大きなトピックスから、細かい使い勝手の更新までいろいろある。新しい機能を知って、効果的に使いたいと感じた。

大川さん「Microsoft Graphの変更検知で遊ぶ」

プレゼン資料デモコード
MS Graphとは、MSが提供するサービス、データにアクセスできるエンドポイント。例えば、Teamsのチャット、Outlookのイベント、Excelデータ等。単一エンドポイント(https://graph.microsoft.com)からHTTPメソッドでアクセス可能。
リソースの変更を検知する方法は2つある。
1)Deltaクエリを利用:「変更履歴」の取得
 GET形式で、状態トークンを含むURLを使用し、変更リソースの情報を取得する。事前に一度データアクセス必須。
 クエリのみで完結する=FrontEndのみで解決するような処理に向いている。
2)Subscription(webhook):「変更通知」の取得
 POSTメソッド形式で、bodyに詳細(得たい変更トリガ、内容)を指定する。一発目のデータ取得は不要だが、変更リソースの情報自体は取得できない。通知されるIDを使った取得が必要。
 Subscriptionが使えるリソースは一部リソースに限られる。また、変更検知の有効期限を設定する必要がある。
 POSTする前に、変更検知されたか(POST用可能か)のVaridationTokenをSignalR(on Azure Functions)で取得する必要有り(これを上手く使うとサイト表示中に裏でSignalRを使って変更検知、変更内容を取得して更新、とかできる)。
<所感>
お決まりのトリガ取得とイベント処理であれば、Power Automate(旧Flow)でノーコードで済む。アプリから呼び出し、細かい条件設定で柔軟にデータ取得できるのがGraphの良さですね。

松本さん「新型コロナウイルスの感染拡大を防ぐための臨時休校による生徒の健康状態をMicrosoft Forms と SharePoint 、Power Automate で把握する」

関連ブログ
この方、神戸の県立高校の教務部長でMS-MVPだそうで、現場に凄い人がいるって強いです。
2009年新型インフルの時は電子メールで調査したが問題が多かった。生徒数は600名以上。今回、Microsoft Formsを中心にシステム構築を行った。
・利点:素早いアプリ構築、PCスマホ両対応、家庭の追加コスト不要
・欠点:網羅的な集計不可、認証無く不特定ユーザがアクセス可)、構築はOffice365ライセンス必須
・システム概要
 Forms:入力フォームのデザイン(発熱、喉の痛みなど症状を入力)
 SharePoint Online:リストでデータ保存&Excel形式取得
 Power Automate:高熱者データを電子メールで通知
 PowerApps:在宅教員もスマホで確認可能
・構築
 約半日(養護教諭と連携して実装と改善を繰り返した)
・工夫
 認証が無い→担任の名前を入れるようにさせた
 個人情報は入れたくない→年次クラス出席番号と苗字ひらがなとした
 生徒への連絡→学校Webサイトからリンク、協力呼びかけ。網羅的な管理はあきらめる
・運用
 ・取得:管理者がSharePoint OnlineからExcelエクスポート→クエリがダウンロードされる。そのため毎回ダウンロードしなくとも、クエリ実行で最新データが入手可能(これは、現行のSharePointも同じ)。
 ・確認:養護教諭か担任がデータを見て把握、健康状態によって担任が電話確認。
 ・通知:高熱者(38.5度)超えたらメール送信。送信回数に上限がある点に注意。何でもかんでも送信はできない。
・Power Platform開発の特徴
 ・開発環境、コード管理、アプリデプロイから解放される
<所感>
まさにアジャイルの実践。このスタイルは自社にもぜひ定着させたい。PowerAppsとAutomateが4月から利用可能になっているので、活用例を作って、普及させるようにしたい。

高見さん「地域でのオンラインセミナー開催の可能性と課題」

プレゼン資料
フリーランスプログラマで、まちづくり関連NPO法人の理事も務めるMS-MVP。
今回の発表のテーマはNPO関連で実施した研修のオンライン化について。地域子育て拠点向けのhttps化の意義を解説する研修で出席者もエンジニアではない。いうことで、YouTube Liveで開催、Sli.doで質問受付とした。
使用したソフトウェアは以下の通り。
・OBS Studio:YouTube Live配信用のツール
・YouTube Live:遅延設定は「超低遅延」に設定(約6秒)
・sli.do:質問回答、最後に投票機能でアンケート
また、マルチモニタが必須。できれば配信、下準備、sli.do監視に3つはほしい。コツは2画面目を配信用にすること(1画面目はトラブル対応などにも使う)。タブレットなどをモニタ代わりにするのも良い。
結果としては、かなり良かった。
・場所の制約が無い、質問の障壁が低い(心理的安全性)、豊富なPCリソース
・IT勉強会以外でもオンラインでいける
・発表者にも質問者にもスキルが必要
 ・発表者=質問は適宜読み上げる(録画に残らない)、代名詞や相対的表現は禁止
 ・質問者=疑問を文章化できるスキル、ネットでの質問を怖がらない気持ち
 ・参考情報=ポッドキャスト(SBCast. #21
「今だからこそ作れるつながり」を大事に、という言葉で締められた。
<所感>
YouTube Liveの配信は全く知らなかったが、ツールやノウハウを一気に学べた。会社の公式行事や勉強会を運営する立場なので、参考にしたい。

髙尾さん「透過的にセキュリティ情報を転送する」→接続状態悪く、次回へ

初音さん「季節のMicrosoft Teams APIの基礎、OBS Studioでの配信ソースを添えて」

Teamsにおけるメッセージには2種類ある。
・チャット-メッセージ:チャットルームに対し送信するイメージ
・チーム-チャネル-メッセージ:チャネル参加者全体へ、元メッセージに返信していくイメージ
TeamsのデータはGraph APIを経由することで取得できる。
・アプリは自分のAAD(Azure Active Directory)に登録。有効なサブスクリプションが必要。
・他のユーザでログインすると、エンタープライズアプリの中に見える。
・MSAL(Microsoft Authentication Library)認証:OAuth 2.0とOpenID Connect(※僕はこのサイトを見て概念を理解しました)
1)チャットでのGraph API呼び出し
 チャット一覧取得(GET)→ID指定でメッセージID一覧取得(GET)→メッセージID指定でメッセージ取得(POST)
2)チャネルでのGraph API呼び出し
 チーム一覧取得(GET)→ID指定でチャネル一覧取得(GET)→ID指定でメッセージ一覧取得(GET)→ID指定で返信一覧取得(GET)→ID指定で返信取得(POST)
参考情報
・API調査方法=Microsoft Docs(https://docs.microsoft.com)など
・Microsoft Graph Exlorerでの確認
<所感>
TeamsもGraph APIの活用で色々なデータ活用ができそうなのが理解できた。

澤田さん「WACでHCIを作ってみる」

今回使っている拡張機能はまだプレビュー版とのこと。
Azure Stack HCIとは下記の特徴を持つソリューション。
・単一の機器で仮想化基盤を構築できる
・最小ノード構成は2ノードから
・Windows Serverライセンスのみで構成可能
・Windowサーバで構成、WAC/Azureで管理
WAC(Windows Admin Center)とは、最新のサーバ管理ツールで、機能拡充が頻繁に実施されている。Webブラウザベースで、Azureとの統合管理が可能。
(以下、実際の構築方法が続きましたが、理解を超えてました…資料公開待っています)
<所感>
後半はインフラ構築のディープな話になり、理解できず。頑張らないと。

松岡さん「Azure Sphereって実際どうなの?」

プレゼン資料
Azure Sphereとは、インターネットにセキュアに接続したIoT機器を実現するためのハード/ソフト。Azure Sphere MCU(Chip)とAzure Sphere OS、Azure Sphere Security Service(AS3)で構成される。
ポイントは下記の通り。
・Pluton Key Management=鍵管理ユニット(秘密鍵をチップ内で生成、秘匿)
・AS3によるOS/アプリのセキュアなアップデート(MCUはWi-Fi内蔵なのでOn The Airで更新)
・RTCore(Real-time Core)による確実なリアルタイム処理
プレビュー版の入手方法はこんな感じだった。
・AS3,Azure Sphere OS=マイクロソフト(無料)
・Azure Sphere Certified Chip=Mediatek(大量ロットでないと買えない)
・開発キット:Azure Sphere Development Kit(Seeed製、@84.9USD)
・Azure Sphere SDK(VS拡張=Windows機で開発可能)
2020年2月にGA(正式リリース)になり、プレビュー版での制約がほぼ無くなった。また入手方法も拡充した。
・AS3,Azure Sphere OS=マイクロソフト(2031年7月以降まで提供/アップデート)
・Azure Sphere Certified Chip=Mediatek(将来、NXP,Qualcommからも提供予定)
・モジュール(Chip組み込み基盤)も数社から
・開発キット:従来のSeeed製に加えAVNETからも(但し、技適はSeeedのみクリア)
・Azure Sphere SDK(VS Code対応によりLinux機でも開発可能に)
・パートナーエコシステムが整いつつある
その他のGood Pointは下記の通り。
・クライアント証明書=デバイス毎に発行必要。Azure SphereではMSが発行しChipに内蔵済
・Azure IoT SDK for C=Azure Sphereアプリで利用できるIoT Hubクライアントが内包されている
一方、頑張ってほしいところもある。
・C++サポート=サードパーティからのライブラリ提供の負担が下がる
・Wi-Fi接続情報設定=AP設定をどうChipに入れ込むかの方法が容易でない
・管理ポータル=現状コマンドラインしかない
・所有権の移動=Azure ADテナントに紐づけした後、移動できない
あと、OSといっても最小限。Arduinoみたいなバイナリを転送して使うイメージらしい。
<所感>
やはりIoTは面白いですね。セキュアなIoT機器って本当に社会に必須なのでエコシステムの拡大に期待したい。Windows 10 Core、IoT ARGYANなどMSはIoTへの取り組みを継続しててすごい。

小鮒さん「Azure AD Cloud Provisioningこと始め」

Azure AD Cloud Provisioning(AADCP)とは、オンプレのADアカウントとAzure ADに移行する、AzureのSaaSサービス。既存ツールとしてAzure AD Connect(AADC)がある。
AADCPはサーバにエージェントプログラムをインストールする、軽量シンプル。また、現在プレビュー版。
必要要件としては色々あるが「80/tco,443/tcp(または8080/tcp)の出力方向通信が許可」あたりが重要そう。統合機能としては大きく3パターンに分けられる。
1)統合機能(対等)
 ・複数のオンプレADをAzure ADのシングルテナントへ統合
 ・SSO(Single Sign On)はパスワードハッシュ同期またはAD FSで
 ・単純なマルチフォレスト統合で、AD信頼関係は不要
2)統合機能(合流)
 ・AADC(Azure AD Connect)環境に、他のオンプレADを統合
 ・SSOはパススルー認証(PTA)利用可(信頼関係必須)
3)統合機能(移行)
 ・AADC(Azure AD Connect)環境に、同一ドメインかつ異なるOU同期のADをシングルテナントへ統合
 ・同期範囲が重ならない限り統合可能
AADCとAADCPの違い「AADCPのほうが簡易版」
 ・信頼関係のないオンプレAD統合
 ・エージェントで動作するのでサーバ側の負荷が軽い
 ・パススルー認証不可、シームレスSSOはデフォルト無効
 ・同期に際しての属性カスタマイズ不可
 ・Write Back同期、デバイス登録も不可
 ・50000以上のオブジェクト同期も不可
(この後、AADCPの構築手順の詳細へ…)
<所感>
これまた普段あまり関わりのない領域だったけど、面白かったです。

総じてレベルが高い!充実の勉強会でした。毎月参加し自分の理解できる範囲を少しでも広げたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください