JSP_Blog

IMジェイエスピー社員が綴る日替わりブログ

パスワードレス認証に触れてみる

2024-03-14 11:48:11 | 日記
 パスワードレス認証をうたうWEBサービスが徐々に増えてきているようです。

 数年前より「FIDO2」や「WebAuthn」なる認証技術に関する記事を目にするようになり、IPAの情報処理技術者試験でも出題されるようになっていました。

 WEB+データベースの技術者の端くれと自認する私としても、そろそろこのパスワードレス認証というものをどのように実装するのか、注意点は何かを自分の目で確かめようと思いました。

 パスワードレス認証についての概要説明は、以下のサイトがわかりやすかったです。

■パスワード不要の認証「WebAuthn」とは?「FIDO」の構成技術を解説
https://www.nri-secure.co.jp/blog/what-is-webauthn

■次世代の認証技術 WebAuthnを紹介
https://www.nri-digital.jp/tech/20230124-12533/

 例えば、WEBサービスを使う際、ユーザーIDとパスワードを入力してログインする仕組みが一般的になっています。
 「WebAuthn」に対応しているサイトであれば、そのWEBサービスにログインする機器(パソコンやスマートフォン)情報をそのサイトと機器に予め登録しておき、いざログインするときは、その機器に対して指紋認証(やPIN認証)で本人確認を行い、本人確認できればWEBサイトへログインできる、といった流れになります。

 これを簡単にお試しできるサイトが以下です。

■WebAuthn.io
https://webauthn.io/

 このサイトでは、まず個人を一意に特定してもらうためのIDに相当する文字列を「example_username」のテキストボックスに入力し、「Register」ボタンを押します。(このIDは24時間で自動削除されます...手動削除もできます)
 そうすると、ブラウザ機能により、パスキーで認証する方法を選択する画面が表示されます。
 ここで、スマートフォンで指紋認証機能がついていれば、AndroidかiOSによる方式を選択すればよいでしょう。
 Windowsパソコンでは、Winodws Hellowによる指紋認証やPIN認証を選択する手もあります。
 選択すれば、「Success! Now try to authenticate...」と表示されます。
 これで、このWEBサービスにログインする機器情報をそのサイトと機器に登録したことになります。
 次に、登録した手段でログインできることを、「example_username」のテキストボックスに入力した文字列のまま「Authenticate」ボタンを押すと、ブラウザより、先ほど選択した手段での認証を要求されますので、それに従って認証すると「You're logged in!」とメッセージが表示されます。

 PIN認証を選択していると、結局その端末のPIN情報をログインの都度入力する必要がありますので、これをパスワード不要といっていいのかは微妙なところです....
 指紋認証でも、毎回指紋をあてがう必要もあります。
 ですので、手間が劇的になくなる!というわけではないですね。
 端末に保存される認証情報も、Microsoft・Google・Appleなどのサービスをうまく使ってバックアップ・共有しておかないと、移行が面倒というのもあります。従来のIDとパスワードであればどの端末からでもログインできますが、公共施設等の端末を使おうとするとなかなか難しいところがあります。

 さて、ではこのようなサイトを実際にどのように実装するのか。
 WEBサービスを実装する言語は色々あり、その言語ごとに「WebAuthn」を実装するライブラリやフレームワークがすでに出回っているようです。
 私の今の興味の中心は「Rust」ですので、「WebAuthn Rust」でググって最上位にヒットしたライブラリは以下でした。

■Github webauthn-rs
https://github.com/kanidm/webauthn-rs

 このライブラリにはデモやチュートリアルがついています。

