質問: 現在Angular7(Nodejs)でWebアプリケーションの開発を行っております。 本アプリはGoogle Chromeで動作し、初期画面でアプリにアクセスしているクライアント端末の固有情報をフロントエンド(Angular)で取得したいのですが、以下の要件を満たす良い方法はありますでしょうか。 * クライアント端末固有情報としてUUIDを取得したい。 ※プライベートIPやコンピュータ名はすでに検討済み。 * UUIDはDBにも登録するため、永続的に固定であること。 * UUIDはクライアント端末間で一意であること。 * 端末に紐づくUUIDが複数存在する場合は意図したUUIDをJavaScriptで選択的に取得できること ※ケースによってUUIDは1端末に対し複数存在する場合があると聞いています。 既存のUUIDがないもしくは使用できない場合は、別途UUIDを生成することも想定しております。 その場合の方法もご存じでしたら教えていただけますと幸いです。
回答: 短い答え:ありません(あってもできてはなりません) 長い答え: Web アプリということは任意の端末を任意のユーザーが使うことを想定しておかねばなりません。 例:普段は自宅 PC からアクセスしているユーザーが、会社からアクセスしたり、出先ではスマホでアクセスしたりネカフェからアクセスしたりしたいはず。 よって識別するべきは端末ではなくてユーザーであって、となるとごく普通に ID/PW でログインできるべきだし、認証結果も Cookie 程度の即消去できるものでないとまずいです。端末を識別してしまうとlネカフェの次のお客さんと前のお客さんとが区別できなくなってしまいます。 Web アプリでユーザーでなく端末を特定する=プライバシー侵害かつ Web アプリの良さをすべて損なうわけで、無意味どころか有害です。 XY 問題に陥っている気がします。なぜ Web アプリで端末の識別が必要だと思ったのか、その仕様の根拠となった案件の見直しが必要そうです。