如何使用Azure AD和OWIN配置应用程序和WebApi

时间:2019-06-28 07:13:56

标签: azure-active-directory owin adal owin-middleware

我们的项目中包含以下sceanrio:

enter image description here

  1. MainWebApp1是位于https://test.com/mainwebapp1的MVC WebApplication
  2. WebApp2是位于https://test.com/webapp2的MVC WebApplication
  3. WebApp3是位于https://test.com/webapp3的MVC + Angular5 WebApplication
  4. WebApp4是位于https://test.com/webapp4的Angular5 WebApplication
  5. WebAPI2,WebApi3,WebApi4都是托管在https://test.com/WebAPI2上的WebAPI https://test.com/WebAPI3https://test.com/WebAPI4

用户登录到配置有Azure AD(TenantId:T1,ClientId:C1)的MainWebApp1。登录MainWebApp1后,MVC视图将显示Web应用程序WebApp2,WebApp3,WebApp4的链接。

  1. 由于Web应用程序WebApp2 / WebApp3 / WebApp4与 在功能和技术上彼此相同,但在同一租户下, 一旦用户再次提示用户登录到Azure AD 单击任何WebApp2 / WebApp3 / WebApp4 。如果是的话,那很好吗 使用不同的Azure AD配置这些应用程序的想法 ClientId(相同的TenantId)
  2. 用户登录到WebApp2后,我们将获得一个包含声明的令牌 TenantId,ClientId,UserId
  3. 要获取数据,WebApp2通过将标头中的令牌(在上述步骤2中接收到)作为身份验证:承载{{Token}}来调用WebApi2。因此,在WebApi2上,如果我们实现OWIN authentication pipeline,则可以在Startup.cs中指定TenantId和ClientId,然后使用API​​ Controller中的[Authorize]属性来验证令牌中是否引用了相同的ClientId。
[Authorize]
public class TodoListController : ApiController
{

但是在这种情况下,外部客户端或其他Web应用程序(例如WebApp3 / 4)也可以访问WebApi2。因此,我们如何配置WebApi2,以便可以通过传递适当的令牌从WebApp2 / WebApp3 / WebApp4或外部客户端调用它。

我们应该实施哪种AzureAD ADAL技术?令牌的授予类型应该是什么?

在Azure门户上是否需要进行其他设置?

0 个答案:

没有答案