https://github.com/kanidm/webauthn-rs/tree/master/tutorial

 チュートリアルをローカル端末にダウンロードし、rustの実行環境で説明のとおり make を実行すると、その実行環境にてWEBサービスが起動しました。
 上述の「WebAuthn.io」と同様のIDを入力するテキストボックスだけが表示されたWEBページにアクセスし、あとはパスキーの認証方法の選択・登録や、実際に認証できることを表す画面が表示されるようになっています。
 このライブラリを使っているソースコードもざっと見たところ、構造はそれほど難しくはなさそうでした。
 ただ、クライアント(JavaScript)とサーバ(Rust)の両方の理解が必要ですので、ボリュームはそれなりにありました。

 ということで、パスワードレス認証の使用と実装の感覚が、ざっくりつかめました。
 いい勉強になりましたね。

(酒)
moni-meter
  脱・手書き!点検データをデジタル化して誤検針削減
  ローコストで導入しやすい設備点検支援システム

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

荷造りのすゝめ

2024-03-13 11:33:26 | 日記
気づけば3月も中旬になっていました。
暦の上では春ですが、昨日も雨の影響か寒かったですね。
花冷えも待っていることですし、まだまだダウンジャケットは手放せません。

さて、3月と聞いて皆さんは何を思い浮かべますか?
ひなまつり、ホワイトデー、卒業式、お花見……。たくさんのイベントがありますよね。
ただ、華やかな話題は私の引き出しになく……、「年度の節目」という印象が強くあります。皆さんも年度末は大忙しでしょう。
年度の節目は環境が変わることも多いですし、お引越しする方もいらっしゃるのではないかと思います。
私は今までで15回ほど引越しをしているのですが、その半分は3月中でした。

引越しはやることがたくさんあります。
物件の検討や内見、契約、引越し業者の選定や依頼、ライフラインや役所関係の手続き、荷造りに荷解き、新居と旧居の清掃、ほかにも様々……。
特に引越しが趣味なわけではないのですが、物件の販売図面を見たり内見をするのは好きです。
が、春休みに引越しをするのであれば今の時期にはとっくに物件は決まっているはずなので、その話はまたの機会に。

今回はタイトルにあるように、荷造りについてです。
荷造りは一般的に、引越し当日の10日~1週間前から取り掛かるのが良いそうです。
私はさほど荷物がないので、大抵3日前から取り掛かることが多いです。計画性がなく、前夜だけでどうにかした回もいい思い出です。荷造りRTAでした。
ただし荷造りが間に合わないと引越し業者さんに運んで貰えなくなってしまうようです。何事も締切に余裕を持ってやらないといけませんね。

詰める品物は個々に適切な梱包の仕方がありますが、インターネットで調べると写真つきでわかりやすいものが出てきますので参考にしてください(身も蓋もなくてすみません)。
荷造りは荷解きのことを考えて詰めると後が楽になります。
個人的なポイントは以下の5つです。

▌あると便利なもの
・滑り止めつきの軍手
→これがあるとなんでも持てます。摩擦は偉大です。
・養生テープ
→家電の扉・家具の引き出しの固定、調味料入れやシャンプーボトルの口などを塞ぐのに使います。

▌使わないものから詰める
季節違いの服、趣味の道具、ストック中のものなど、引越しまで使わないものから詰めます。このとき引越し後に早めに使うものがあれば分けておきます。
使用頻度で分ければ荷造りも荷解きも少しずつ進められます。
引越し先に到着後すぐに必要なものは、最後に一つの段ボールにまとめて梱包します。すぐに開けたい意思を箱にマジックペンでこれでもかとアピールすると、大抵の引越し業者さんは察して開けやすい位置に運んでくれます。

▌物の種類で分けずに場所で分けて詰める
部屋で分けるのはもちろんですが、収納場所で箱を分けるのがおすすめです。
例えば普段デスク上に置いている本なら、本棚の本と一緒に入れず、デスク上のものと一緒に詰めています。
物を統一したほうが箱に詰めやすいのですが、私の場合どれがどこのものかわからなくなってしまうので。

▌段ボール箱いっぱいに詰めない
空間がもったいないからと詰め放題をすると底が抜けます。腰もいわします。
本や紙類は小さい箱に入れましょう。やっぱり底が抜けます。塵も積もれば山となるので。
重い荷物を詰めるときは、底面のガムテープを十字ではなく⧺字に貼ると安心です。

