Fabric アプリの認証

Fabric Apps には、ユーザーのサインイン、セッションの管理、アプリが行うすべてのデータとストレージ呼び出しに ID をアタッチする組み込みの認証サービスが含まれています。 この記事では、プロジェクトの認証を構成する前に理解しておく必要がある概念について説明します。

実装の詳細については、次を参照してください。

認証モード

Fabric Apps では、2 つの認証方法がサポートされています。 使用する方法は、アプリの実行場所によって異なります。

環境 サポートされているメソッド いつ使用するか
ローカル開発 電子メールとパスワード Fabric ポータルに依存せずに、すばやく反復処理します。
Fabric にデプロイ済み Fabric SSO (Microsoft Entra ID) Fabric ワークスペースにアクセスできるすべてのユーザーの実稼働サインイン。

主な概念:

  • Fabric SSO は、既存のMicrosoft Entra ID ID を使用して、Fabric ポータルを使用してユーザーをサインインさせます。 アプリがFabricから開かれている場合にのみ機能するため、ローカル開発時には使用できません。
  • 電子メールとパスワード は、ローカル開発のみを目的としています。 デプロイ後は機能しません。
  • 初回サインイン時に、ユーザーが作成されます。 Fabric SSO では、個別のサインアップ手順はありません。ユーザーは初めてサインインすると自動的に作成されます。
  • Fabric展開には認証が必要です。 services.auth.enabledfalse に設定すると、npx rayfin upが失敗します。

セッションと ID

ユーザーがサインインすると、SDK はサインインしたユーザーを表す セッション を作成します。 セッションは不透明です。アプリは、基になるトークンを検査しないでください。 代わりに、アプリは大まかなプロパティの小さなセットを読み取ります。

  • セッションが現在認証されているかどうか。
  • ユーザーの idemail
  • rayfin.ymlで構成したカスタム要求。

ユーザーがサインインするのと同じクライアント インスタンスによって、すべてのデータとストレージ呼び出しに ID が自動的にアタッチされます。 トークンは手動で渡しません。

セッションでは変更イベントも発生するため、ユーザーがページを再読み込みせずにサインインまたはサインアウトしたときに UI が反応できるようにします。

プロジェクトで認証を有効にする

認証は rayfin/rayfin.ymlで構成されます。 次の例では、Fabric SSO (デプロイされたアプリの場合) と電子メール/パスワード サインイン (ローカル開発用) の両方を有効にします。

services:
  auth:
    enabled: true
    allowedRedirectUris:
      - http://localhost:5173
    fabric:
      enabled: true
    password:
      enabled: true  # Local development only

各設定で制御される内容:

  • services.auth.enabled – 認証サービスをオンにします。 あらゆる Fabric の展開に必要です。
  • allowedRedirectUris – サインイン後のユーザーのリダイレクト先として許可されるオリジン。 ここにローカル開発 URL を追加します。 npx rayfin up は、デプロイされたアプリの配信元を自動的に追加します。
  • fabric.enabled – Fabric SSO を有効にします。 デプロイされたアプリに必要です。
  • password.enabled – ローカル開発用の電子メールとパスワードのサインインを有効にします。

Important

Fabricデプロイでは、認証を有効にする必要があります。 npx rayfin up services.auth.enabledfalseに設定されている場合は失敗します。

rayfin.ymlを編集した後、ローカル バックエンドを再起動するか、npx rayfin up実行して変更を適用します。

カスタム要求

カスタム要求を使用すると、テナント名、機能フラグ、アプリバージョンなど、すべてのセッションにアプリケーション固有のメタデータをアタッチできます。 これらは、データ モデルを変更することなく、ロールベースのアクセス制御や機能の制限に役立ちます。

services:
  auth:
    enabled: true
    customClaims:
      tenant: default
      app_version: 1.0.0

カスタム要求はセッション オブジェクト内に表示され、データアクセス許可ルールから参照できます。

SDK が提供するもの

RayfinClientを使用すると、認証サービスはclient.authで使用できます。 概念レベルでは、次の機能が提供されます。

  • ローカル開発中に電子メールとパスワードを使用してサインアップおよびサインインします。
  • Fabric SSO によるサインインおよびサインアップ(デプロイ済みアプリ向け) 同じ呼び出しで、新規ユーザーと戻りユーザーの両方が処理されます。
  • サインアウトして現在のセッションを終了します。
  • セッションの読み取りとサブスクリプション により、UI がユーザーの認証状態と同期し続けます。

これらを実際のアプリに結び付けたコードについては、Fabric アプリの SSO 認証構成Fabricに関するページを参照してください。