TL;DR
- Auth0は認証と認可にOAuth 2.0とのオープン標準をサポートしています(「使用するプロトコル」を参照)
- OIDCがいくつかの異なる認可フローをサポートする中で、Webアプリケーションに最適なのは認可コードフローです(「認証フロー」を参照)
- アプリケーションはAuth0ではアプリケーションとして扱われます(「アプリケーション」を参照)
- IDプロバイダーはAuth0では接続として扱われます( 「接続」を参照)
- Auth0はLockウィジェットを提供して、ユーザーがアプリケーションにログインできるようにしています(「ユーザーのログイン」を参照してください)
- Webアプリケーションは、ユーザーのログインを継続して追跡するために、セッションの状態を管理する必要があります。この他にも、Auth0とIDプロバイダーはセッション情報を管理しています(「セッションの管理」を参照してください)。
- それとは反対に、ユーザーをログアウトさせることにも、3つのレイヤーでセッションを管理することが関与しています(「ユーザーのログアウト」を参照してください)。
- アクセス制御はAuth0認可拡張機能を使って管理することができます(「アクセス制御」を参照してください)。
通常のWebアプリとは、主にサーバー側、ページの
GET
、POST
、状態を維持するためのクッキーを使用するアプリを指します。他方、Web SPA(シングルページアプリ)は、クライアント側のJavaScriptコードによるAPIの呼び出しに大きく依存します。前提条件
ExampleCoは、コンサルティングを行うスタートアップ企業です。現在、従業員は約100名で、いくつかの業務を社外の請負業者に外注しています。従業員のほとんどは企業のメインオフィスで勤務するものの、リモートで勤務するチームも一部存在します。加えて、一部の従業員は頻繁に顧客の実地へと赴き、モバイルデバイスで作業します。 従業員と請負業者は、毎週スプレッドシートのタイムシートに記入する必要があります。現状のシステムは非効率的で、同社はより優れておりかつより自動化されたソリューションへの移行が必要だと判断しました。 同社は複数の利用可能なタイムシートアプリケーションを比較し、現時点では非常にシンプルなアプリケーションを求めていたため、内製ソリューションを独自に作成するのがよりコスト効率が高いとの結論に至りました。アプリは、開発者がすでに利用しているテクノロジーであり、1週間程度で準備を整えられるため、ASP.NET Coreを用いて構築されます。目標と要件
ExampleCoは、簡易的に運用を開始し、従業員からのフィードバックを集めながら構築していけるよう、新しいソリューションを素早く立ち上げることを希望しています。 アプリケーションは、ログインしているユーザーにのみが利用できるものである必要があります。各ユーザーにはロールが設けられ、このロールに基づき、特定の操作を実行でき、特定のデータを閲覧できるようにします。認証と認可
ExampleCo社はユーザーをそれぞれ__認証__および__認可__したいと考えています。認証はIDに関連しており、ユーザーが主張する身元が実際に彼ら自身であることを検証することです。認可は、ユーザーがどのリソースにアクセスできるかと、それらのリソースをどのように使用できるかを決定することに関するものです。- ユーザーロールでは、日付、勤務内容、勤務時間を指定してタイムシートに入力できます。管理者ロールも、これと同じ権限を持ちます。
- ユーザーロールでは、自分自身のタイムシートの入力内容にのみアクセスできるようにします。
-
管理者ロールでは、これに加え次のことを可能にします:
- 他ユーザーのタイムシートの入力内容を承認または却下する。
- 勤務内容のドロップダウンリストの値を編集できる(追加、編集、削除)。