▌段ボール箱のあらゆる側面に内容物を書く
一面のみだと箱が多いと隠れてしまうことが多々あります。
ぱっとわかると作業もしやすくストレスもないので、未来の自分に優しくします。自分で中身がわかればいいので一言や略語だけで大丈夫です。

以上、当たり前のことばかりだったでしょうか。とはいえ、当たり前を徹底することも大事だったりしますよね。
新生活を始める方の一助になれば幸いです。
私も締切や当たり前のことを大事に、大忙しの年度末を乗り越えたいと思います。(と)

moni-meter
  脱・手書き!点検データをデジタル化して誤検針削減
  ローコストで導入しやすい設備点検支援システム

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

〇〇商戦

2024-03-12 11:05:29 | 日記
今日の横浜は雨。予報によれば夕方は強く降るようなので、お出かけしているみなさんはどうぞお気をつけて。この時期にわたしが気になるのは花粉の方で、日々のトークテーマに高頻度で登場します。今朝もさっそく、「来てますなー」「やーねー」と、明日の雨上がりはたくさん飛びそうなので今から震えています。

花粉症シーズンはお出かけが億劫になるのですが、花粉を浴びたくないからもそうだし、準備が面倒だからというのもあります。マスク、ティッシュは標準装備として、花粉をガードするクリームを日焼け止めの要領で塗り、ガードするミストをシュシュッとふってと、出かけるまでの工程が増えます。そこをなんとか手軽に済ませられないか、日々チェックしているところです。

数年前と比べたら、花粉対策アイテムはかなり増えたような気がします。特に花粉ケアを謳うコスメは本当に増えたと思います。刺激が少ない、乾燥しない、ガード効果、UVカット、さらに綺麗に仕上がるなど、この時期特にありがたい機能の羅列。気になってレビューサイトを読み込み、どれどれと店頭を巡回するのも楽しくなってきています。

対策アイテムもうひとつ、服。ポリエステル等の化繊は花粉がつきにくいと言われているので、お出かけの時は素材もなるべく気をつけるようにしています。春物のコートがある売り場を見ていると「花粉が付きにくい」という宣伝文句をよく見かけます。ネット上でも同様に、商品説明欄を見ると書いてあったりします。キーワード「花粉」で絞り込み検索をするとヒットする商品がでてきます。買うときの選ぶ基準のひとつになっていますね。

選択肢が多いことも、探しやすく見つけやすくなったこともありがたい限り。きっとメーカーの戦略通りの行動をしているのだろうなとも思いつつ、面倒な時期を快適に過ごせるのであれば、今後も新しい技術や画期的なアイテムの登場を楽しみにしたいと思います。(よ)

moni-meter
  脱・手書き!点検データをデジタル化して誤検針削減
  ローコストで導入しやすい設備点検支援システム

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Flutterの魅力と難点

2024-03-11 09:00:00 | 日記
どうも、プログラムのことになると口うるさいTです。

ここ数年、「Flutter」という開発フレームワークを推しています。FlutterはGoogleが提供している「マルチプラットフォーム向けSDK」でして、一つのコードからスマホ、デスクトップ、Webアプリをリリースすることができます。例えばiOS/Androidアプリを開発したい時は、それぞれのネイティブ言語(Swift/Kotlin)で別々に開発をするより、Flutterでまとめて開発する方がトータルコストを下げることができます。

私の所属する部署ではお客様から委託開発を受けたり、自社製品を開発したりする際、また、ちょっとした社内ツールを作る際に積極的に活用しています。

今回はそんなFlutterについて、これまで使ってきて感じた魅力と、現在進行形で悩んでいる難点について書いてみます。


