标签: azure-api-apps

使用Azure AD OAuth身份验证从Azure Scheduler调用API应用程序时"未授权"

我有一个API应用程序,我已使用Azure Active Directory身份验证进行保护.我希望使用Azure Scheduler调用此API App的操作.我在调度程序操作中输入了租户ID,客户端ID和秘密.

当我安排或完成工作时,我得到:

Http Action - Response from host 'xxxx.azurewebsites.net': 'Unauthorized'
Run Code Online (Sandbox Code Playgroud)

诊断应用程序日志给了我:

JWT validation failed: IDX10214: Audience validation failed. Audiences:
'https://management.core.windows.net/'. Did not match:
validationParameters.ValidAudience: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' or    
validationParameters.ValidAudiences: 'https://xxxx.azurewebsites.net'.
Run Code Online (Sandbox Code Playgroud)

oauth azure-active-directory azure-scheduler azure-api-apps

3
推荐指数
1
解决办法
1244
查看次数

无法使用承载令牌访问AAD安全Web API

我有一个使用Azure AD(AAD)保护的API应用程序.我还有一个消费应用程序的AAD应用程序,在消费应用程序中,我已经设置了访问API应用程序的权限.

我能够获得一个令牌,但是当我去使用令牌时,API应用程序似乎没有查看Authorization标头.它试图通过网络浏览器登录我.

我的请求看起来像这样:

    GET /api/ticketing/issueTopics HTTP/1.1
    Host: <removed>
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc<rest is removed>
    Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)

这就是我的小提琴手的样子.

我在Postman中得到的结果是一些MS重定向页面:

<html>
<head>
    <title>Working...</title>
</head>
<body>
    <form method="POST" name="hiddenform" action="<removed>/.auth/login/aad/callback">
        <input type="hidden" name="id_token" value="<bearer token removed>" />
        <input type="hidden" name="state" value="/api/ticketing/issueTopics" />
        <input type="hidden" name="session_state" value="<removed>" />
        <noscript>
            <p>Script is disabled. Click Submit to continue.</p>
            <input type="submit" value="Submit" />
        </noscript>
    </form>
    <script language="javascript">document.forms[0].submit();</script>
</body>
Run Code Online (Sandbox Code Playgroud)

我删除的持有者令牌,在反序列化时,其中包含我的信息,而不是我的消费应用程序.因此,它试图验证我,而不是使用持票人令牌进行身份验证.

任何想法如何解决这一问题?

更新1

