2017-01-31 14 views
0

私は複数のAzureモバイルサービスインスタンスを用意する予定ですので、最初に必要なのは、認証されたユーザーのアクセストークンをさまざまなアプリケーションインスタンスで共有することです。この記事では、マシン上にローカルに保存されているトークンを共有することができず、ブロブストレージに配置することはプロダクションアプリには推奨されないと述べているhttps://cgillum.tech/2016/03/07/app-service-token-store/が見つかりました。現時点で可能な解決策は何ですか?異なるWebアプリケーションインスタンス間でAzureモバイルサービストークンを共有する方法

答えて

0

私はあなたがApp Service Token Storeについて言及したblogを読んでいます。トークンが住んでいる場所について述べたように:

を内部的には、これらすべてのトークンはDの下で、アプリケーションのローカルファイルストレージに格納されます。を/home/data/.auth/tokens。トークン自体はすべて、アプリ固有の暗号化キーを使用してユーザー固有の.jsonファイルで暗号化され、ベストプラクティスごとに暗号署名されています。

私はそれがマシン上でローカルに保存されているとして、今私たちは、トークンを共有することができないと述べて、この記事https://cgillum.tech/2016/03/07/app-service-token-store/を見つけました。 AzureのWebアプリケーションを扱うことができ永続ファイルについてAzure-runtime-environment状態として

彼らはDに根ざし:ホーム、\これはまた%のHOMEを使用して見つけることができます%環境変数。

これらのファイルは永続的なものです。これらのファイルは、変更するまではそのファイルに頼ることができます。また、サイトのすべてのインスタンス間で共有される(複数のインスタンスにスケールアップする場合)です。内部的には、これが動作する方法は、ローカルファイルシステムではなく、Azure Storageに格納されていることです。

また、Azureのアプリケーションサービスは、同じインスタンスに話しクライアント後続の要求を維持するためにARRアフィニティを可能にします。セッション・アフィニティ・クッキーを無効にすると、リクエストはすべてのインスタンスに分散されます。詳細については、blogを参照してください。

また、私はその後、私はいつもブラウザhttps://[my-website].azurewebsites.net/.auth/meは、現在ログインしているユーザーに関する情報を取得することができ、ARR親和を無効にして、複数のインスタンスに私の携帯電話サービスを拡張しようとしています。

あなたのアプリケーションに認証ミドルウェアを使用するには、自分で認証/承認を行うことができます。しかし、これにはもっと多くの作業が必要です。プラットフォームはあなたのために世話をするので、簡単な認証とトークンストアを活用し、モバイルサービスを何も心配することなく複数のインスタンスに拡張できると仮定します。

+0

ありがとうBruce、上の質問では、私は複数のインスタンスについて言及しましたが、私は、異なる地域にまたがる複数の紺碧のモバイルサービスインスタンスを意味します。アジアでは1つ、ヨーロッパでは1つ、米国ではもう1つ、Azureトラフィックマネージャを使用して最寄りのインスタンスにリクエストします。私はasia地域のサーバーを更新しています)、そのトークンはアジアのサーバーにローカルに保存されているので、リクエストがヨーロッパのサーバーに行くと要求が拒否されます – Anu

+0

最新のシナリオに基づいて、サーバーを更新するときにアクセスできる場合は、[deployment slot](https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-staged-publishing)を活用して開発環境を設定することができますプロダクションスロットとスワップする前に、ステージングデプロイメントスロットでアプリの変更を検証します。 –

+0

または、あなたのアプリケーションに認証サービスを構築し、ログインした情報(プロバイダ、アクセストークンなど)を共有ストレージ(例:[Azure Redis Cache](https://docs.microsoft.com))に保存する必要があります。/en-us/azure/redis-cache/cache-dotnet-how-to-use-azure-redis-cache))を使用すると、パフォーマンスが向上します。さらに、この[チュートリアル](https://www.asp.net/web-api/overview/security/external-authentication-services)を参照することもできます。 –

関連する問題