まずFlutterの魅力ですが、一番はUIの開発しやすさにあると感じています。Flutterは「ウィジェット」を組み合わせることでUIを組んでいくのですが、あらかじめたくさんのウィジェットが用意されているためサクサクと開発できます。ウィジェットの数が多すぎてFlutter初心者の方は「どれを使ったらよいかわからない」という状態になるかもしれませんが、UIの「構造/レイアウト」に関するウィジェットと、具体的に目に見える「パーツ」としてのウィジェットを分けて理解すると、習得は早いと思います。

2022年に神奈川県情報サービス産業協会(略称KIA)にて勉強会を開催したのですが、全体で12~13時間ほど、各自の自習時間を加味しても20時間程度しか勉強時間がなかったにもかかわらず、参加してくださった方はかなり高度なUIを開発されていました。参加者の方々が熱心に取り組まれていたのが一番大きなポイントですが、Flutter自体もかなり学習しやすいSDKなのだと思います。


次に難点ですが、これまでお仕事で悩んできただけあってたくさんあります(笑)
そんな中でも現在進行形で悩んでいるものを何点か書こうと思います。

1点目はアーキテクチャ設計とその実現策です。
「アーキテクチャ設計」は「MVC」とか「MVVM」をイメージしています。これらを実現するためには合うOSS探して活用するか、自前でフレームワークを作りこむ必要があります。基本的にはOSSで対応しますが、どうしても学習コストが上がったり、OSSと思想が合わなかったりしてジャストフィット感がありません。かといって自前で作りこむのはコストが高すぎるため選択肢として取るのは難しいです。
直近では「GetX」というOSSを使っていまして、どう使うのがベストか探り中です。

2点目は多機能な画面を作ると重くなりがちなことです。
デスクトップアプリやPC向けWebアプリでは画面が広いため、様々な機能を1つの画面に盛り込みます。ですがそうすると結構な割合でパフォーマンスの問題が出てくる気がしています。Flutterは元々スマホアプリ向けに開発されたからか、それともこちらの作りが悪いのか、原因はハッキリと究明できていませんが、ユーザの操作感にダイレクトに影響するため、調整にはかなりの気を遣います。
ただ幸い、Flutter側もよくある重くなるポイントを把握しているようで、たいていは画像の遅延ロードや各種builderを使う形に変えることで改善できます。

3点目はWebアプリのビルドサイズが大きいことです。
Flutterは2021年にWebアプリの開発機能を安定版としてリリースしたのですが、当時から今に至るまで継続して「ビルド後のサイズがバカでかい」ことが問題になっています。例えばGoogleは「トータルサイズが1.6MB以下」を推奨しているそうです。
ですがFlutterでまっさらなプロジェクトを作成したそのままの状態でWebアプリをビルドすると、何も複雑なことをしていないにもかかわらず17MB以上になります。これはFlutterがどのデバイスでも完全に同じ見た目で動作させるためにCanvasKitを内包しているためです。実際は17MB全てが転送されるわけではなく、Gzip圧縮することで転送量を減らせるのですが、それでも最低2~3MBは転送する必要があります。
しかもライブラリや複雑な画面を追加すればするほどサイズは肥大化していきます。実際の案件ではビルドサイズが45MB程度まで肥大化し、有線LAN通信にもかかわらずWebアプリの表示に数秒かかる…ということがありました。これをスマホからLTE回線でアクセスしようものなら、一体何十秒待たされるかわかりません。一度ロードすればキャッシュが利いて次回から速くはなりますが、それでもGoogleの推奨する「1.6MB」からは大きくかけ離れていて、ユーザの体験を損なうものになります。


長々と悩みポイントを書いてしまいましたが、Flutterはとても開発しやすいフレームワークです。今後の進化によって処理の重さやビルドサイズの問題も改善されると思いますので、引き続きより良いアプリ開発のために活用していきたいと思っています。
アプリ開発に興味のある方はぜひ使ってみてください。

(T)

moni-meter
  脱・手書き!点検データをデジタル化して誤検針削減
  ローコストで導入しやすい設備点検支援システム

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

