标签: azure-api-apps

无法从Azure AD获取承载令牌以与API App一起使用

我有一个MVC应用程序需要访问Azure中受Azure AD身份验证保护的私有API应用程序.因此,我需要获取Azure AD不记名令牌,将其转移到Zumo-Auth令牌中并使用它来访问API应用程序.

我正在阅读本教程,一切正常,直到我需要请求令牌authContext.这是代码的片段:

var authContext = new AuthenticationContext(
    "https://login.microsoftonline.com/MyADDomain.onmicrosoft.com");

ClientCredential credential = new ClientCredential(
    "04472E33-2638-FAKE-GUID-F826AF4928DB", 
    "OMYAPIKEY1x3BLAHEMMEHEHEHEHEeYSOMETHINGRc=");

// Get the AAD token.
var appIdUri = 
    "https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad";

//var appIdUri = "https://MyADDomain.onmicrosoft.com/MyAppName";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/";
//var appIdUri = "https://graph.windows.net";

AuthenticationResult result = 
    authContext.AcquireToken(appIdUri, credential); // <-- can't get the token from AD

// downhill from here
var aadToken = new JObject();
aadToken["access_token"] = result.AccessToken;
var appServiceClient = new AppServiceClient(
    "https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/");

// Send the AAD token …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-active-directory azure-api-apps azure-ad-graph-api

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

Azure简易表连接字符串丢失

我创建了一个天蓝色的移动应用程序,即将设置Easy Table.我已经按照每个步骤创建了一个连接字符串,指向在移动应用程序之前创建的SQL数据库.但是当我初始化app以使用Easy Table时,我收到的错误消息是:"缺少SQL Server连接字符串".但我之前已经添加了一个连接字符串.

azure azure-mobile-services azure-api-apps

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

您如何在本地对Azure App Services进行身份验证?

关于如何配置给定Azure App Service实例的身份验证属性的教程很多:

Api应用

扩展应用程序服务认证/授权

有用于配置Azure服务器端属性的指南:

AAD

脸书

推特

谷歌

微软帐户

我相信所有这些都在位于Azure应用服务组件前面的服务器端网关上设置属性。这种方法很好,因为您只需将用户的浏览器定向到〜/ .auth / login / XYZ即可启动登录流程。

但是,我无法弄清楚在开发时如何通过本地主机在PC上本地运行MVC应用程序和API应用程序来对这些方法进行身份验证。我没有在本地运行的网关。没有端点在监听localhost / .auth / login / XYZ。

那么,这是什么故事呢?您如何在那认证?具体来说,您如何发展,以便将需要在本地进行的任何操作都发布到Web和Api Apps,并在Azure的App Service生态系统中进行身份验证经验的工作?

azure azure-web-sites azure-mobile-services azure-api-apps azure-web-app-service

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

天蓝色应用服务(移动)上的Db上下文失败

我有一个在Azure App Service上运行的控制器 - Mobile.跟踪显示以下代码运行正常,直到db.SaveChanges()失败.

