我的Azure AD租户需要多少个应用注册

时间:2017-06-21 14:07:57

标签: azure-web-sites azure-active-directory azure-api-apps

enter image description here

图形几乎讲述了这个故事。这是所有单一租户,fwiw。

我有我的Web API,正在被" swagger" UI(实际上是一种spa)从同一个位置提供,以及一个MVC应用程序,它有一些传统的MVC控制器与Web API交互,以及一些直接与web api交互的SPA体验。

根据我的阅读内容,除了我的AD租户中的应用程序注册的Web API(为了支持RBAC而在其中声明了其中显示的角色),我还需要为swagger UI提供单独的应用程序注册,该UI被授予访问Web API的权限。

我不确定我的MVC应用程序是否需要1个AD租户注册,或2个注册(1个用于MVC,1个用于从MVC提供的SPA)

主要问题..

  1. 我的MVC / SPA应该共享相同的AD注册,还是应该分开?

  2. 我的Web API注册清单是否需要"oauth2AllowImplicitFlow": true,或者只有swagger和SPA应用注册'明显需要吗?

  3. 我的MVC based on this github sample for SPAs目前正在使用这个中间件:app.UseWindowsAzureActiveDirectoryBearerAuthentication ..但是如果我的MVC要在其剃须刀或其中使用它来做选择性的事情' s contoller逻辑,我是否也应该使用这些添加中间件UseCookieAuthenticationUseOpenIdConnectAuthentication as shown in this non-SPA web app sample

1 个答案:

答案 0 :(得分:1)

  1. 您可以使用相同的应用程序(获取访问令牌服务器端并为其提供呈现的页面),但您可能遇到一些无法使用该令牌获取令牌的事情转到下一个应用程序(WebAPI)。它确实意味着可能会额外访问Azure AD,但我有SPA就是它自己的应用程序。
  2. 只有Swagger和SPA注册需要"oauth2AllowImplicitFlow": true
  3. 你的MVC应用使用bearer auth中间件 - 它应该使用普通的OpenIdConnect。此设置中唯一应该使用bearer auth的应用程序是您的WebAPI应用程序。
  4. 还有一些补充说明:从MVC应用程序提供的SPA。当您调用WebAPI应用程序时,您需要确保在调用中包含持有者身份验证令牌,您可以使用ADAL-JS之类的内容。如果/当您正在调用MVC应用程序时,将不会使用任何不记名令牌,您通常会使用cookie + openid身份验证。