WordPressに話題のIDaaS『Auth0』をアカウント管理で導入してみた

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

結論、複数のライターさんでメディアを回しており、かつGoogleアカウントで一元管理したい場合など、かなり使えそうです。

莫大なライター数でなければ、ほぼ無料で使えます。

はじめに

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サイトが追加されていることを確認できます。

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

一般的な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で作成された巨大なウェブメディアで考えてみましょう。

専属のライターが50人いるとして、全員の権限、ログイン履歴、多要素認証をすべて管理するのは現実的ではありません。

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

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

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

Default image
Keisuke Kuribara
零細企業の代表 / ウェブマーケティング、コンサルティング、EC / 漫画と本が好き / 生物捕獲が趣味 / キーワード:WordPress、Shopify、Googleマーケティングプラットフォーム、Facebook・Google広告、iPaaS