OpenID Connectサインイン
エンドユーザーは、すでに他で持っているアカウントでサインインできます。OpenID Connectのディスカバリードキュメントを公開しているIDプロバイダーであればどれでも使え、Fóirがそのプロバイダーとのやり取りを実行します。
用意するもの
プロバイダーは、コンソール、CLI、または設定ファイルで追加します。サインインには、プロバイダーのディスカバリーURL、クライアントID、リダイレクトURIが必要で、3つのうち1つでも欠けていると拒否されます。クライアントシークレットは任意で、要求されるスコープは既定でopenid emailです。
Fóirは名前付きプロバイダーのカタログを持ちません。追加した各プロバイダーには、キー、表示名、ボタンの並び順を決める優先度があります。
Fóirが行うこと
Fóirはプロバイダーのディスカバリードキュメントを読み取り、PKCEのペアとstate値を生成して、プロバイダーの認可URLを返します。ユーザーが戻ると、コードを交換し、IDトークンを検証して、メールアドレスとプロバイダーの安定したサブジェクト識別子を読み取ります。
アカウントとの照合
再訪のユーザーはサブジェクト識別子で照合されるため、プロバイダー側でメールアドレスが変わっても同じアカウントに解決されます。未知のメールアドレスでの初回サインインでは、パスワードなしのアカウントが作成されます。ただし、プロジェクトのサインアップモードと、プランのアクティブユーザー数の上限に従います。
メールアドレスが既存のアカウントと一致する場合、プロバイダーが紐付けられるのは、そのアカウントにパスワードがなく、プロバイダーがメールアドレスを確認済みの場合だけです。それ以外の場合、サインインは拒否され、既存の方法でサインインするようユーザーに伝えるメッセージが表示されます。
ボタンが表示される場所
有効な各プロバイダーのボタンは、ホスト型サインインページに表示されます。独自のインターフェースでは、authProvidersクエリで一覧を取得し、2つのミューテーションでサインインを開始・完了します。返されるトークンは、他のすべての方法と同じです。
プロバイダーを非表示にする、またはオフにする
サインインアプリは、自分用にプロバイダーを非表示にできます。プロジェクト全体でオフにすると、次のリリースで反映されます。すぐに反映するにはfoir push --publishを使います。
詳細を読む
サインインのガイドで、コンソールとCLIからのプロバイダーの追加と、独自のインターフェースでプロバイダーサインインを行うAPI呼び出しを説明しています。