首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aspnetcore2.0天青web应用程序部署启用组织身份验证

aspnetcore2.0天青web应用程序部署启用组织身份验证
EN

Stack Overflow用户
提问于 2017-09-04 17:44:13
回答 1查看 254关注 0票数 1

我正在使用VS2015将一个web应用程序从VS1017的aspnetcore1.0迁移到aspnetcore2.0。

我使用azure active目录和jwt承载身份验证来保护在同一个项目中由angularjs客户端使用的rest端点

在我的机器上调试时一切正常,但是当我将它部署到azure时,我在发出请求时会得到这个错误。

值不能为空。参数名称: clientSecret

查看一下在azure门户中使用kudu的情况,并不存在azuread设置的环境变量,也没有用于客户端机密的环境变量,就像它们在netcore1.0中的情况一样。在VS2015中,我在发布应用程序时得到了“启用组织身份验证”复选框,但在VS2017中情况并非如此,我猜这与在部署过程中创建的env变量有关。

我的问题是,使用这种类型的身份验证从VS2017部署到aspnetcoreapp2.0的最佳实践是什么,以及如何在生产环境中管理auth的应用程序设置和客户端机密?

在aspnetcore2.0 VS1017项目中使用的Libs:

代码语言:javascript
复制
"Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.1.0-preview1-26771"
"Microsoft.Azure.ActiveDirectory.GraphClient" Version="2.1.1"
"Microsoft.IdentityModel.Clients.ActiveDirectory" Version="3.16.0"

aspnetcore1.0 VS105环境变量:

这些在从VS2017部署时丢失

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-05 06:49:41

在WebCore1.0中,当开发Asp.net应用程序启用组织身份验证时,Visual将在appsettings.json中创建Azure配置

代码语言:javascript
复制
  "Authentication": {
    "AzureAd": {
      "AADInstance": "https://login.microsoftonline.com/",
      "CallbackPath": "/signin-oidc",
      "ClientId": "xxxxxxxxxxxxxxxxxxx",
      "Domain": "testnanyu.onmicrosoft.com",
      "TenantId": "xxxxxxxxxxxxxxxxxxxxxxxx"
    }
  },

然后,如果覆盖Azure中的嵌套键(通过环境变量),则可以使用完整路径Authentication:AzureAd:ClientId作为名称定义变量。

但是在Asp.net Core2.0中,Visual将创建Azure配置,如:

代码语言:javascript
复制
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "testnanyu.onmicrosoft.com",
    "TenantId": "xxxxxxxxxxxxxxxxxxxxxxxxx",
    "ClientId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "CallbackPath": "/signin-oidc"
  },

结构改变了。因此,如果重写Azure中的嵌套键(通过环境变量),则可以在门户中(如AzureAd:ClientId )定义一个变量。使用kudu,它将APPSETTING_AzureAd:ClientId显示为环境变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46041966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档