独自のユーザーを認証する独自のバックエンドがあり、WP8 アプリケーションは単なるクライアントであると仮定します。
まず、ユーザー資格情報とユーザー プロファイルを区別します。ユーザー資格情報は、ユーザーが誰であるかを検証するものです。たとえば、有効な認証トークンで提供されるユーザー名/パスワード、Facebook ユーザー ID などです。ユーザープロファイルは、ユーザーに関する独自のデータベースに保存するものです。
また、ユーザーの認証に使用するトークンと、Facebook がユーザーのデータへのアクセスを許可するために必要な AccessToken を区別する必要があります。
だから...あなたの質問に答えるために:
ユーザーを指定するには、自分の DB に何を保存する必要がありますか?
ユーザー データ (設定、一意のユーザー ID など)、ユーザーのログイン方法 (Facebook など)、資格情報 (Facebook のユーザー ID など) を含むレコードを作成します。これはあなたのユーザーのプロフィールです。
トークン自体を保存する必要がありますか、それともしばらくすると無効になりますか?
Facebook から「オフライン アクセス」権限が付与されている場合、Facebook AccessToken をここに保存することもできますが、それは Facebook のアクセスに使用されます...アプリ/バックエンドへのユーザー アクセスではありません。ユーザーのアクセスには、Cookie ベースの認証に似たメカニズムを使用できます。それはあなた次第です。AccessToken を一種の「Cookie」として使用できますが、有効であることを常に Facebook で確認する必要があります。
言い換えれば、一意の識別子として何を使用できますか?
Facebook の ID を一意のものとして扱うことができます(ユーザー プロファイル DB内の別のアカウントが同じ Facebook アカウントにリンクすることを許可しない限り)。
また、ユーザーが facebook などで認証し、アカウントを削除するとどうなりますか?
サイトで機能するユーザー名とパスワードの組み合わせを作成し、利便性のために Facebook ログインのみに依存するようにすることをお勧めします。いずれの場合も、Facebook でアプリ プロファイルを作成すると、Facebook は「Deauthorize Callback URL」を提供します。これは、ユーザーがアプリを非アクティブ化するか、Facebook のアカウントを削除したときに呼び出されます。この呼び出しを受け取ったら、アクセスを失わないように別の資格情報をセットアップするための認証リンクがユーザーにメールで送信されます。
ユーザーが 2 つの異なるサービス プロバイダーを使用してアプリケーションに接続することを許可しますか? もしそうなら、これら 2 つのプロバイダーを自分の DB で 1 人のユーザーにどのように結合しますか?
確かに、あなたはそれを行うことができます。Twitter アカウントも許可したいとします。ユーザー プロファイル データベースに Twitter ユーザー ID フィールドを追加する必要があります。
もう 1 つのヒントは、Visual Studio で ASP.NET MVC4 プロジェクトを作成することです。テンプレートには、OAuth ログインを使用してユーザー プロファイル データベースを設定する方法の例が含まれています。
さらに調査するための高レベルの概要が得られることを願っています。