釣り堀という新しい世界

2024-03-08 10:40:00 | 日記
みなさん、こんにちは。
 
3月に入り寒い日がまた続きますが、来週から少しずつ暖かくなっていくようですね。
ようやく春がやってきますが、花粉症が最盛期を迎えて非常に難儀している今日この頃です。
 
さて、2023年度も残すところあと僅かということで、我が家の今年度を振り返るにあたり、外せないのが「釣り堀」です。
 
思い返せば、昨年の梅雨明けに子どもにせがまれ、人生初の釣り堀にいくことになりました。
おすすめの釣り堀を教えてもらい、そこがちょうど自宅からそう離れていなかったので、土曜の朝一に意気揚々と向かいました。
 
汗ばむ陽気の中、金魚と鯉が選べたので、魚が触れない私はまず金魚を選択。
 
お店の方に、「金魚はあまり釣れないけどいいですか?」と言われるも、それぐらいがちょうどいいなと思いいざ挑戦。
 
...1時間後、1匹も釣れませんでした。つらい。
子どもの様子を見てみると、意気消沈。
 
一方で、鯉の釣り堀を見てみると、ちょこちょこ連れている様子。
子どもも鯉がいいということで、
 
「(いやー、魚さわれないからほんと勘弁して)...よしやってみよう!」と覚悟を決めて挑戦しました。
 
すると釣竿をいれてすぐに、当たりが!
なんと一回目で釣れました。
 
喜ぶ子ども。
それを横目に内心大いに慌てるが、平静を装う私。
 
そこから1時間半でほんとに多くの鯉が釣れました。
四苦八苦しながら、鯉の釣り針を外したりする中で、段々私も慣れてきました。
 
初めて釣り堀に行ったときの写真がこちらです。
 
 
多いか少ないかがあまり伝わらないと思いますが、実はこれ以降寒くなるまでほぼ毎週通うことになるのですが、初めて行った時が一番釣れました。
 
段々と釣り堀のルールや雰囲気にも慣れてきたので、地図上にある自宅からいける範囲の釣り堀を全制覇しようということで、いろんな釣り堀にいきました。
 
住宅地の真ん中にある池がとっても緑色の釣り堀。
ニジマスの釣り堀は竿を垂らすと、一瞬で食いつかれる釣り堀。
屋内にあり、真鯛やアジが釣れる釣り堀。
堤防から海釣りが体験できる釣り堀などなど
 
 
日によって、全くといっていいほど釣れない日もあれば、たくさん釣れる日もある中で、初回にたくさん釣れたという成功体験を積んだことで、釣りは楽しいとインプットされた子どもは釣りが大好きになっています。
 
新しいことを始める際に、まず小さな成功体験をいかに積ませることができるのか、これがとても大事なんだと痛感させられる出来事だったなと。
 
私としても、魚が全く触れなかったところから、今では簡単にではありますが、さばくこともできるようになってちょっとした成長を実感しております。
 
小さなことでも新しいことに挑戦することで、今まで知らなかった世界が手に入れられるので、みなさんもぜひ2024年度に向けてどんなことでもいいので、新しいことに挑戦してみてください!
 
もし横浜で釣り堀に行きたいという方がいれば、おすすめご紹介しますので、いつでも下記よりご連絡くださいね!

~採用活動について~

ジェイエスピーでは新卒採用、中途採用活動を絶賛継続しております。
車好きなあなたも、車が好きじゃないあなたも、ご興味部あればいつでも連絡を!
募集しているポジションは
 
新卒:システムエンジニア
・Web/オープン系の開発経験者
・Javaでの案件管理経験をお持ちの方など
 
詳しくはこちらからご確認ください!
 
新卒採用募集ページ
中途採用募集ページ
 
選考希望、応募のご連絡楽しみにしております!
 
高(け)
moni-meter
  脱・手書き!点検データをデジタル化して誤検針削減
  ローコストで導入しやすい設備点検支援システム

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする