しっかりとした認証機能を実装したいがメイン機能以外にリソースを割けない
昨今、流出したログイン情報で不正ログインし、そこからなりすましや不正侵入するなどのインシデントが増えてきている。もはやIDとパスワードだけの基本認証では安全性を確保できず、多要素認証を設定することがマナーやリテラシーとして浸透しつつある。多要素認証は多少面倒ではあるものの、不正ログインを防止するには有効な手段となる。
しかしWebサイトやサービス側で多要素認証が設定できない、あるいは認証の仕組みが甘いとしたら、ユーザーはどう思うだろう。サービスそのものはよくても、セキュリティ意識が高いユーザーは敬遠してしまうかもしれない。逆に多要素認証ができてもデザインが分かりにくかったり、操作が面倒だったりすると離脱するユーザーが出てしまう。サイトの安全性を高める上でも、利便性を高める上でも、トレンドを踏まえてモダンな認証機能を実装しておきたいところだ。
とはいえ、モダンな認証の仕組みを充実させるとなると、開発や運用に負担が重くのしかかる。認証そのものは不可欠な機能でありつつも、主要な機能ではないため十分なリソースを回しにくい。限られたリソースは主要な機能開発に注力したいところではないだろうか。
田所光貴氏によると、アプリやサービス開発における認証やそれに伴うID管理の仕組みは「一見すると簡単に見えるかもしれませんが、ふたを開けると多くの実施項目があります」と指摘する。
ログインに関する機能は、表面的には入力フォームの設計や開発と、ID/パスワード情報の管理程度に見えるかもしれない。だがモダンな認証機能を備えようとしたら、多要素認証の実装、GoogleやFacebookなどのアカウントを使うソーシャルログイン実装、PC/モバイル両対応、機能のメンテナンスやバージョンアップ、OpenID ConnectやSAMLなどの仕組み、外部IDプロバイダーとの連携などを検討していく必要がある。会員登録が必要なサイトなら、ユーザーが離脱しないような簡便さに配慮したフォームを設計する必要もあるだろう。
上で挙げたような認証の仕組みはすべて実装する必要はなく、すべて自前で開発する必要もない。CIAM(顧客ID&アクセス管理)ソリューションやIDaaSなどの外部サービスを頼るという選択もありだ。市場には認証に関するサービスが多種多様に提供されている。いずれかのサービスを利用するのであれば、その部分の機能を開発する手間を省くことができる。