はじめに
Usherは、IDプロバイダーです。アプリへのサインインを担い、ユーザーのアカウントを安全に保ち、そのユーザーが誰なのかをアプリに伝えます。これらすべてをOpenID ConnectとOAuth 2.1で行うため、お使いのライブラリがそのまま使えます。
Usherの役割
アッシャー(案内係)は、入口で2つの仕事をします。チケットを確かめることと、席までご案内することです。Usherも、アプリのために同じ2つの仕事をします。
- 認証:ユーザーは、UsherがホストするサインインページであるLobbyで、パスキー、メールで届くコード、マジックリンク、ソーシャルアカウント、パスワードのいずれかを使って、本人であることを証明します。
- 認可:アプリは、ユーザーが誰で、何の共有に同意したかを示すトークンを受け取ります。APIはそのトークンを検証できます。
構成要素
| 要素 | 内容 |
|---|---|
| Lobby | ホスト型のサインインページ。行き先のアプリ名を必ず表示します。 |
| Usherアカウント | 一人ひとりが持つもの。メールアドレス、パスキー、2段階認証、サインイン中のデバイス。 |
| Usher Console | プロジェクトと環境を作成し、アプリケーションを登録し、ユーザーを管理する場所。 |
| SDKとコンポーネント | @usher/nextjsと、<SignIn />、<UserButton />。SDKとともに提供予定です。 |
アプリへの組み込み方
作成する環境は、それぞれが独立したOpenID Connectの発行者(issuer)で、専用のアドレスを持ちます。
発行者
https://<handle>.usherid.comアプリはサインインのためにユーザーをその発行者へ送り、コードを持って戻ってきたユーザーを受け取って、そのコードをトークンと交換します。これはPKCEを使う標準の認可コードフローで、その各ステップは発行者のディスカバリドキュメントに記述されています。
ディスカバリドキュメント
https://<handle>.usherid.com/.well-known/openid-configuration