Auth0について

Auth0は、IDおよびアクセス管理(IAM)プロバイダーです。具体的にはどういうことでしょう。「IDおよびアクセス管理(IAM)について」をお読みになった方は覚えているかと思いますが、IAMソリューションは、WebアプリケーションやAPIなどとして顧客に提供するリソースのゲートキーパーの役割を果たします。このゲートキーパーは、OAuth 2.0で概説されているように、認可を開始します。これにOpenID Connectのレイヤーを加えると、ユーザーのデジタルIDと製品を保護するための認証が追加されます。

Auth0のIDプラットフォームは、さまざまなアプリケーションタイプとフレームワークをサポートします。アプリケーションの種類が通常のWebアプリであろうと、モバイルアプリやマシンツーマシンアプリであろうと、Auth0はそれぞれに最も安全な認可付与(ワークフロー)の構成を提供します。認可付与とアプリケーション用のフロー選択に関する詳細は、「どのOAuth 2.0フローを使用するべきですか?

Auth0のIDプラットフォームでは、安全なプロトコルをサポートするだけでなく、お客様のビジネス、テクノロジー、顧客ベースに合わせてログインサービスをカスタマイズできます。Auth0 DashboardManagement APIを使用して、顧客を認証・認可する独自のAuth0インスタンスを作成することが可能です。また、ログイン動作の構成、ユーザーデータストアの接続、そのユーザーの管理、認可付与の選択、認証要素の設定が行えるため、シームレスで拡張性が高く、影響力のあるユーザーエクスペリエンスを提供できます。

はじめに

アイデンティティの基礎

Auth0をアプリケーションやAPIに統合するためにIAMの専門知識を身につける必要はありませんが、いくつかの主要なコンセプトを押さえておくと、ユースケースに合わせた適切な構成を選択できます。詳細は、「IDおよびアクセス管理(IAM)について」の記事をお読みください。実装の計画に関してまだご不明な点がある場合は、実際のシナリオを使って詳しく説明している「アーキテクチャシナリオ」のセクションをご覧ください。

Auth0との統合

Auth0との統合を始めるにあたり、初期セットアップと素早い構成に役立つインタラクティブなQuickstartガイドを利用するか、Auth0 Dashboardでアプリケーションを手動登録するかを選べます。Dashboardではさらに、テナントを作成するか、一からAuth0インスタンスを作成する方法があります。SDKを使用したい場合は、各アプリケーションタイプに応じたオプションからお選びください。Auth0ライブラリーですべての選択肢をご覧いただけます。

まずはDashboardのテナント設定で、ユーザーに表示される名前、会社のロゴ、コールバックURL、認証後にAuth0がユーザーをリダイレクトする場所など、一般的な詳細を構成することから始めましょう。推奨される構成は「テナント設定」で確認できます。

テナントをセットアップし終えたら、アプリケーションまたはAPIの作成と構成に取りかかります。出発点として、「アプリケーションの作成」または「APIを登録する」の記事にある手順を参考にしてください。

認証

認証の手段となるのが、ユーザーがアプリケーションにアクセスするための仲立ちとなるログインフォームです。ユーザーは事前に定められたユーザー名やパスワードなどの資格情報をログインフォームに入力して、自らのデジタルIDを確認します。

Auth0のユニバーサルログインは、ブランドに合わせてカスタマイズし、安全なアクセスを提供するよう構成できるログインフォームです。ユニバーサルログインには以下のような利点があります。

  • 生体認証を使用したパスワードレスログイン

  • メールや音声、Duoなどの多要素認証の選択肢

  • シングルサインオン(SSO)機能

  • ローカリゼーションのサポート

詳細については、「ユニバーサルログイン」をお読みください。その他の利用できる機能の詳細は、「ユニバーサルログインとクラシックログイン」をお読みください。

