はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

Windows Azure Mobile ServicesでカスタムAPIにアクセス制限をかける。

Windows Azure Mobile Servicesでアクセス制限を行いたいときには、いくつかの認証方法があります。

その1つはサーバーサイドで認証を行う方法で、Microsoftアカウント、FacebookGoogleTwitterなどを認証機構として利用できます。

例えば、Facebookを認証機構として使う場合は次のようにします。

Facebookにアプリを登録

image

Facebookに開発者登録を行い、アプリ登録を行います。

Windows Azrue Mobile Services側でFacebook認証を行うのならば、「ウェブサイト」として登録してMobile Servicesに作成したサービスのURLを登録します。

FacebookアプリをMobile Servicesに登録

Facebookにアプリを登録するとアプリケーションIDとアプリのシークレットキーが生成されますので、これをMobile Servicesに登録します。

image

カスタムAPIにアクセス制限をかける

image

アクセス制限をかけたいカスタムAPIのメソッドに対して「認証されたユーザーのみ」を設定します。

 

この設定によりFacebook認証を行わずにGETしようとすると次のようなエラーが発生します。

image

 

認証を通してアクセス制限がかかったカスタムAPIメソッドを実行する

Windows Azrue Mobile Services側でFacebook認証を行うためには、Mobile Services SDKを使ってクライアント側で次のコードを実行します。

await mobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook);

 

このコードを実行すると自動的Facebookのログイン画面がSDKにより表示されます。

image

 

FacebookのIDとパスワードを入れて[ログイン]をクリックして成功すれば、アクセス制限のかかったカスタムAPIにアクセスできます。