标签: azure-api-apps

使用AAD对Azure API App进行身份验证时出现401错误

我有一个API应用程序,它已经与网关主机一起正常工作,现在网关主机已被弃用我正在尝试遵循迁移指南.我使用2.8.1 SDK重新部署了我的服务,可以使用AAD或Microsoft帐户使用浏览器登录服务,并使用Swagger测试服务.但是,我正在尝试让客户端使用ClientId和Secret访问该服务.代码能够从AAD获取访问令牌,但每当我尝试访问其中一个服务资源时,我总是会收到401错误.

当我调试服务时,我在日志中看到以下内容:

Microsoft.Azure.AppService.Authentication Verbose: 0 : Received request: GET https://[myService].azurewebsites.net/api/[myResource]
Microsoft.Azure.AppService.Authentication Warning: 0 : JWT validation failed: IDX10214: Audience validation failed. Audiences: 'https://[myService].azurewebsites.net/'. Did not match:  validationParameters.ValidAudience: '[AAD ClientId]' or validationParameters.ValidAudiences: 'http://[myService].azurewebsites.net'.
Microsoft.Azure.AppService.Authentication Information: 0 : Sending response: 401.71 Unauthorized
The thread 0x3b00 has exited with code 0 (0x0).
Run Code Online (Sandbox Code Playgroud)

似乎问题是提供请求的受众是https,但validParameters.ValidAudiences集合仅包含http.

我看不到配置Audience的任何方式,并且在Visual Studio 2015创建App Service时似乎正在设置基于http的受众.有没有办法手动编辑ValidAudience集合?

