本記事では、話題のIDaaS(Identity as a Service)と呼ばれる、ユーザーIDを安全に管理するサービス『Auth0』をテスト的にWordpressサイトへ導入してみたので、その使用方法や考察などを簡単に紹介したい。

はじめに

Facebookといったテック企業から、上場している大手企業、中小企業のウェブサービスまで、1)ハッカーの技術が上がっていること、2)高くないレベルのウェブ開発者が一定数いることから、パスワードを平文で管理していたり、脆弱性を突く攻撃でユーザー情報の漏えいが起きたりというニュースを見かけるようになった。

こういったことから、ユーザー情報を安全に管理することの重要性が増している。

近年、IDaaSというユーザー情報を管理することに特化したソフトウェアプロバイダーが誕生しており、

  • サインアップ
  • ログイン
  • 情報の管理
  • 他要素認証
  • SSO
  • ソーシャルログイン

などは外部企業のプログラムに委託するケースが増えている。フロントエンドの開発者全員が、暗号学や脆弱性、攻撃手法、ファイアウォール設定等の知識を深く持っているはずは無く、求める方が酷だ。

であれば、最大限にセキュリティレベルを上げ、情報管理に特化したソフトウェアプロバイダーのSDKを利用してしまった方が合理的。

そこで、IDaaSの筆頭とも言える米国ワシントンに拠点をおくAuth0® Incが提供する、Auth0というサービスを紹介したい。

Auth0とは

Auth0は、Web、モバイル、およびレガシーアプリケーション向けのユニバーサル認証・認可プラットフォームを提供しているサービス。B2C、B2B、B2E、IoTといった、あらゆるユースケースで利用できる。

使用する方法も多岐にわたり、プライベートクラウド、Auth0のクラウド環境、オンプレミス、ハイブリッドなど自由に選択できる。

Node.js、Python、Ruby、React、PHP、Vue、ASP.NET、Goなど主要なプログラミング言語へすべて対応しており、デプロイモデルが限定されていないので、自身にあった環境で安全なユーザー認証システムを構築できる。

また、セキュリティへ最大限の配慮を行っており、常に第三者によるコードレビューや脆弱性評価、ISO27001とISO27018認定、支払いカード業界(PCI)とデータセキュリティ標準(DSS)に準拠するなど、セキュリティ上懸念となるポイントはほぼ無い。自社で半端なアプリケーションを構築するなら、Auth0へ任せてしまった方が良いと言える。

利用するメリット

利用するメリットは上述してきたが、簡単にまとめると次のようになる。

  1. セキュリティレベルの向上
  2. ログインシステム構築の簡素化
  3. ユーザー体験の向上

細かいことはいくらでも言えるが、IDaaSを利用するメリットは上記3点に集約されるだろう。

登録

では、Auth0へ登録していこう。

このURLへアクセスし、右上の『サインアップ』をクリックする。アメリカのサービスだが、ランディングページは日本語化されている。

『サインアップ』をクリックすると、アカウント作成の手段を選択できる。

  1. メールアドレス&パスワード
  2. Github
  3. Google
  4. Microsoft

という、4つから選択できる。企業であればG-Suiteを利用しているケースも多いと思うので、従業員同士がログインしたりする場合、Googleログインが楽だと思う。

サインアップで続けると、Tenant Domainという自身唯一のサブドメインを発行することになる。これは、自動で入力されるのでデフォルトで良いだろう。Regionで、オーストラリア、ヨーロッパ、アメリカを選択する。

次に、アカウント情報を記入していこう。会社か個人かを選択し、それぞれのフォームを埋めていく。最後は、『Create Account』をクリックし完了だ。

アカウント画面

アカウント作成が完了すると、ダッシュボードが表示される。シンプルで無駄な無いUIが心地よい。無料でも最大7,000人のアクティブユーザーを登録できるため、しばらくは無料の範囲で利用できるだろう。

WordPressへ導入

では、Wordpressへ導入するため、プラグインをインストールしていこう。プラグインの新規追加からAuth0で検索するか、Wordpress.orgからダウンロードするか、WP-Cliで「$ wp plugin install auth0」コマンドからインストールできる。

有効化したら、設定を行っていく。基本的に、大きな組織で運営されているWordpress製ウェブサイトでなければ、『Standard』で良いだろう。

『Standard』をクリックしたら、『Standard Setup』でAuth0と連携させセットしていく。

『Standard Setup』をクリックした後、発行したAPIとアカウントを入力していく。

