我有一个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
我创建了一个天蓝色的移动应用程序,即将设置Easy Table.我已经按照每个步骤创建了一个连接字符串,指向在移动应用程序之前创建的SQL数据库.但是当我初始化app以使用Easy Table时,我收到的错误消息是:"缺少SQL Server连接字符串".但我之前已经添加了一个连接字符串.
关于如何配置给定Azure App Service实例的身份验证属性的教程很多:
有用于配置Azure服务器端属性的指南:
我相信所有这些都在位于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
我有一个在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
我是移动开发的新手.因为我熟悉c#.net所以我正在使用xamarin插件visual studio.我已经创建了一个示例app,我已经使用过SQLite,创建了一个DB然后执行了CRUD操作.在这一点上,一切都很好.但我已经有了local DB,我想用它.为此我已经做了一个offline Azure api使用swagger和Release我已经保存文件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
我正在开发一种由天蓝色的存储队列触发的天蓝色的功能。对于HTTPTrigger,我们可以在本地调试,但是无法找到在本地调试QueueTrigger的方法。谁能告诉我如何使用QUEUETRIGGER调试本地框运行功能。我在本地机器上有一个存储浏览器,但它写在azure云存储帐户上。
azure azure-deployment azure-debugger azure-api-apps azure-functions
在创建新的ASP.NET Web应用程序以开发我的API并在Azure中托管它时,我有两个选择:
我可以创建一个Web API APP并将其托管在Azure API APP中吗?那么它们存在的主要原因是什么?
我创建了一个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) Azure API 管理如何帮助我管理不同版本的 API 并将所选操作从旧版本的 API 重新路由到新版本的 API?
我已经设置了 Azure API 管理服务并在自定义域上进行了配置。在 Azure 门户中 API 管理服务的配置部分下,我设置了以下内容:

因为这是一个客户端系统,所以我必须屏蔽细节,但这里是基础知识:
因为我将 Type 设置为 Custom,所以我需要输入 API ENDPOINT 和 DEV PORTAL。
当我进入发布门户并设置 API 时,我得到以下信息:

我需要能够运行一个开发者门户,但有 2 个不同的 API 服务器(1-沙盒,2-生产),但它们将有不同的子域(api-sandbox.example.com 和 api.example.com)
这可能吗?为什么 API 设置会使用我在 API 管理配置中输入的内容覆盖 Web 服务 URL/URL 后缀?