在开发环境中获取AzureADD访问令牌

时间:2018-04-30 10:09:20

标签: azure asp.net-core azure-active-directory

在Azure中托管的AzureAD经过身份验证的应用中,我会像这样

在api控制器中获取访问令牌
        public override void OnActionExecuting(ActionExecutingContext context)
    {
        base.OnActionExecuting(context);
        _client.DefaultRequestHeaders.Accept.Clear();

        var tokenHeader = Request.Headers["X-MS-TOKEN-ADD-ACCESS-TOKEN"];
        _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenHeader );
    }

由于Azure AD应用服务会注入令牌,因此只有在Azure中托管时才能使用。

如何让它在我的开发环境中运行?这当然会产生例外。

我遵循本教程: https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-auth-aad#enable-authentication-and-authorization-for-back-end-app

后端和前端都使用AzureAD身份验证进行保护。 前端应用程序已将权限设置为门户网站AzureAD部分中的后端应用程序。 在代码中,appsettings.json中没有配置任何内容。

1 个答案:

答案 0 :(得分:0)

根据您的描述,您正在使用Easy Auth进行网络应用服务。您知道,Easy auth适用于Azure Web App服务,它由Azure管理。因此,我担心您无法通过本地计算机对您的应用程序使用Easy Auth身份验证。

有关针对Azure Web App服务的Easy Auth的更多详细信息,您可以参考this documentation

  

如果您在开发系统上本地运行应用程序,请轻松   Auth将无法使用,您将无法访问令牌,   您在申请中可能需要的等等。为了调试那些   您的应用程序的功能,您将需要部署到Azure Web   应用。另一种方法是进行登录和身份验证   应用程序代码中的工作流程,但后来你不再   利用Easy Auth。

但是,有一种方法可以使用Easy Auth。Here is a blog进行.NET Core Web App的本地调试,该方法介绍了一种方法。此博客可能有助于您的方案进行思考。