ログインフォームを準備したら、ユーザーストアをAuth0に接続します。既存のデータベースを接続するか、XやMicrosoft Entra IDのような、ソーシャル、リーガル、またはエンタープライズのIDプロバイダーを使用できます。新規ユーザーは、構成した接続を使用してサインアップします。

ログインフォームとユーザーストア接続が整ったら、ユーザーがアプリケーションにログインする際に裏で処理するプロトコルを設定します。最も一般的なプロトコルは、OAuth 2.0とOpenID Connect(OIDC)の仕様に関連付けられており、「アイデンティティの基礎」で概要を確認できます。

ログイン中に情報を安全に送信するもう一つのプロトコルは、トークン形式で提供されます。Auth0のAuthentication APIである認可サーバーからのトークンは、エンティティー間で情報を送信します。ユーザーがログインしてアクセスが承認されると、使用している認証付与に基づいて、Authentication APIがアクセストークン、IDトークン、またはその両方を送信してセッションを作成します。アクセストークンには、アプリケーション内で要求元が持つスコープまたはアクセス許可に関する情報が含まれ、IDトークンには、ユーザーエクスペリエンスを向上させるユーザーメタデータなどの要求元情報が含まれます。

Authentication APIからのトークンは、以下で構成されたJSON Web Token(JWT)です。

  • 署名を含むヘッダー

  • 要求者に関するステートメントと属性を含むペイロード

  • トークンが有効であることを確認する署名

トークンに関する詳細は、「アクセストークン」、「IDトークン」、または「JSON Web Token」をお読みください。

SAML(Security Assertion Markup Language)やWS-Fed(Webサービスフェデレーション)など、その他のプロトコルは、特殊なシステムに使用します。SAMLは一部のIDプロバイダーで、WS-FedはMicrosoft製品で使用されます。詳細は、当社ドキュメントの「プロトコル」のセクションをご覧ください。

ユーザーの管理

ユーザープロファイルとアクセスの管理には時間がかかります。そこでAuth0インスタンスでユーザーを管理すると、悩みの種をいくつか取り除くことができます。

Auth0 DashboardまたはManagement APIで、CRUD操作を簡単に自動化し、ユーザープロファイルを照会できます。また、Auth0 Organizationsでユーザーをカテゴリー分けし、管理スタイルに合わせて顧客ベースを整理できます。詳細は、当社ドキュメントの「ユーザーの管理」をご覧ください。

ビジネスモデルによって、ユーザーのアクセスがレベル分けされている場合があります。たとえば、一部のユーザーには読み取り専用のアクセス許可を、別のユーザーには編集のアクセス許可を与えるというようにです。Auth0のAuthorization Coreでは、Role-based Access Controlを実装できます。ロールを作成し、ユーザーに割り当てて、アクセス許可を定義します。さらに堅牢な認可モデルが必要な場合には、Fine-Grained Authorization(FGA)を使用します。FGAでは認可ポリシーを決定するためのオプションが豊富にあり、ユーザーとリソースとの関係、ユーザーのロール、またはユーザーやリソースの属性に基づいて、ユーザーにリソースへのアクセスを許可できます。

ブラウザーの動作に基づいてアクセスを管理する場合は、セッションのライフタイムを制限できます。セッション、つまり要求元のエンティティーとアプリケーションまたはリソース間のインタラクションには、ライフタイムの制限があります。セッションは、ユーザーがブラウザーを閉じるか、Webページ外に移動する際に終了できます。セッションを延長するには、アクセストークンを更新するリフレッシュトークンを使います。リフレッシュトークンはDashboardで構成します。詳細は、「セッションライフタイムの制限」と「リフレッシュトークンの取得」をお読みください。

Cookie(データの文字列)はセッションに結び付けられ、認証されたユーザーを表します。Cookieを使用すると、認証されたユーザーはセッションを維持し、再認証を求められることなくWebページ間を移動できます。ブラウザーが閉じると、Cookieはブラウザーによって消去されます。

カスタマイズ

