2017-02-20 7 views
0

私は、Azureのモバイルアプリケーションサービス用に2つのスロットを用意しています。また、私はこのモバイルサービスで動作するクライアントアプリケーションを持っています。プロダクションスロットでホストされているアプリケーションのバージョンには認証が含まれていません。開発用スロットでホストされているアプリケーションのバージョンには認証があり、正常に動作します。したがって、私のクライアントアプリケーションは、認証トークンとアクセス保護されたAPIを取得し、開発用スロットでホストされているサービスで動作します。このスロットを交換すると、クライアントアプリケーションは引き続き認証トークンを取得できますが、保護されたAPIにはアクセスできません。取得したトークンを使用してAPIを呼び出そうとすると、エラー401が不正になりました。認証:両方のスロットは同一に構成されてdocsスロット交換後にAzureのjwtトークンが動作しない

で説明したように

私は、カスタム認証を使用してい要求が認証されていない場合に取るために、アクションを有効:無効:匿名の要求、認証プロバイダを可能にします。私が理解できる限り、これらのスロットの唯一の違いはURLです。サービスのURLが変更されたときに無効なトークンが生成されるように見えます。

これはこの現象の原因になりますか?

答えて

0

トークン作成プロセスに関係するパラメータの1つがホスト名です。私のコードでは、ホスト名の値はMobileAppSettingsから提供されました。問題は、スロットスワップ後にMobileAppSettingsが開発スロットのホスト名の値を返すため、生成されたトークンが無効であることです。サービスの再起動はこの動作を修正します。

0

Azure認証とスロットスワップを使用する際には、いくつかの点を考慮する必要があります。まず、Azureチームがホスト名の問題を修正したので、すべてのスロットのホスト名が同じになります(各スロットの環境設定で確認できます)。 1つのスロットで生成されたトークンは、他のすべてのスロットで完全に有効になりました。

トークンが生成されると、各スロットのハードドライブ上のフォルダに格納され、そのフォルダは特定のスロットに固定されません。これは、プロダクションスロットにトークンを使用していて、プロダクションスロットとステージングスロットを交換するクライアントユーザがいる場合、そのクライアントのトークンはもう使用できなくなります(プロダクションスロットにあったトークン参照がステージングスロットにあるため) 。

これはアプリで問題になる場合もあります。ユーザーが頻繁にログインする必要がある場合は、余分なログインが必要であることに気づかないかもしれません。しかし、(ソーシャルネットワーキングサイトのように)永続的なトークンを持っていると、頭痛の種になる可能性があります。

関連する問題