作为参考,我的客户代码是:

    private static void Main(string[] args)
    {
        string app_id_url = "https://[myService].azurewebsites.net/";
        string authority = "https://login.windows.net/[myDirectory].onmicrosoft.com/";
        string clientId = "[AAD ClientId]";
        string clientSecret = …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-active-directory adal azure-api-apps

6
推荐指数
1
解决办法
6348
查看次数

如何查看Azure API应用程序的swagger ui

我正在Visual Studio 2015上创建一个Azure API应用程序.当我点击浏览并重定向到http://localhost:3012/如果我添加swagger到网址没有任何反应:http://localhost:3012/swagger

似乎我需要添加/docs/v1一个完整的地址:http://localhost:3012/swagger/docs/v1.当我添加/ swagger加载swagger页面时,不应该像自动URL路由一样.此外,我只能查看json架构,如果我浏览到UI http://localhost:3012/swagger/ui页面没有加载.

API应用程序构建成功.有什么遗失?

c# azure swagger azure-web-sites azure-api-apps

6
推荐指数
2
解决办法
4498
查看次数

如何远程桌面到 Azure 应用程序?

我创建了一个Azure API App. 然后我需要运行一些命令行来在该环境上进行测试。在 Azure 经典中,我可以通过远程桌面来Cloud services运行一些命令行,但现在Azure App看来我无法做到这一点。

任何的想法?

azure azure-cloud-services azure-api-apps

6
推荐指数
2
解决办法
7476
查看次数

Azure API App如何为Mobile和Web使用单个托管api

这个问题与以下问题有关,但不是同一个问题

如何集成Azure Mobile App win Azure API应用程序

如何结合azure AppServices API,移动和Web应用程序

我一直在尝试设置一个API,用于我的移动应用程序(Xamarin)和Web应用程序(Angular或ASP.NET MVC).我想使用"Azure App Service".据我所知,Azure应用服务有三件事

  1. 网络应用
  2. 移动应用
  3. API应用程序

我想选择"API APPS",因为我想使用我现有的ASP.Net Web Api,并希望将Api暴露给swagger.此外,我想与移动应用程序以及Web应用程序共享此API.

基于文档"API APPS"可以被移动和Web客户端使用.Web客户端是可以的但我需要使用Azure移动功能(例如单一身份验证,通知,与Sql lite的离线同步等)来简化操作移动应用.

根据上述问题和文档的答案,我可以将移动应用程序后端程序包安装到ASP.Web API并将其作为"Mobile APPS"托管.所以我可以使用与移动相关的所有功能.

  1. 我的问题是如果我安装移动后端,我可以使用相同的Web前端API吗?因为我将其托管为"移动APPS"服务而不是"API APPS"服务.

  2. 如何与移动客户端(具有移动后端功能)和Web客户端共享单个API主机?

  3. 是否可以安装Mobile后端软件包并将API作为"API APPS"托管,然后在Xamarin应用程序中使用Mobile SDK,在Web APP中使用HTTP客户端或其他客户端来使用相同的API?

azure asp.net-web-api xamarin azure-mobile-services azure-api-apps

6
推荐指数
1
解决办法
1002
查看次数

如何将Angular 6与.NET Core 2.0 Web API应用程序一起部署到Microsoft Azure?

如何将Angular 6与.NET Core 2.0 Web API应用程序一起部署到Microsoft Azure?

我创建了ASP.NET Core 2.0 Web API(服务器端应用程序)应用程序,并在其中创建了Angular 6.0应用程序(客户端应用程序).这两个应用程序都在本地环境中成功构建并运行(数据库 - MongoDB:mLab服务器).

现在,我想在一个Web应用程序服务(客户端应用程序和服务器应用程序(Web API)将提供服务)中将带有.net核心Web API应用程序的角度应用程序部署到Azure环境.

但是,我在Azure环境中部署了一个角度应用程序(客户端),但没有使用.net.

azure azure-api-apps azure-app-service-plans asp.net-core-2.0 angular

6
推荐指数
1
解决办法
1625
查看次数

带有 REST API 的 Azure Devops 203 非权威信息

在此处输入图片说明

为 Azure DevOps 调用 REST API 时出现错误203 Non-Authoritative Information。实际上,我想在 REST API 的帮助下触发发布流水线。

azure azure-api-apps azure-devops azure-devops-rest-api

6
推荐指数
2
解决办法
4559
查看次数

增加 Azure Api 应用程序中的最大请求长度

我创建了一个 Azure Api 应用程序,将用它来上传文件。这些文件将> 4mb,因此需要增加最大请求长度。我已将以下内容添加到 Web.config:

 <system.web>
    <httpRuntime executionTimeout="7200" targetFramework="4.5" maxRequestLength="2097152" />
  </system.web>
Run Code Online (Sandbox Code Playgroud)

我还补充道:

<system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2097152000" />
      </requestFiltering>
    </security>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到例外Maximum request length exceeded.。我错过了什么吗?我还有什么可以尝试的吗?

谢谢!

c# api file-upload azure azure-api-apps

5
推荐指数
1
解决办法
3249
查看次数

Azure 最佳实践中的 API 安全

我正在开发一个 Web API,它将被同一 Azure 主机中的其他 Web 应用程序以及其他 3rd 方服务/应用程序调用。我目前正在研究 API 应用程序和 API 管理,但在安全实施方面我有几件事不清楚:

  1. API App 使用 API 管理实现时是否需要认证?如果是,有哪些选择?此链接http://www.kefalidis.me/2015/06/taking-advantage-of-api-management-for-api-apps/提到“请记住,没有必要对 API 应用程序进行身份验证,因为您可以在 API 管理上启用身份验证并让它处理所有细节。” 那么这意味着让 API App 身份验证公开匿名吗?但是知道API App的直接URL的人可以直接访问它。
  2. 实现 API 管理安全性的最佳方法是什么?教程中提到的(在标头中传递了原始订阅密钥)似乎容易受到中间人攻击
  3. API App 与普通 Web API 项目相比,增加了哪些优势?

提前致谢。

api azure asp.net-web-api azure-api-management azure-api-apps

5
推荐指数
1
解决办法
2469
查看次数

Azure API App客户端未生成枚举

我在WebApi服务中使用Swashbuckle生成的招摇.它在类型等方面看起来都很好......但是当我使用Azure API App客户端生成代理类时,它缺少enum声明.当我仔细检查它是在swagger,但在结果类中只有一个字符串表示他们(字符串属性而不是枚举属性)和没有枚举类型的声明.

c# swagger asp.net-web-api2 swashbuckle azure-api-apps

5
推荐指数
1
解决办法
936
查看次数

我应该使用 API 密钥的授权标头吗

我们将通过 Azure API 管理公开自定义构建的 API (.NET)。我们希望尽可能遵守众所周知的标准,因此我们不会让 API 消费者感到惊讶。API 通过用户从 APIM 开发者门户生成的 API 密钥来保护。

我的理解是 Authorization 标头应该用于身份验证和授权目的。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization

但奇怪的是,API-Key 并未包含在身份验证方案中。

https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml#authschemes

API 使用者是否应该使用授权标头进行身份验证?

例如Authorization: API-Key xxx-xxx

或者自定义标头。

例如my-key:xxx-xxx

api rest authorization azure-api-management azure-api-apps

5
推荐指数
1
解决办法
1094
查看次数