Azure Mobile SerivcesやAzure Mobile Appでは認証を行っている際、サーバー側のBackendでUserのIDをもとにアクセスできるデータにフィルターをかけるなど行われると思いますが、ここで質問です。
Azure Mobile Servicesでは (User as ServiceUser).Idでとれる値をユーザーのIDとして使っていましたが、Azure Mobile AppではServiceUserがなくなりWork with the .NET backend server SDK for Azure Mobile AppsのHow to: Retrieve authenticated user informationにあるように
csharp
1// Get the SID of the current user. 2var claimsPrincipal = this.User as ClaimsPrincipal; 3string sid = claimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value; 4// Only return data rows that belong to the current user. 5return Query().Where(t => t.UserId == sid);
とClaimsPrincipalのNameIdentifierの値を使えとあります。
ここで問題なのがServiceUser.IdとNamedIdentifierの値が異なることです。
同じFacebookアカウントでもServiceUser.Idではたしかfacebook:xxxxなどとなっていたはずですが、Namedidentifierの方はsid:xxxxとなっています。
この場合Mobile ServicesからMobile Appへ移行する場合データをどのように移行すべきなのでしょうか?
MobileServicesでServiceUser.Idを使っていたのがそもそもの間違いでsid:xxxxと同一形状の識別子を何らかの方法でとれたのでしょうか?
なお実際に運用しているサービスで問題が出たのではなくテストで使っていたもので移行に悩んだための質問ですので緊急性などはないのですが、この辺の認証について疎いため正式なサービスにする際に認証情報の扱い方など参考にさせてもらいたいと思っています。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。