图形几乎讲述了这个故事。这是所有单一租户,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)
主要问题..
我的MVC / SPA应该共享相同的AD注册,还是应该分开?
我的Web API注册清单是否需要"oauth2AllowImplicitFlow": true
,或者只有swagger和SPA应用注册'明显需要吗?
我的MVC based on this github sample for SPAs目前正在使用这个中间件:app.UseWindowsAzureActiveDirectoryBearerAuthentication
..但是如果我的MVC要在其剃须刀或其中使用它来做选择性的事情' s contoller逻辑,我是否也应该使用这些添加中间件UseCookieAuthentication
和UseOpenIdConnectAuthentication
as shown in this non-SPA web app sample
答案 0 :(得分:1)
"oauth2AllowImplicitFlow": true
。还有一些补充说明:从MVC应用程序提供的SPA。当您调用WebAPI应用程序时,您需要确保在调用中包含持有者身份验证令牌,您可以使用ADAL-JS之类的内容。如果/当您正在调用MVC应用程序时,将不会使用任何不记名令牌,您通常会使用cookie + openid身份验证。