Skip to main content
Auth0 は、アイデンティティとアクセス管理 (IAM) のプロバイダーです。では、これはどういう意味でしょうか。Introduction to Identity and Access Management (IAM) をお読みであれば、IAM ソリューションが、Web アプリケーションや API などの形で顧客に提供するリソースを守る門番であることをご存じでしょう。この門番は、 で定義されているとおり、認可を開始します。さらに、 Connect レイヤーが加わることで認証が追加され、ユーザーの と製品を保護できます。 Auth0 のアイデンティティプラットフォームは、さまざまなアプリケーションの種類やフレームワークをサポートしています。アプリケーションが一般的な Web アプリ、モバイルアプリ、または machine-to-machine アプリのいずれであっても、Auth0 はそれぞれに対して最も安全な認可グラント、つまりワークフローの設定を提供します。認可グラントの詳細や、アプリケーションに適したものを選ぶ方法については、Which OAuth 2.0 Flow Should I Use? をご覧ください 安全なプロトコルをサポートするだけでなく、Auth0 のアイデンティティプラットフォームでは、ビジネス、技術、顧客層に合わせてログインサービスをカスタマイズできます。 を使用すると、顧客の認証と認可を行う独自の Auth0 インスタンスを作成できます。ログイン時の動作を設定し、ユーザーデータストアを接続し、ユーザーを管理し、認可グラントを選択し、認証要素を設定することで、シームレスで拡張性が高く、優れたユーザー体験を備えた製品を構築できます。

はじめに

アイデンティティの基礎

Auth0 をアプリケーションや API に統合するために、IAM の専門家である必要はありません。ただし、いくつかの重要な概念を理解していれば、ユースケースに適した設定を選べます。詳しくは、アイデンティティとアクセス管理 (IAM) 入門 の記事をご覧ください。実装の計画についてまだ疑問がある場合は、実際のシナリオを順を追って解説した Architecture Scenarios セクションをご確認ください。

Auth0 と連携する

Auth0 との連携を始めるには、初期設定や簡単な構成に使える対話型の Quickstart guides を利用する方法と、Auth0 Dashboard でアプリケーションを手動で登録する方法があります。Auth0 Dashboard では、テナント、つまり Auth0 インスタンスを一から作成できます。SDK を利用したい場合は、Auth0 ではアプリケーションの種類ごとに複数の選択肢を用意しています。利用可能なものをすべて確認するには、Auth0 Libraries を参照してください。 設定は、Auth0 Dashboard のテナント設定にある一般的な項目から始められます。たとえば、ユーザーに表示される名前、会社のロゴ、callback URL、認証後に Auth0 がユーザーをリダイレクトする先などです。推奨事項については、Tenant Settings を参照してください。 テナントの設定が完了したら、アプリケーションまたは API を作成して設定できます。開始時の参考として、Create Applications または Register APIs の記事にある手順を利用できます。

認証

認証の手段となるのがログインフォームです。これは、ユーザーがアプリケーションにアクセスするための入口となります。ユーザーはログインフォームにユーザー名やパスワードなどのあらかじめ定められた資格情報を入力し、自身のデジタルアイデンティティを確認します。 Auth0 の は、ブランドに合わせてカスタマイズでき、安全なアクセスを提供するよう設定できるログインフォームです。Universal Login を使用する利点には、次のようなものがあります。
  • 生体認証による ログイン
  • メール、音声、Duo から選べる の方式
  • (SSO) 機能
  • ローカライズ対応
詳しくは、Universal Login をご覧ください。利用可能な機能の詳細については、Universal Login vs. Classic Login をご覧ください。 ログインフォームを用意したら、ユーザーストアを Auth0 に接続できます。既存のデータベースを接続することも、X や Azure Active Directory などのソーシャル、法的、またはエンタープライズの を利用することもできます。新規ユーザーは、設定した接続を使ってサインアップできます。 ログインフォームとユーザーストアの接続を用意したら、ユーザーがアプリケーションにログインするときに裏側で動作するプロトコルを設定できます。最も一般的なのは、Identity Fundamentals の記事ですでに目にしたかもしれない OAuth 2.0 と OpenID Connect (OIDC) の仕様に関連するプロトコルです。 ログイン時に情報を安全にやり取りするための別の仕組みとして、トークンがあります。 である Auth0 の Authentication API から発行されるトークンは、エンティティ間で情報を伝達します。ユーザーがログインしてアクセスが承認されると、Authentication API は、セッションの作成に使用している認証グラントに応じて、、またはその両方を送信します。アクセストークンには、リクエスト元がアプリケーション内で持つ scope、つまり権限に関する情報が含まれます。一方、ID トークンには、ユーザーエクスペリエンスを向上させるためのユーザーメタデータなど、リクエスト元に関する情報が含まれます。 Authentication API からのトークンは、次の構造を持つ (JWT) です。
  • 署名を含むヘッダー
  • リクエスト元に関する記述や属性を含むペイロード
  • トークンが有効であることを検証する署名
トークンの詳細については、Access TokensID Tokens、または JSON Web Tokens をご覧ください。 その他に、 (Security Assertion Markup Language) や (Web Service Federation) などのプロトコルは、より特定のシステムで使用されます。SAML は一部のアイデンティティプロバイダーで利用され、WS-Fed は Microsoft 製品で使用されます。詳しくは、ドキュメントの Protocols セクションをご覧ください。

ユーザーを管理する

