2017-06-21 19 views
0

enter image description here私のAzure ADテナントにはいくつのアプリ登録が必要ですか

グラフィックはかなり物語っています。これはすべてシングルテナントです。

私はWeb APIを持っています。これは、同じ場所から提供されている「スワッガー」UI(本当に一種のスパ)によってアクセスされています。また、従来のMVCコントローラーが相互作用しているMVCアプリWeb APIに加えて、Web APIと直接対話するSPAエクスペリエンスもあります。

ADテナント(RBACをサポートするためにマニフェストに宣言されているロールを持っています)にアプリ登録しているWeb APIに加えて、私も別のアプリ登録が必要ですWeb APIにアクセスするためのアクセス権が付与されたスワッガーUI用です。私のMVCアプリが1件のADテナントの登録、または2件の登録(MVCのための1、1 SPAは、MVCからアップ提供のために)

主な質問を...必要とする場合

は私はわからないんだ

  1. 私のMVC/SPAは同じAD登録を共有すべきですか、それとも分離する必要がありますか?

  2. 私のWeb API登録のマニフェストは"oauth2AllowImplicitFlow": trueである必要がありますか、またはスワッガーとSPAアプリの登録のみで必要ですか?

  3. 私のMVC、based on this github sample for SPAsは、現在、このミドルウエア使用しています:app.UseWindowsAzureActiveDirectoryBearerAuthentication ..しかし、私のMVCはそれに選択的に物事を行うために起こっている場合、私はまた、これらのError追加ミドルウェアを使用する必要があり、カミソリですか、それはcontollerロジックだとUseCookieAuthenticationUseOpenIdConnectAuthenticationas shown in this non-SPA web app sample

答えて

1
  1. あなたは、おそらくそれは、同じアプリケーション(アクセストークンサーバー側を取得し、レンダリングされたページでそれを供給)で動作させることができますが、あなたはできませんいくつかのことに遭遇するかもしれませんそのトークンを使用して次のアプリ(WebAPIのもの)に行くトークンを取得します。それはAzure ADへの余分な潜在的な旅行を意味しますが、私はSPAがそれ自身のアプリであると思います。
  2. SwaggerとSPAの登録には"oauth2AllowImplicitFlow": trueが必要です。
  3. MVCアプリケーションはでなければなりません。はベアラ認証ミドルウェアを使用する必要があります。通常のOpenIdConnectを使用する必要があります。ベアラ認証を使用する必要があるこの設定の唯一のアプリはWebAPIです。

もう1つの注意点は、MVCアプリから提供されたSPAです。 WebAPIアプリケーションに電話をかけているときは、ベアラ認証トークンがコールに含まれていることを確認する必要があります。これはADAL-JSのようなものを使用して取得します。 MVCアプリケーションを呼び出しているときは、ベアラトークンは使用されません。通常、cookie + openid認証になります。

+0

[OK]を、それは私のためにいくつかのものをクリアします。サンプルは1つまたは複数のものを示していますが、私は達成しようとしている完全な画像をパッケージ化するものをまだ見つけていません。私は今のところあなたに投票し、それがすべて働いた後に受け入れます;-) – bkwdesign

+0

ジョナサン、fwiw、[ここに私が欠けていたもの](https://stackoverflow.com/a/44835112/1520850) SPAがCORS対応Web APIへのクロスドメインコールを行う – bkwdesign

関連する問題