aspnetcore2.0 azure web app部署启用组织认证
aspnetcore2.0 azure web app deployment enable organizational authentication
我正在使用 VS1017 将 Web 应用程序从 VS2015 中的 aspnetcore1.0 迁移到 aspnetcore2.0。
我正在使用 Azure Active Directory 和 jwt 持有者身份验证来保护同一项目中 angularjs 客户端使用的其余端点
在我的机器上调试时一切正常,但是当我将它部署到 Azure 时,我在发出请求时收到此错误
Value cannot be null. Parameter name: clientSecret
在 azure 门户中使用 kudu 查看一下,没有 azuread 设置的环境变量,也没有 netcore1.0 案例中用于客户端机密的环境变量。在 VS2015 中,我在发布应用程序时得到了复选框 'Enable organizational authentication',但在 VS2017 中并非如此,我猜测这与在部署过程中创建的 env 变量有关。
我的问题是从 VS2017 使用这种类型的身份验证将 aspnetcoreapp2.0 部署到 azure 时的最佳做法是什么,以及如何在生产环境中管理 aad auth 的应用程序设置和客户端机密?
aspnetcore2.0 VS1017项目中使用的库:
"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 部署时缺少这些
在 Asp.net Core 1.0 中,当开发启用组织身份验证的 Web 应用程序时,Visual Studio 将在 appsettings.json
中创建 Azure AD 配置
"Authentication": {
"AzureAd": {
"AADInstance": "https://login.microsoftonline.com/",
"CallbackPath": "/signin-oidc",
"ClientId": "xxxxxxxxxxxxxxxxxxx",
"Domain": "testnanyu.onmicrosoft.com",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
},
然后,如果覆盖 Azure 应用服务中的嵌套键(通过环境变量),您可以使用完整路径 Authentication:AzureAd:ClientId
作为名称定义一个变量。
但在 Asp.net Core 2.0 中,Visual Studio 将创建 Azure AD 配置,例如:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "testnanyu.onmicrosoft.com",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"ClientId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"CallbackPath": "/signin-oidc"
},
结构已更改。因此,如果覆盖 Azure App Services 中的嵌套键(通过环境变量),您可以在门户中定义一个变量,例如 AzureAd:ClientId
。使用 kudu ,它将 APPSETTING_AzureAd:ClientId
显示为环境变量 .
我正在使用 VS1017 将 Web 应用程序从 VS2015 中的 aspnetcore1.0 迁移到 aspnetcore2.0。
我正在使用 Azure Active Directory 和 jwt 持有者身份验证来保护同一项目中 angularjs 客户端使用的其余端点
在我的机器上调试时一切正常,但是当我将它部署到 Azure 时,我在发出请求时收到此错误
Value cannot be null. Parameter name: clientSecret
在 azure 门户中使用 kudu 查看一下,没有 azuread 设置的环境变量,也没有 netcore1.0 案例中用于客户端机密的环境变量。在 VS2015 中,我在发布应用程序时得到了复选框 'Enable organizational authentication',但在 VS2017 中并非如此,我猜测这与在部署过程中创建的 env 变量有关。
我的问题是从 VS2017 使用这种类型的身份验证将 aspnetcoreapp2.0 部署到 azure 时的最佳做法是什么,以及如何在生产环境中管理 aad auth 的应用程序设置和客户端机密?
aspnetcore2.0 VS1017项目中使用的库:
"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 部署时缺少这些
在 Asp.net Core 1.0 中,当开发启用组织身份验证的 Web 应用程序时,Visual Studio 将在 appsettings.json
"Authentication": {
"AzureAd": {
"AADInstance": "https://login.microsoftonline.com/",
"CallbackPath": "/signin-oidc",
"ClientId": "xxxxxxxxxxxxxxxxxxx",
"Domain": "testnanyu.onmicrosoft.com",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
},
然后,如果覆盖 Azure 应用服务中的嵌套键(通过环境变量),您可以使用完整路径 Authentication:AzureAd:ClientId
作为名称定义一个变量。
但在 Asp.net Core 2.0 中,Visual Studio 将创建 Azure AD 配置,例如:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "testnanyu.onmicrosoft.com",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"ClientId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"CallbackPath": "/signin-oidc"
},
结构已更改。因此,如果覆盖 Azure App Services 中的嵌套键(通过环境变量),您可以在门户中定义一个变量,例如 AzureAd:ClientId
。使用 kudu ,它将 APPSETTING_AzureAd:ClientId
显示为环境变量 .