ユーザープロファイルやアクセスの管理には、時間がかかることがあります。Auth0 インスタンスでユーザーを管理すれば、そうした手間をいくらか軽減できます。 Auth0 Dashboard や Management API を使えば、CRUD 操作の自動化やユーザープロファイルの検索を簡単に行えます。さらに、Auth0 Organizations を使ってユーザーを分類し、管理スタイルに合わせて顧客基盤を整理することもできます。詳しくは、ドキュメントの ユーザーを管理する セクションをご覧ください。 ビジネスモデルによっては、ユーザーごとに異なるアクセスレベルが必要になる場合があります。たとえば、一部のユーザーには読み取り専用の権限を付与し、別のユーザーには編集権限を付与したいこともあるでしょう。Auth0 の Authorization Core を使うと、ロールベースのアクセス制御を実装できます。ロールを作成し、ユーザーにロールを割り当て、権限を定義できます。 ブラウザーの動作に応じてアクセスを管理したい場合は、セッションの有効期間を制限できます。セッション、つまり要求元エンティティとアプリケーションまたはリソースとのやり取りには、有効期間の上限があります。ユーザーがブラウザーを閉じたり、Web ページから離れたりすると、セッションは終了することがあります。アクセストークンを更新する を使って、セッションを延長できます。リフレッシュトークンは Auth0 Dashboard で設定します。  詳しくは、セッション有効期間の制限リフレッシュトークンを取得する をご覧ください。 Cookie はデータの文字列で、セッションに関連付けられた認証済みユーザーを表します。Cookie により、認証済みユーザーは再認証を求められることなくセッションを維持したまま、Web ページ間を移動できます。  ブラウザーを閉じると、Cookie はブラウザーによって削除されます。

カスタマイズ

ブランドは重要です。Auth0 には、ログイン体験をビジネスに合わせてよりパーソナライズするためのカスタマイズ機能が用意されています。ログインフォームにロゴやカラースキームを追加できるほか、を使用して、ログイン URL を自社で管理することもできます。設定の詳細については、Custom Domains をお読みください。 Universal Login には、多要素認証、デバイスの生体認証を使用したパスワードレス認証、ローカライズなど、ニーズに合わせて認証を設定するためのさまざまな機能があります。さらに細かく設定する場合は、ユーザーが何らかの操作を完了する必要がある際に表示されるプロンプトのテキストを調整できます。ユーザーのサインアップ用、認証のためのデバイス登録用、または確認のために入力するコードをメール/SMS に送信するためのプロンプトを設定できます。また、メールテンプレートを使って、新規ユーザーへの歓迎メール、登録確認、パスワードリセットなどのメールコミュニケーションもカスタマイズできます。詳しくは、Customize Universal Login Text ElementsCustomize Email Templates をお読みください。 また、Auth0 Actions を使って特定のイベントを設定することもできます。Actions は、実行時に動作する安全な関数です。Actions はパイプライン内のさまざまな時点でトリガーされ、幅広い用途に利用できます。たとえば、ユーザーがサインアップする前にメタデータを追加したり、ユーザーを外部サイトにリダイレクトしたりできます。Actions でできることの詳細については、Understand How Auth0 Actions Work をお読みください。

セキュリティ

悪意のある攻撃はいつでも発生する可能性があります。Auth0 では、サイバー攻撃を防ぐために Google reCAPTCHA Enterprise と組み合わせて使用できる オプションを複数提供しています。その 1 つが です。ボット検出の設定について詳しくは、Bot Detection を参照してください。 独自のログインページを使用している場合でも、Auth0 には Auth0 Dashboard で有効にできるセキュリティオプションがほかにもあります。
漏えいパスワードの検知は、盗まれた資格情報を使う悪意のある攻撃者に対するセキュリティ対策です。ブルートフォース対策は、ログイン試行回数を制限することで標的となったユーザーアカウントを保護し、悪意のある IP を自動的にブロックして、対象のユーザーアカウントに通知を送信します。不審な IP スロットリングは、ブルートフォース対策だけでは防ぎきれない部分を補い、短時間にサインアップやログインを繰り返し試みる IP アドレスからのトラフィックをブロックします。 そのほかのセキュリティ対策は、ユーザーにどのように認証してもらいたいかによって異なります。Universal Login で多要素認証 (MFA) を有効にすると、ユーザーは 2 つ以上の認証要素を提示する必要があります。Auth0 では、ユーザーが見慣れないデバイスからログインした場合や、不審な IP アドレスからログインした場合など、特定の状況で MFA がトリガーされるようにカスタマイズできます。MFA の設定について詳しくは、Adaptive MFA を参照してください。

デプロイと監視

Auth0 インスタンスのテストが完了し、デプロイの準備が整ったら、パブリッククラウドまたはプライベートクラウドの提供形態を利用できます。利用可能な提供形態の詳細については、Deployment Optionsをご覧ください。マルチテナント対応の環境が必要な場合は、AWS 上の Private Cloudについて詳しくご確認ください。 デプロイを円滑に進められるよう、デプロイ前の推奨事項、デプロイのチェックリスト、ベストプラクティス、一般的な対処法のほか、デプロイをできるだけスムーズに進めるための各種ヒントを提供しています。 ユーザー向けの本番環境を整えた後は、エラー追跡やアラートで状況を監視できます。System Center Operations Manager を使用して監視できるほか、イベントログを分析ツールにエクスポートすることで、傾向やユーザー行動、問題に関する分析情報を得ることもできます。