さまざまな理由から、私はAngular JSアプリケーションをレンダリングするためにサーバーテクノロジ、この場合はASP.Netを使用する必要があります。したがって、ユーザーが索引ページを要求すると、要求はASP.Netパイプラインを通過し、アプリケーションのスクリプトやビューなどを提供します。レスポンスヘッダーのAngular JSアプリにベアラトークンを渡すことはできますか?
さまざまなWeb APIサービスを呼び出すことができるように、アプリケーションにベアラトークンを取得する必要があります。
レスポンスヘッダーのベアラトークンをユーザーのブラウザに渡すことはセキュリティの観点から許容されますか?その後、Angular JSアプリケーションが起動すると、ヘッダーから値を読み取り、それを後続のAPI要求のためにローカルストレージに格納します。彼は/彼女が認証されていないところ
ユーザフロー...
- ユーザーはmembers.domain.comに行きます。
- OAuthプロバイダにリダイレクトされたユーザー。
- ユーザーはプロバイダで認証されます。
- その後、ユーザーはmembers.domain.comにリダイレクトされます。ユーザーは認証され、クッキーがあります。
- 最初のアプリケーションページは、MVCパイプラインを通じてレンダリングされます。クレームは調査され、UIはユーザーのクレーム(例:ロール= "募集者"など)ごとにメニューオプションなどで表示されます。
これは、ユーザーのブラウザに表示される初期アプリケーションを取得し、メニューオプションはユーザーの主張に基づいて作成されます。
欠けている部分は、ブラウザにさまざまなAPIを呼び出すために使用できるベアラトークンを取得することです。
感謝。 CookieをHTTPSに設定すると、Angular Appからアクセスできますか?私が使用しているアイデンティティ・フレームワーク(私が現在理解しているように)は、ベアラ・トークンがヘッダーに渡されてAPIサービスにアクセスすることを期待しています。 – Remotec
ああ、特定の認証フレームワークを使用していて、HTTP認証ヘッダーにトークンを必要としているのであれば、あなたが提案していることをする以外に選択肢はありません。多くの認証フレームワークでは、認証方法を選択することができます.HTTP AuthorizationヘッダーかCookieのどちらかで、Cookieはセキュリティで保護されたサイトIMOのはるかに優れたオプションです。また、httpsのみのCookieを使用することで、暗号化されたSSL接続を介してのみCookieを設定できることを意味します。角度アプリは通常のように自動的にCookieを送信します。 – rdegges
サービスを呼び出すフローは、REQUESTベースのベアラトークンを使用します。私の質問は、そのトークンを最初にAngularアプリに入れる方法です。私はこのために暗黙のフローを使用することができますが、私はどこに私のアプリが必要な要件があります。 ASP.Netを通じてレンダリングされるので、サーバー側の技術がトークンをブラウザに取り込む方法が必要です。したがって、アプリケーションを送信する最初のRESPONSEからのヘッダーを考慮してください。ブラウザに送信します。 – Remotec