メインコンテンツへスキップ
Auth0 は、アイデンティティおよびアクセス管理 (IAM) のプロバイダーです。では、これはどういう意味でしょうか。アイデンティティとアクセス管理 (IAM) の概要 を読んだことがあれば、IAM ソリューションが、Web アプリケーションや API などを通じて顧客に提供するリソースを保護するゲートキーパーであることをご存じでしょう。このゲートキーパーは、 で定義されているとおりに認可を開始します。さらに、 Connect レイヤーが加わることで、ユーザーの と製品を保護するための認証が追加されます。 Auth0 のアイデンティティプラットフォームは、さまざまなアプリケーションタイプとフレームワークをサポートしています。アプリケーションが従来型の Web アプリ、モバイルアプリ、またはマシンツーマシンアプリのいずれであっても、Auth0 はそれぞれに対して最も安全な認可グラント、つまりワークフローの設定を提供します。認可グラントの詳細と、アプリケーションに適したものの選び方については、Which OAuth 2.0 Flow Should I Use? を参照してください。 安全なプロトコルをサポートするだけでなく、Auth0 のアイデンティティプラットフォームでは、ビジネス、技術基盤、顧客層に合わせてログインサービスをカスタマイズできます。 を使用すると、顧客の認証と認可を行う独自の Auth0 インスタンスを作成できます。ログイン動作の設定、ユーザーデータストアの接続、ユーザーの管理、認可グラントの選択、認証要素の確立を行うことで、シームレスでスケーラブルかつ優れたユーザー体験を備えた製品を実現できます。

はじめに

アイデンティティの基礎

IAM の専門家でなくても Auth0 をアプリケーションや API に統合できますが、いくつかの重要な概念を理解しておくと、ユースケースに適した構成を選択できます。詳しくは、アイデンティティとアクセス管理 (IAM) の概要 を参照してください。実装計画についてまだ疑問がある場合は、実際のシナリオを順を追って説明した アーキテクチャ シナリオ セクションを確認してください。

Auth0 と統合する

Auth0 との統合を開始するには、初期設定や基本的な構成をすばやく行えるインタラクティブなクイックスタートガイドを利用するか、Auth0 Dashboard でアプリケーションを手動で登録します。Dashboard では、Auth0 インスタンスであるテナントを一から作成できます。SDK を使用する場合は、Auth0 が各アプリケーションタイプ向けに複数の選択肢を提供しています。提供されている内容をすべて確認するには、Auth0 Librariesにアクセスしてください。 構成は、Dashboard のテナント設定にある一般的な項目から始められます。たとえば、ユーザーに表示する名前、会社のロゴ、コールバック 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 などのソーシャル、法的、またはエンタープライズ を使用することもできます。新しいユーザーは、設定した接続を使ってサインアップできます。 ログインフォームとユーザーストアへの接続を用意したら、ユーザーがアプリケーションにログインする際にバックグラウンドで動作するプロトコルを設定できます。最も一般的なプロトコルは、アイデンティティの基礎 の記事で紹介している OAuth 2.0 および OpenID Connect (OIDC) の仕様に関連しています。 ログイン時に情報を安全に送信するもう1つの仕組みとして、トークンがあります。 である Auth0 の Authentication API から発行されるトークンは、エンティティ間で情報を伝達します。  ユーザーがログインしてアクセスが承認されると、Authentication API は、セッションの作成に使用している認証グラントに応じて、、またはその両方を送信します。アクセストークンには、要求元がアプリケーション内で持つスコープ、つまり権限に関する情報が含まれます。一方、IDトークンには、ユーザー体験を向上させるためのユーザーメタデータなど、要求元に関する情報が含まれます。 Authentication API からのトークンは、次の構造を持つ (JWT) です。
  • 署名を含むヘッダー
  • 要求元に関する記述と属性を含むペイロード
  • トークンが有効であることを検証する署名
トークンの詳細については、Access TokensID Tokens、または JSON Web Tokens を参照してください。 (Security Assertion Markup Language) や (Web Service Federation) などのその他のプロトコルは、より特定のシステムで使用されます。SAML は一部の IDプロバイダーで使用され、WS-Fed は Microsoft 製品で使用されます。詳しくは、ドキュメントの Protocols セクションを参照してください。

ユーザーの管理

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

カスタマイズ

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

セキュリティ

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

デプロイと監視

Auth0 インスタンスのテストが完了し、デプロイの準備が整ったら、パブリッククラウドまたはプライベートクラウドのオプションを利用できます。利用可能なオプションの詳細については、デプロイオプションを参照してください。マルチテナント対応環境が必要な場合は、AWS 上の Private Cloudも参照してください。 デプロイを計画どおりに進められるよう、デプロイ前の推奨事項、デプロイチェックリスト、ベストプラクティス、よくある問題への対処方法、その他のヒントを提供し、できるだけスムーズにデプロイできるよう支援しています。 ユーザー向けの本番環境を整えたら、エラー追跡とアラートを活用して監視できます。System Center Operations Manager を使用して監視でき、イベントログを分析ツールにエクスポートすれば、傾向、ユーザー行動、問題に関する分析情報を得ることができます。