Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

開発者はコアな機能の実装に集中できる! Auth0が提供する認証・認可の最適解【デブサミ2019夏】

【C-6】ソフトウェア開発における認証・認可の位置付けと課題、現実解を探るアプローチ

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/08/09 12:00

 認証・認可はどんな種類のアプリケーションにも求められる機能だ。一方で、技術仕様が複雑で実装が困難な領域でもある。「仕様の調査に膨大な時間がかかった」「認証の実装方法に不備があり、アプリケーションに脆弱性を作ってしまった」といった経験を持つエンジニアは少なくないだろう。そうした課題を解決してくれるのが、Auth0株式会社が提供する認証・認可のプラットフォームである。多種多様な機能を有する同社のライブラリは、わずか数行のコードを記述するだけで利用可能だというから驚きだ。同社ソリューションズエンジニアの山口央氏が、Auth0のサービスを用いて認証・認可の課題を解決する方法を解説した。

Auth0株式会社 ソリューションズエンジニア 山口央氏
Auth0株式会社 ソリューションズエンジニア 山口央氏

認証・認可を外部サービスでまかなうことの利点

 現代は、数多くのアプリケーションが開発され、市場に出回っている時代だ。モバイルデバイスで動くネイティブアプリケーション、ReactやAngularなどの技術を用いて作られるシングルページアプリケーション、従来型のWebアプリケーションなど、種類は多種多様である。

 そうしたアプリケーションのほぼ全てに必要な機能が認証・認可だ。広義でとらえるならば、ユーザーの払い出しやセッション管理、パスワード管理、アカウント管理、ログアウト管理などさまざまな構成要素が認証・認可には存在する。それらの構成要素は複雑な技術仕様を持っており、スクラッチで実装するのが困難な領域である。そのため、万が一認証・認可まわりのトラブルが発生すれば、被害も甚大なものになってしまう。

 また、1から実装する場合には開発工数が非常に大きい。ログイン・サインアップ機能や、SAML、 AD/LDAPとの連携、GoogleやFacebookに代表されるソーシャルログイン、多要素認証など求められる全ての認証機能を実装すれば、数カ月の時間を要するだろう。

 そうした課題を解決してくれるのが、Auth0の提供する認証・認可のサービスだ。Auth0のプラットフォームは65を超えるSDKを公開している。そのようなSDKならびにライブラリを利用し、わずか数行のコードを組み込むだけで、認証機能を実装することが可能だ。

 このプラットフォームを利用することで、認証・認可の実装にかかる時間的コストを短縮でき、開発者が本来集中すべきビジネス機能の実装に時間を費やすことができる。ソフトウェアそのもののクオリティを向上させることが、ユーザーの満足度を向上させることに結びつくのだ。

 ソフトウェア開発の活動のなかで、ID Managementは本来ノンコアな領域である。開発者が本来取り組むべき活動は、ユーザーがどういったプロダクトを求めており、どんな課題を持っているのかをいち早く発見すること。アイデアを創出して動くソフトウェアをすぐに作り、なるべく早くリリースすること。ユーザーの声を拾い上げ、次の課題発見やアイデア創出に生かすためのフィードバックループを回すことである。

 「コアな機能に自社のリソースを集中投入するには、ID Managementの部分を外部から調達することや、既にあるサービスを使うことが現実的な解になってきます。だからこそ、私たちAuth0の存在意義があるわけです」(山口氏)

 その利便性の高さや優れた堅牢性から、パーソルキャリアやNTTドコモといった名だたる国内大手企業もAuth0のプラットフォームを利用しているという。

Auth0の提供するサービスは、多種多様な認証方式に対応

 Auth0のサービス提供イメージは上図のとおりだ。上の段から順に、ユーザーのユースケース(BtoC、BtoBなど)、アプリケーションの種類(Web、Mobileなど)、認証のプロトコル(SAML、OAuthなど)、IdP(認証情報の提供者)となっている。

 Auth0のプラットフォームは、BtoCやBtoB、BtoEなど全てのユースケースに対応している。また、幅広いテクニカルスタックに対応しており、認証・認可の利用が想定されるほとんどの種類のアプリケーションをカバーしている。プロトコルに関しても、業界標準であるSAML、OAuth、OIDC、WS-Federationなどを利用可能だ。

 データベースに関しても複数の利用ケースに対応している。Auth0ネイティブのデータベースにユーザープロファイルやアプリケーション情報をストアするケース。利用企業が既に持っているデータストアをAuth0のプラットフォームに結合してそのまま利用するケース。利用企業のデータベースに存在するユーザープロファイルをシームレスにAuth0のデータベースに移行するケースなど、利用者のニーズに合わせた幅広い利用が可能になっているのだ。

 ソーシャルサインインについても、GoogleやFacebook、Twitter、LinkedIn、Pinterestなど数多くのソーシャルプロバイダーに標準対応。エンタープライズによる認証もMicrosoftアカウントやMicrosoft Office 365、G Suiteなどの利用が可能である。さらに、各種のIDEやバージョン管理システム、アプリケーションモニタリングシステムなどとの連携もできる。まさに至れり尽くせりだ。

 ひととおり説明を終えた後、山口氏は実際に画面を動かしながらAuth0の使用方法をデモンストレーションした。わかりやすい操作方法、かつ多機能であることが伝わる実演。山口氏はあっという間に、サンプルアプリケーションへ認証・認可機能を追加していった。

 「本セッションでご覧いただいたように、認証・認可はどんなアプリケーションにも必要不可欠なものであるにも関わらず、1から実装するには技術的・時間的な制約が多いといった課題があります。その解決策として、 既にある外部のプラットフォームを使うことが有効であることをご紹介させていただきました。もし、みなさまの開発されているアプリケーションで認証・認可の機能が必要になった際には、ぜひAuth0のサービスをご利用いただければ幸いです」(山口氏)

お問い合わせ

 Auth0株式会社

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5