小编yst*_*van的帖子

无法通过 Azure Powershell 在新应用程序注册模块中设置“preAuthorizedApplications”对象

简短场景:多租户前端 javascript (React.JS) Web 应用程序从浏览器调用多租户 ASP.NET Core 2.2 WebAPI。

验证:

  1. 当用户登录时(基于用户的原始 Azure Active Directory),前端应用程序中的 ADAL.js 负责从 AzureAD1 或 AzureAD2 或 AzureAD3...获取令牌。

  2. 用户同意前端 Web 应用程序(范围:登录并读取用户配置文件),该应用程序也委托给 WebAPI。(这意味着用户也不需要同意 WebAPI

  3. 前端Web App使用不记名令牌调用We​​bAPI来获取资源。

问题:我必须自动部署新环境。并相应地设置清单文件(这是一个SaaS解决方案)

  1. 在清单文件中,我需要公开客户端应用程序的WebAPI(https://learn.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-expose-web-apis#expose -a-new-scope-through-the-ui
  2. 设置“knownClientApplications”是不够的(由于前面描述的委托
  3. 新的 v2 终结点 ( https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-overview ) 具有新的应用程序注册功能。旧版本现在称为“Legacy”,将于 2019 年 5 月开始弃用。
  4. 在Azure门户中需要公开API并将前端WebApp添加为“授权的客户端应用程序”。

屏幕转储

此步骤将在清单文件中添加一个新对象:

"preAuthorizedApplications": [
        {
            "appId": "guid",
            "permissionIds": [
                "guid"
            ]
        }
    ],
Run Code Online (Sandbox Code Playgroud)
  1. 但仍然无法通过 PowerShell 使用!https://learn.microsoft.com/en-us/powershell/module/azuread/set-azureadapplication?view=azureps-2.0

如何使用 Azure PowerShell 将此“preAuthorizedApplications”部分添加到清单文件中?为什么门户网站上有,但PS上却没有?通常情况是相反的...

2019-08-05 根据答案更新:

我通过服务主体获取访问令牌:

$adTokenUrl = …
Run Code Online (Sandbox Code Playgroud)

azure azure-powershell azure-active-directory adal.js

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

与BotFramework和LUIS的JSON序列化程序错误

StackOverflow社区!

我有一个聊天机器人,并集成了LUIS.ai,使其更加智能.其中一个对话即将预约与主管(教师)一切都工作正常,字面上相同的代码.几个小时前,我遇到了一些奇怪的错误.

 Exception: Type 'Newtonsoft.Json.Linq.JArray' in Assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' is not marked as serializable.
Run Code Online (Sandbox Code Playgroud)

如何重现错误?

如果用户的输入中缺少实体(教师和日期),则它工作正常,机器人构建表单,询问缺少的输入并显示建议的会议时间.

如果其中一个实体从输入中遗漏了它,它将构建一个表格并询问缺少的日期或教师实体,并显示建议的会议时间.

如果用户的输入同时包含实体:教师和日期,那么我收到错误.

这是我的WebApiConfig类:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Json settings
            config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Formatting = Newtonsoft.Json.Formatting.Indented,
                NullValueHandling = NullValueHandling.Ignore,
            };

            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}", …
Run Code Online (Sandbox Code Playgroud)

c# json botframework azure-language-understanding

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