ブランドは重要です。Auth0ではログインエクスペリエンスをビジネスに合わせてパーソナライズできるようカスタマイズ機能を提供しています。ロゴとカラースキームをログインフォームに追加したり、カスタムドメインを使用してログインURLの所有権を得たりすることができます。構成の詳細については、「カスタムドメイン」をお読みください。

ユニバーサルログインには、ニーズに合わせて認証を構成する、多要素認証やデバイスの生体認証によるパスワードレス認証、ローカリゼーションといった、さまざまな機能が備わっています。さらに細かいレベルでは、ユーザーにアクションの完了を求める際に表示するプロンプトのテキストを調整することができます。また、ユーザーがサインアップする、認証用のデバイスを登録する、またはユーザーが確認のために入力するコードをメール/SMSに送信するためのプロンプトを構成することができます。さらに、新規ユーザーへのウェルカムメールや、登録の確認メール、パスワードのリセットメールなどのカスタマイズにはメールテンプレートをご用意しています。詳細は、「ユニバーサルログインのテキスト要素をカスタマイズする」と「メールテンプレートをカスタマイズする」をお読みください。

他にも、Auth0 Actionsを使って特定のイベントを構成することが可能です。アクションはランタイム中に実行される安全な関数です。アクションはパイプラインのさまざまなポイントでトリガーされ、多様な用途があります。たとえば、ユーザーがサインアップする前にメタデータを追加したり、ユーザーを外部サイトにリダイレクトすることができます。アクションの役割については、「Auth0 Actionsの仕組みを理解する」をお読みください。

セキュリティ保護

悪意ある攻撃はいつ起こるか予想できません。Auth0ではサイバー攻撃を防ぐために、Google reCAPTCHA Enterpriseを活用したボット検知など、さまざまな攻撃防御オプションを提供しています。ボット検知の構成の詳細は、「ボット検知」をお読みください。

独自のログインページを使用している場合でも、Auth0ではAuth0 Dashboardで有効にできるその他のセキュリティオプションをご用意しています。

  • 侵害されたパスワードの検出

  • 総当たり攻撃防御

  • 不審なIPのスロットリング

侵害されたパスワードの検出は、盗まれた資格情報を持つ悪意あるエージェントに対するセキュリティ対策です。総当たり攻撃防御は、ログイン試行の回数を制限して悪意あるIPを自動的にブロックし、フラグが付けられたユーザーアカウントに通知を送信することで、標的にされたユーザーアカウントを保護します。不審なIPのスロットリングは、総当たり攻撃防御が機能しなくなった場合に機能し、急激なサインアップやログインを試みるIPアドレスからのトラフィックをブロックします。

その他のセキュリティ対策は、ユーザーの認証方法によって異なります。ユニバーサルログインで多要素認証(MFA)を有効化するには、ユーザーが2つ以上の認証要素を提供する必要があります。Auth0では、未知のデバイスや疑わしいIPアドレスからのユーザーログインといった、特定の状況下でトリガーされるようにMFAをカスタマイズできます。MFA構成の詳細については、「Adaptive MFA」をお読みください。

導入とモニタリング

Auth0インスタンスのテストを終え、導入する準備が整ったら、当社のパブリッククラウドまたはプライベートクラウドを利用できます。利用可能なオプションの詳細については、「導入オプション」をお読みください。マルチテナントに対応した環境が必要な場合は、「AWSのプライベートクラウド」についてお読みください。

導入を順調に進めるため、導入前の推奨事項、導入チェックリスト、ベストプラクティス、一般的な調整、その他のヒントなどの形でガイダンスを提供しております。導入を可能な限り円滑に行えるようご活用ください。

ユーザーが使えるように運用環境を構築したら、エラー追跡とアラートを使用して目を光らせましょう。監視できるSystem Center Operations Managerを使用すると、イベントログを分析ツールにエクスポートして、傾向、ユーザー動作、問題に関するインサイトも得ることができます。