var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("Create User");
using (BCMobileAppContext db = new BCMobileAppContext())
{
     string Username_NoSpaces = username.Username.Replace(" ", "");
     var user = db.Users.FirstOrDefault(u => u.Username_NoSpaces == Username_NoSpaces || u.MicrosoftToken == this.User.Identity.Name);
     telemetry.TrackTrace("1");
     if (user == null && !Username_NoSpaces.Contains(","))
     {
          telemetry.TrackTrace("2");
           DateTime now = DateTime.UtcNow;
           telemetry.TrackTrace("3");
           string username_noSpaces = username.Username.Replace(" ", "");
           DataObjects.User userItem = new DataObjects.User() { Created = now, UserId = this.User.Identity.Name, MicrosoftToken = this.User.Identity.Name, Username_NoSpaces = username_noSpaces, Update = now, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework azure-mobile-services azure-api-apps

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

Visual Studio无法在我的rest api客户端中添加swagger元数据文件

我是移动开发的新手.因为我熟悉c#.net所以我正在使用xamarin插件visual studio.我已经创建了一个示例app,我已经使用过SQLite,创建了一个DB然后执行了CRUD操作.在这一点上,一切都很好.但我已经有了local DB,我想用它.为此我已经做了一个offline Azure api使用swaggerRelease我已经保存文件locally使用File Systemin release选项VS.现在我想添加我的应用程序,rest api client并希望使用我的本地数据库.但是,当我尝试添加作为休息api客户端然后我选择select an existing swagger file所以在浏览时我找不到任何文件.供参考,请参阅下面的图片

在此输入图像描述

因此,当我点击浏览并转到我保存文件swagger的位置时,我没有得到任何信息,如下图所示

在此输入图像描述

它还找到了.json我的发布api中不存在的扩展文件.

我不知道为什么会发生这种情况,同样如上所述,我是移动开发的新手,我不知道该怎么做.请看我的轰鸣声形象swagger UI

在此输入图像描述

任何帮助将受到高度赞赏

rest xamarin.android swagger visual-studio-2015 azure-api-apps

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

如何在本地调试Azure Function QueueTrigger

我正在开发一种由天蓝色的存储队列触发的天蓝色的功能。对于HTTPTrigger,我们可以在本地调试,但是无法找到在本地调试QueueTrigger的方法。谁能告诉我如何使用QUEUETRIGGER调试本地框运行功能。我在本地机器上有一个存储浏览器,但它写在azure云存储帐户上。

azure azure-deployment azure-debugger azure-api-apps azure-functions

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

Visual Studio中Web API和Azure API APP之间的区别

在创建新的ASP.NET Web应用程序以开发我的API并在Azure中托管它时,我有两个选择:

  • Web API
  • Azure API APP

我可以创建一个Web API APP并将其托管在Azure API APP中吗?那么它们存在的主要原因是什么?

在此输入图像描述

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

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

门户网站不提供Azure API App Swagger

我创建了一个Azure API应用程序并将其部署到Azure.首先,我从门户网站获取Swagger文件没有问题(即通过单击API App刀片上的"API定义"按钮),但在某些时候它停止工作.

我已经启用了Swagger UI App_Start\SwaggerConfig.cs.当我在本地调试时,我可以导航到http:// localhost:12345/Swagger以进入Swagger UI并下载Swagger文件,一切正常.当我去门户网站时,我得到500错误,试图访问https://microsoft-apiappad6cxxxxxxxxxxxx426c23a66.azurewebsites.net:443/swagger/docs/v1.

我已经尝试删除API应用程序并重新部署它......没有运气.我已经尝试启动一个新项目并使用它创建相同的界面并将其部署到Azure ...每次都可以使用(当然).

我会在这里包含Swagger文件,以防它重要,但我不明白的是:为什么Swashbuckle会在本地工作,而不是在Azure工作?

{
"swagger": "2.0",
"info": {
    "version": "v1",
    "title": "StorefrontApi"
},
"host": "localhost:52912",
"schemes": [
    "http"
],
"paths": {
    "/api/v1/storefront/applications": {
        "get": {
            "tags": [
                "GET"
            ],
            "operationId": "Storefront_Applications",
            "consumes": [],
            "produces": [
                "application/json",
                "text/json",
                "application/xml",
                "text/xml"
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "schema": {
                        "$ref": "#/definitions/Object"
                    }
                }
            },
            "deprecated": false
        }
    },
    "/api/v1/storefront/aurorastatus": {
        "get": {
            "tags": [
                "GET"
            ],
            "operationId": "Storefront_AuroraStatus", …
Run Code Online (Sandbox Code Playgroud)

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

4
推荐指数
1
解决办法
6311
查看次数

Azure API 管理和 API 版本控制

Azure API 管理如何帮助我管理不同版本的 API 并将所选操作从旧版本的 API 重新路由到新版本的 API?

azure-api-management azure-api-apps

4
推荐指数
1
解决办法
6407
查看次数

Azure API 管理 - API 端点域与实际 API URL

我已经设置了 Azure API 管理服务并在自定义域上进行了配置。在 Azure 门户中 API 管理服务的配置部分下,我设置了以下内容: API 管理服务 - 配置

因为这是一个客户端系统,所以我必须屏蔽细节,但这里是基础知识:

  • API 端点域:api.example.com
  • 开发者门户域:apiportal.example.com
  • 两者都上传了 SSL。

因为我将 Type 设置为 Custom,所以我需要输入 API ENDPOINT 和 DEV PORTAL。

当我进入发布门户并设置 API 时,我得到以下信息: API 发布者门户 - API 设置

我需要能够运行一个开发者门户,但有 2 个不同的 API 服务器(1-沙盒,2-生产),但它们将有不同的子域(api-sandbox.example.com 和 api.example.com)

这可能吗?为什么 API 设置会使用我在 API 管理配置中输入的内容覆盖 Web 服务 URL/URL 后缀?

api azure azure-api-management azure-api-apps

4
推荐指数
1
解决办法
3372
查看次数