通过更新的方式,我拉下来与我的消费应用程序的servicePrincipal数据,上面清清楚楚地写着消费应用程序应该能够交谈的API应用程序.

    "oauth2Permissions": [{
        "adminConsentDescription": "Allow the application to access Ticketing API on behalf of the signed-in …
Run Code Online (Sandbox Code Playgroud)

azure azure-active-directory azure-api-apps

3
推荐指数
1
解决办法
2205
查看次数

使用Microsoft Face API的Python POST请求错误"图像格式不受支持"

我正在尝试发送二进制映像文件来测试Microsoft Face API.使用POSTMAN工作得很好,我faceId按预期回来了.但是,我尝试将其转换为Python代码,它目前给我这个错误:

{"error": {"code": "InvalidImage", "message": "Decoding error, image format unsupported."}}
Run Code Online (Sandbox Code Playgroud)

我读了这篇SO帖子,但没有用.这是我发送请求的代码.我试图模仿POSTMAN正在做的事情,比如用标题标记它application/octet-stream但它不起作用.有任何想法吗?

url = "https://api.projectoxford.ai/face/v1.0/detect"

headers = {
  'ocp-apim-subscription-key': "<key>",
  'content-type': "application/octet-stream",
  'cache-control': "no-cache",
}

data = open('IMG_0670.jpg', 'rb')
files = {'IMG_0670.jpg': ('IMG_0670.jpg', data, 'application/octet-stream')}

response = requests.post(url, headers=headers, files=files)

print(response.text)
Run Code Online (Sandbox Code Playgroud)

python azure python-requests azure-api-apps microsoft-cognitive

3
推荐指数
1
解决办法
1036
查看次数

达到免费套餐下的 Azure 应用服务配额或限制后会发生什么?

我有一个在免费套餐下托管的 Azure API 应用程序。我浏览了这篇描述限制和配额的文章。https://learn.microsoft.com/en-us/azure/azure-subscription-service-limits#app-service-limits 我不确定以下情况。达到限制或配额后会发生什么?

我的 API 会开始返回 404 NOT FOUND 或任何特定消息吗?

azure azure-api-apps azure-app-service-plans azure-web-app-service

3
推荐指数
1
解决办法
8721
查看次数

Azure App Service ApiApp

我正在尝试使用PowerShell 在Azure App Service中创建API应用程序.

我调用的cmdlet默认情况下始终创建Web应用程序.如果有可能,我想知道如何指定类型/种类Api App而不是Web App

New-AzureRmWebApp -Name $name -Location $location -AppServicePlan $plan -ResourceGroupName $resourceGroup
Run Code Online (Sandbox Code Playgroud)

从我的阅读中,除了图标之外,两者之间没有太大的不同,是否值得将类型设置为"Api App",如果它是我的应用程序的全部内容?

我使用的是AzureRM PowerShell模块的5.4.0版.

> Get-Module "AzureRM"

ModuleType Version    Name                                                 
---------- -------    ----
Script     5.4.0      AzureRM
Run Code Online (Sandbox Code Playgroud)

powershell azure azure-web-sites azure-api-apps azure-web-app-service

3
推荐指数
1
解决办法
517
查看次数

如何在Python SDK API中获取cosmos查询消耗了多少请求单位

如何使用 python sdk 检查 Azure comsos DB 查询中每个请求消耗的请求单位数。

下面的代码仅打印特定 ReadItem 的响应输出,我也对查询消耗了多少请求单元感兴趣。

# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE.txt in the project root for
# license information.
# -------------------------------------------------------------------------
import azure.cosmos.cosmos_client as cosmos_client
import azure.cosmos.exceptions as exceptions
from azure.cosmos.partition_key import PartitionKey

from config import configs

HOST = configs['host']
MASTER_KEY = configs['key']
DATABASE_ID = configs['database_id']
CONTAINER_ID = configs['container_id']
client = cosmos_client.CosmosClient(HOST, {'masterKey': MASTER_KEY} )

def read_item(container, doc_id):
    id =  "9fedcb0991553b94b6e79595c9c26922b3c480940fc024fe4acd7dbad122d66b"
    pk= …
Run Code Online (Sandbox Code Playgroud)

python azure azure-api-apps azure-cosmosdb

3
推荐指数
1
解决办法
396
查看次数

Azure API应用程序支持WebJobs

有谁知道Azure API Apps是否支持WebJobs?如果可以,可以从Visual Studio 2013将它们部署到Azure?

我已经设法将一个API应用程序推送到Azure Queue和一个WebJob触发该事件,并在我的开发机器上本地运行代码(即在Azure中而不是在Azure开发模拟器上访问队列),但是不能将WebJob发布到Azure,并且Azure门户中的API App条目(即预览门户)中的设置也没有WebJobs刀片/选项

azure visual-studio-2013 azure-webjobs azure-api-apps

2
推荐指数
1
解决办法
368
查看次数

DocumentDB:是否可以删除自动生成的标签,_ Etag,_ts等?

我正在使用.NET SDK从api-app查询我的docDb,当选择我得到这些我不想得到的标签时.基本上我想知道是否可以删除自动生成的标签_Etag,_ts,_rid,_attachments等?

这背后的原因是我想将Select查询的JSON输出转换为XML,不允许使用_tags吗?如果有人有不同的方法,请告诉我!

azure azure-api-apps azure-cosmosdb

2
推荐指数
1
解决办法
424
查看次数

Azure API 身份验证

我在 C# 代码中使用 Azure API 并使用以下库:

using Microsoft.Rest; using Microsoft.Rest.Azure.Authentication;
using Microsoft.Azure.Management.DataLake.Store;
using Microsoft.Azure.Management.DataLake.StoreUploader;
using Microsoft.Azure.Management.DataLake.Analytics;
using Microsoft.Azure.Management.DataLake.Analytics.Models;
using Microsoft.WindowsAzure.Storage.Blob;
Run Code Online (Sandbox Code Playgroud)

创建与 Azure 的连接:

private static ServiceClientCredentials AuthenticateAzure(string domainName, string nativeClientAppCLIENTID)
{
    // User login via interactive popup
    SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
    // Use the client ID of an existing AAD "Native Client" application.
    var activeDirectoryClientSettings = ActiveDirectoryClientSettings.UsePromptOnly(nativeClientAppCLIENTID, new Uri("urn:ietf:wg:oauth:2.0:oob"));
    return UserTokenProvider.LoginWithPromptAsync(domainName, activeDirectoryClientSettings).Result;
}
Run Code Online (Sandbox Code Playgroud)

打电话时LoginWithPromptAsync,我收到了弹出窗口,询问我的凭据。我不希望每次运行代码时都出现此弹出窗口。除了创建 Azure 应用程序之外,还有什么办法可以提出这个问题吗?

我有一个ApplicationId, TenantId, CertificateThumbprint, 和SubscriptionId(如下)。我可以使用这些字段在没有提示的情况下对 azure 进行身份验证吗?

凭据示例

c# azure azure-management-api azure-api-apps

2
推荐指数
1
解决办法
5506
查看次数

如何在 Application Insights 中关联跨多个 Azure 服务的单个请求?

如何在 Application Insights 中关联跨多个 Azure 服务的单个请求?

假设我们使用 API 应用程序在 API 管理中公开一个“创建案例”API 端点。

API 应用程序执行一些工作,包括触发逻辑应用程序。

我如何才能看到请求在所有各种 Azure 服务中的“流程”,以提供特定案例状态的单一“视图”?

我只是说 Application Insights,因为我们在 Web 应用程序/API 应用程序中使用它,所以任何其他基于 Azure 的工具都可以

azure azure-api-management azure-application-insights azure-logic-apps azure-api-apps

2
推荐指数
1
解决办法
1490
查看次数