2016-08-19 6 views
0

私の理解:Azure Appサービスでは、Azure Portalで「Always On」の設定を行うことで、基本的に「眠りにつかない」ようにサービスを設定できます。Azure Appサービストークンがサービス終了後に失われる

これはサービスへの変更が簡単なものですが、使用していないときにサービスが継続的に実行されるのを避け、サービスをホストする毎月の費用を押し上げようとしています。

私のジレンマはAzure App Serviceが動作していることです。これはXamarin Formsアプリケーションを認証しています。ログインの過程で、クライアントにOAuthトークンを返します。このトークンは、15日間で有効期限が切れるように設定されています。

Azureサービスの実行中はすべて正常に動作しますが、Azureサービスが「スリープ状態になる」と再度ログインする必要があります。これにより、サービスによって発行されたトークンが失われたと考えられます眠っている。

私の質問は、「眠りに落ちる」前にAzure Table Storage(または何か)に現在のトークンを保存しておき、サービスが「起きる」と同じストレージから引き出す方法ですか?

私は、以下の質問を見つけたが、ベアラトークンを永続化する方法の明確な理解を得ることができませんでした: How are bearer tokens stored server-side in Web API 2?

私は聞かせて、これを行う方法の明確な表示でハイとローの検索されていますこれが可能であれば、単独で

ご協力いただければ幸いです。

+0

これを明確にするために、カスタム認証メカニズムを構築してクライアントにアクセストークンを提供し、クライアントがこのトークンを活用してサービス中のAPIにアクセスしますか?そして今、あなたはテーブルストレージにトークンを保存しますか? –

+0

こんにちはゲイリー - はい、特定のユーザーではなく、すべての有効な(期限切れではない)トークンです。例として(従来のasp.net Webサイトを使用)、global.asaxを使用してApplication_Start/Application_Stopで特定のアクティビティを実行できます。私はAppサービスがスリープする前にトークンを永続させたいが(要求なし)、それが起きると、永続化されたトークンをロードして、次のものを必要としないようにしたい。 - ユーザーにログインを強制するモバイルアプリ - Azure Appサービスを「常にオン」に設定しない Azure Table Storageを使用するよりも良いアプローチがあると思わない限り、 – XxtappsxX

答えて

1

答えがHow are bearer tokens stored server-side in Web API 2?であることがわかります。通常、クライアント側にアクセストークンを格納します。あなたは、クライアント、ローカルストレージ、sqlite、さらにはファイルのどこにでもそれを保存することができます。ちょうど確認するために、あなたのアプリケーションはアクセストークンを取り戻すことができます。

アプリケーションがHTTP要求を保護されたサーバーに送信すると、Authorizationヘッダーにアクセストークンが設定されます。

サーバーがHTTP要求を受け取ると、トークンを確認してユーザーを認証します。

関連する問題