Windows Azure Mobile Servicesでアクセス制限を行いたいときには、いくつかの認証方法があります。
その1つはサーバーサイドで認証を行う方法で、Microsoftアカウント、Facebook、Google、Twitterなどを認証機構として利用できます。
例えば、Facebookを認証機構として使う場合は次のようにします。
Facebookにアプリを登録
Facebookに開発者登録を行い、アプリ登録を行います。
Windows Azrue Mobile Services側でFacebook認証を行うのならば、「ウェブサイト」として登録してMobile Servicesに作成したサービスのURLを登録します。
FacebookアプリをMobile Servicesに登録
Facebookにアプリを登録するとアプリケーションIDとアプリのシークレットキーが生成されますので、これをMobile Servicesに登録します。
カスタムAPIにアクセス制限をかける
アクセス制限をかけたいカスタムAPIのメソッドに対して「認証されたユーザーのみ」を設定します。
この設定によりFacebook認証を行わずにGETしようとすると次のようなエラーが発生します。
認証を通してアクセス制限がかかったカスタムAPIメソッドを実行する
Windows Azrue Mobile Services側でFacebook認証を行うためには、Mobile Services SDKを使ってクライアント側で次のコードを実行します。
await mobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
このコードを実行すると自動的にFacebookのログイン画面がSDKにより表示されます。
FacebookのIDとパスワードを入れて[ログイン]をクリックして成功すれば、アクセス制限のかかったカスタムAPIにアクセスできます。