『Tenant Domain』はアカウント作成時に発行されたサブドメインを、『APIキー』はAuth0これから発行していく。ダッシュボードにある『APIs』から『Create & Authorize Test Application』をクリックし、APIキーを発行している。

ワンクリックで、長い英数字によるAPIキーが発行される。

WordPress ダッシュボードのAuth0設定画面に戻り、『Tenant Domain』と先ほど発行した『APIキー』を入力していく。

連携が成功するとセットアップもいよいよ終盤。『Configure your Connections』では、『Next』をクリックしよう。

アカウントのメールアドレスとパスワードを指定すれば、ほぼもう終わり。

『Go to Plugin Settings』が表示されれば、設定は完了だ。

プラグインの設定には、Basic、Feautures、Embedded、Advancedと4つのタブがあり、それぞれ細かな設定を行える。

Auth0のダッシュボードでは、多要素認証を設定することもできる。多要素認証を設定することで、万が一パスワードが漏洩しても手元にあるOTP端末へアクセス出来なければ、アカウント自体は安全に守られる。

CallbackをHTTPSに強制することで、アカウント認証とウェブサイトの通信を暗号化させるなども手軽に指定できる。

Auth0のダッシュボードから『Applications』タブに移動すと、Wordpressサイトが追加されていることを確認できる。

ソーシャルログインの指定は非常に多岐に渡り、これだけの情報をアプリケーションへ組み込むのはかなり苦労する。

一般的なFacebook、Google、Twitter、Githubといったサービスのみならず、LineやDocomo、Instagramでのログインも指定できるため、日本人向けアプリケーションへの対応もバッチリ。

管理画面より、『だれでもユーザー登録ができるようにする』にチェックをし、現在開いているブラウザとは別ブラウザから管理画面にアクセスしてみよう(設定:Chrome、確認:Firefoxなど)。

ログイン/サインアップはWordpressの管理画面でなく、Auth0のページに変更されているはずだ(Wordpressの管理画面にAuth0のフォームを表示させることも可能)。

Googleログインはデフォルトで出来るようになっているので、試してみよう。サインアップからGoogleログインをするだけで、勝手にアクセスできる。これは、『だれでもユーザー登録ができるようにする』で指定したロール(権限)で指定したものとなる。

通常、Googleログイン実装はコールバックドメインを指定しAPIキーを発行しなければならないのだが、Auth0では楽過ぎてびっくりする。

普通のログインは、以前に作成したメールアドレスとパスワードで行う。

サインアップから新たなメールアドレスとパスワードでアカウントを作成すると、スパム防止のためにメールの承認リンクを飛ばすこともできる。

パスワードリセットも同様で、メール認証を行うとパスワードを再設定可能。万が一、パスワードを忘れても大丈夫だ。

まとめと考察

この記事ではWordpressのアカウント管理にAuth0を利用してみたが、一般的なアプリケーションでも採用することをオススメしたい。

Googleが提供するFirebaseなど、アカウント管理は0から作成するのではなく、監査を受け試験に合格しているソフトウェアプロバイダーを使うほうが合理的であると言える。

アカウント認証をGoogleログインのみにしておけば、G-Suiteで管理されたユーザーのみがアクセスできるアプリケーションを容易に構築でき、安全性も高い。

例えば、Wordpressで作成された巨大なウェブメディアで考えてみよう。

専属のライターが30人いるとして、全員の権限、ログイン履歴、多要素認証をすべて管理するのは現実的でない。Auth0からアカウントを追加し、Lastpassなどのパスワードマネージャーで認証情報を共有し、ライターらに多要素認証をさせ、アカウントのログ履歴から不正が無いかを割り出すなどといった環境は、ほぼお金をかけず構築できてしまう。

Auth0はIDaaSの最大手プロバイダーで、B2C、B2B、B2E、IoTとあらゆる目的で採用できることから、社内向けアプリケーションから顧客向けサービスなど利用の幅を選ばない。

ユーザー認証システムは、どうせ管理が大変な部分だ。プロに任せてしまおう。

You May Also Like
続きを読む

チャット型マーケティングサービス『Drift』をウェブサイトへ導入し、ユーザーとの交流を図ろう

ウェブサイトに訪れてくれた顧客へ、チャット型ウィジェットを導入してコミュケーションを図るケースが増えている。 チャットでコミュケーションを取ることはユーザーと事業者の双方へメリットがあり、 「事業者」⇒形式張った面倒な文…