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

- Advertisement -クリブログ

本記事では、話題の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とあらゆる目的で採用できることから、社内向けアプリケーションから顧客向けサービスなど利用の幅を選びません。

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

Keisuke Kuribara
株式会社Propagation代表取締役。興味対象は、ビットコイン、大麻、ウェブ、金融、生物、心理など。金融から健康、テック、音楽など様々な事について執筆しており、このブログは月間10万PV程度となっております。自身のアウトプットや知的好奇心を満たすことが主な目的です。お仕事の依頼や相談などお気軽にお問い合わせください。
- Advertisement -
- Advertisement -

こちらもオススメ

自尊心と良好な人間関係について、13ヶ国53の研究で明らかになったこと

「あなたは、自分が価値のある人間だと感じていますか?自分自身に満足していますか?」 この言葉は、自尊心のレベルを測定しようとする研究者から聞かれる、質問の一例である。 人生経験の中で、自分をより良い気分にしてくれるものはたくさんある。ポジティブな思考と良好な社会的関係を持つことは、そのうちの1つだ。 友人、両親、パートナーと親密で満足のいく関係を築けば、自尊心は高まるのだろうか。自尊心には、何か独自の力があるのだろか。 ここで、1つの事実をお伝えする。自尊心が高ければ、社会関係の質が向上するということだ。

オプションと先物の違い

オプションと先物は、どちらも投資家がお金を儲けたり、現在の資産をヘッジしたりするために使う金融派生商品(デリバティブ商品)です。 どちらも、特定の日までに、特定の価格で商品を購入する契約になります。 オプションは、投資家に契約が有効である限り、いつでも特定の価格で株式を売買できる権利を与えるが、義務は与えない。先物契約では、所有者のポジションが満期日前にクローズされていない限り、買い手は株式を購入し、売り手は売却する必要がある。これは義務だ。 しかし、オプション市場と先物市場は、各々が持つ機能や投資家にとってのリスクの大きく異なります。

【バーナム効果】当たり前の事を、さも特別に感じてしまう心理ー騙されるロジック

これまで、「ピラミッドスキームや一攫千金などの嘘で犠牲になったり」、「Facebook上のフェイクニュースや陰謀説を本気で信じたり」、「危ない新興宗教へ本気でハマっていたり」、「霊的助言を定期的に求め大金を浪費したていたり」している人を見たことはあるはずです。 上記のように、インターネット上で人が騙される破壊的な話は事欠かしませんが、一般にこうした事は、Reddit、YouTube、ポッドキャスト、ブログなどですべて公開されており、世界中から見ることができます。 もちろん、僕もインターネットで詐欺を見かけることは往々にしてあり、次はこんな手口なのかと楽しんで見させてもらっています笑。 最近だと仮想通貨関連が本当に多いですね。

BitnamiでローカルにWordPressのテスト環境を作る

Wordpress(ワードプレス)製のウェブサイトで、新しいテーマやプラグインを試したいとしよう。 このとき、いきなり実際にサイトが稼働している環境へ、いきなり突っ込むのは少し怖い。そこで、ローカル(手元のPC)などのデモ環境で稼働させてみてから、本番環境に入れるという手順を取ることは多い。 代表的なものでは、PHPの開発環境であるXAMPPなどがある。 だが、今回はより手軽にインストールでき、そのままの環境がクラウドにもあるBitnamiを使う方法を解説する。 Bitnamiとは

サクッと作りたいファッション関係のサービス、サイズの悩み

スニーカー好きの皆さん、こんにちは。 新しく購入しようとしているその靴でサイズ選びに悩んでることと思う。 スニーカーが好きな方は分かると思うが、各社のみならずシューズは型やレーベルごとにサイズ感が違う。しかも、結構違うのだ。VansやConverceは大きくぶれないので選びやすいメーカーでありがたい。 例えば、Air Jordanシリーズの作りは一般に小さいと言われており、またその通りである。作りが小さいと言われているAir Jordanシリーズでも、Air Jordan 1とAir...

こちらの記事も読まれています

- Advertisement -