gpt4 book ai didi

azure - aspnetcore2.0 azure web应用程序部署启用组织身份验证

转载 作者:行者123 更新时间:2023-12-03 03:04:14 26 4
gpt4 key购买 nike

我正在使用 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 情况下那样的客户端 secret 的环境变量。在 VS2015 中,我在发布应用程序时获得了“启用组织身份验证”复选框,但在 VS2017 中情况并非如此,我猜测这与在 Azure 部署过程中创建的环境变量有关。

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

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环境变量:

enter image description here

从 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 应用服务中的嵌套键(通过环境变量),您可以在门户中定义一个变量,如 AzureAd:ClientId 。使用 kudu ,它显示 APPSETTING_AzureAd:ClientId 作为环境变量。

关于azure - aspnetcore2.0 azure web应用程序部署启用组织身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46041966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com