2017-04-13 11 views
0

Azure App Servicesサービスには、多くのEasyテーブルが設定されています。私はこれらのEasy Table のデータに外部的にのデータにアクセスしています。全く別のサーバー上で動作するnode.jsアプリから取得しました。Azure Easy Tables(Azure App Servicesテーブル)へのHTTP認証

基本的なHTTP要求でフォーマットhttps://[app service name].azure-mobile.net/tables/${table-name}?${odata-query}を使用してテーブルにアクセスすることができます。また、テーブルの行の追加/変更もとpatchの要求を使用できます。私はeveryoneに権限を設定したテーブル -

しかし、私は、私は明示的には認証を必要としないように設定されているテーブルの上に上記の操作を行うことができます。明らかに、これは理想的ではありません。どのようにすれば、許可レベルがOnly authenticated usersまたはAnybody with the application keyであるかをサーバに要求できますか?私はこれらのオプションのいずれかでうまくいく、より簡単なものを使用することを好むでしょう。

答えて

0

私は自分の質問への答えを見つけた


HTTPヘッダとして​​を使用tldr。私は@ adrian-hallに私を最も満足させる答えを与えるのに十分な情報を与えていないと思うので、ここでいくつかの文脈を与えます:

私はAzureに移行する前にAzure Mobile Services App Servicesを使用していましたが、主にWindowsストアアプリのコンテキストでEasy Tablesを使用していました。最初は、私の簡単なテーブルが「アプリケーションキーで誰」に設定して、そして私のアプリでテーブルを消費するために、私はMobileServiceClient Nugetパッケージに沿って、コードのこのビットを与えられました。その後

var client = new window.WindowsAzure.MobileServiceClient(
    "https://[my service name].azure-mobile.net/", 
    "[application key]" 
); 

私はWindows App Storeではなく、http経由でアクセスしたい同じApp Service上にいくつかのテーブルを作成しましたが、認証するためにアプリケーションキーを使用する方法を理解することができませんでした。 'しかし、明らかにそれはかなり厄介です - 誰がURLとテーブル名を知っている人は、その権限レベルを持っている私のテーブルから行を読み書きし、削除することができます!

しかし、私は今何ヶ月もその状況を抱えていました。私のビジネスはハッカーやその他の人にとって興味深いターゲットではないと思います。

しかし私はとにかくセキュリティをもっと強くしたいと決めたので、というアプリケーションキーで認証して、既存のアプリケーションを変更する必要はありませんでした。

私は私のWindowsストアアプリにMobileServiceClientためNugetパッケージに周り掘り始め、MobileServiceClientオブジェクトは、それが出て行く前に、私は要求を見ることができるように、私は、コールバックを与えることができるwithFilter方法を、持っていることがわかりました。私はURLとヘッダを見て認証の詳細を見ることができるようにリクエストを見つけることができました。それは単なるヘッダであることが判明しました:"X-ZUMO-APPLICATION": '[application key]'。それを使用するだけで私にとって完璧な解決策です。今、私はすべてのテーブルを「誰でも」ではなく「アプリケーションキーを持つ人」に設定して、ちょっとしたセキュリティを確保することができます。 HTTPSヘッダーは暗号化されているので、セキュリティは十分です。

0

Easy Tablesの下には、編集できるNode.jsバックエンドがあります。このNode.jsバックエンド用のSDKは、GitHubのrepo-https://github.com/azure/azure-mobile-apps-nodeにあります。

そこには、いくつかのサンプルがあります。そのうちの1つはAPIキーですhttps://github.com/Azure/azure-mobile-apps-node/tree/master/samples/api-key

また、クライアントAPIを作成できるAzure App Service認証を実装することもできます。おそらくカスタムAPIの中でZUMOトークンを生成し、ZUMOトークンをX-ZUMO-AUTHヘッダとして渡す必要があります。これにより、Easy Tableで 'authenticated'オプションを使用できます。

これらの手法のいずれかまたは両方を使用できます。

関連する問題