小编Mur*_*oft的帖子

使用仅限云的Azure Active Directory的SQL Azure集成身份验证失败

我创建了一个Azure租户并配置了以下内容:

Azure广告:

  • 一个简单的自定义域名(少于15个字符).DNS验证等一切都很好.
  • 用户和管理员组
  • 两个组中的用户
  • VNET,DNS和IP地址
  • 启用设备管理
  • 启用域服务并连接到VNET

请注意,没有任何内部部署,这一切都在云端.我的实体笔记本电脑实际上只是用作跳箱​​.

SQL Azure数据库和服务器:

  • 防火墙规则为所有必要的传入连接打开
  • Active Directory管理员设置为我在Azure AD中创建的管理员组
  • AD用户都使用CREATE USER FROM EXTERNAL PROVIDER在SQL Azure中创建;

我可以使用Active Directory通用身份验证或Active Directory密码身份验证从笔记本电脑上的SSMS连接到SQL Azure数据库.对于这两种情况,我都会因为预期的用户名和密码而受到质疑.

目标: 我希望能够使用集成身份验证,以便可以从a)机器,b)ASP.NET MVC站点无缝地传输身份.我没有尝试过场景b是的,所以让我们停下来吧.对于方案a,我已经完成了以下操作.

配置Azure VM:

  • 标准D2 - Windows 10完全修补
  • 连接到与域相同的VNET
  • 安装SQL Server Management Server 2016(SSMS)(最新和修补 - 13.0.15700.28)
  • 安装了ODBC 13.1(虽然我认为这不相关)
  • ADAL
  • 面向IT专业人员RTW的Microsoft Online Services登录助手

简而言之,我的完整"环境"包括Azure AD,SQL Azure DB和客户端VM.

问题: 我使用目录服务将VM加入我的Azure Active Directory,注销并以有效域用户身份登录(在AD和SQL Azure中有效,具有适当的登录和权限).当我打开SSMS时,我可以很好地连接Active Directory通用身份验证或Active Directory密码身份验证,但是当我尝试连接Active Directory身份验证安全性时,我收到以下错误.如果我将VM直接加入Azure AD,也会发生这种情况.我的部署是100%云,因此没有联邦.

所以我有两个问题:

  • 我在配置或方法中遗漏了什么或是否有解决方法?这可能是一个现有的问题 - 见这里
  • 如果使用C#在.net 4.6.2中编码并部署在云中,这种连接(通过)是否有效?可能与ODBC 13.1驱动程序?

谢谢

===================================

无法连接到.database.windows.net.

===================================

无法在Active Directory中验证用户NT Authority\Anonymous Logon(Authentication = ActiveDirectoryIntegrated).错误代码0xCAA9001F; state …

authentication federated-identity azure-active-directory azure-sql-database

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

DocumentDB/CosmosDB - 系统中不存在具有指定标识的实体

我试图从我的asp.net网站连接documentdb但我收到此错误.

系统中不存在具有指定标识的实体

DocumentClientException:系统中不存在具有指定标识的实体

代码如下后面的aspx代码

protected async void Page_Load(object sender, EventArgs e)
{
    Response.Write("Page Load<br/>");
    await GetData();
}

public async Task GetData()
{
    try
    {
        Response.Write("<br/> Get Data function Start<br/><br/>");
        using (var client = new DocumentClient(new Uri(ConfigurationManager.AppSettings["endpoint"]), ConfigurationManager.AppSettings["authKey"]))
        {
            //await client.OpenAsync();
            RequestOptions reqOpt = new RequestOptions { PartitionKey = new PartitionKey(209) };
            var parameters = new dynamic[] { 1 };
            StoredProcedureResponse<object> result = await client.ExecuteStoredProcedureAsync<object>(
                UriFactory.CreateStoredProcedureUri(ConfigurationManager.AppSettings["database"], ConfigurationManager.AppSettings["pcsd"], "GetMemberbyId"), reqOpt, parameters);
            Response.Write(result.Response.ToString());
        }
        Response.Write("<br/><br/> Get Data function End");
    }
    catch (Exception ex) …
Run Code Online (Sandbox Code Playgroud)

azure nosql azure-cosmosdb

5
推荐指数
2
解决办法
5355
查看次数

VSTS Build和PowerShell和AzureAD身份验证

我有一个VSTS项目,该项目通过服务主体通过Azure资源管理器终结点连接到Azure订阅。对于通过模板化,参数驱动的部署配置ARM资源的我的构建而言,这工作得很好。

作为构建的一部分,我还有其他要求设置Azure AD组。我有一个可以在本地计算机上正常运行的脚本。当我通过构建将其部署并在托管构建控制器上执行时,脚本最初无法找到AzureAD模块。我通过将脚本包含在git Repo中并通过以下方式对其进行访问来解决此问题:

$adModulePath = $PSScriptRoot + "\PsModules\AzureAD\2.0.0.131\AzureAD.psd1"
Import-Module $adModulePath 
Run Code Online (Sandbox Code Playgroud)

但是,现在在运行时还有另一个问题New-AzureADGroup。该脚本需要Connect-AzureAD在发出命令之前运行。通过对凭证进行硬编码可以很好地实现此目的,但是我不想这样做,我希望它在创建的SPN的上下文中运行,该SPN在托管的构建控制器上运行脚本。

因此,问题是,是否可以获取Azure PowerShell执行SPN的当前上下文并将其传递,Connect-AzureAD以避免将凭据存储为纯文本?我错过了一个把戏吗?还有其他选择吗?

我当前的代码如下,注释的连接在命令中可以像硬编码值一样正常工作。没有参数的调用将显示登录UI,该UI终止构建,因为它显然不是交互式的。

## Login to Azure
#$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
#$AdminCredential = New-Object System.Management.Automation.PSCredential ($AdminUserEmailAddress, $SecurePassword)
#Connect-AzureAD -Credential $AdminCredential

Connect-AzureAD

Write-Output "------------------ Start: Group Creation ------------------"

$TestForAdminGroup = Get-AzureADGroup -SearchString $AdminGroup
$TestForContributorGroup = Get-AzureADGroup -SearchString $ContributorGroup
$TestForReaderGroup = Get-AzureADGroup -SearchString $ReaderGroup
Run Code Online (Sandbox Code Playgroud)

谢谢

powershell build azure-active-directory azure-devops

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

KeyVault ARM 模板在重新部署时会覆盖机密

我有一个 ARM 模板,它部署资源组并包含密钥保管库和机密。这是通过 CI/CD 部署的,除了一个例外之外,一切都运行良好。

如果我第一次部署模板,一切都会按预期进行。但是,如果通过添加新值来手动更改机密,则下次部署模板时,模板中的机密将覆盖手动更新并设置新版本。如何使模板仅在第一次部署机密。即仅在每个秘密已经存在时才部署它?

在下面的示例中,我通过 CI/CD 部署模板并MagicKey设置为defaultKey. 如果我更改MagicKey为门户中的真实密钥,然后再次部署 ARM 模板,我的手动输入将被替换为包含defaultKey该值的新版本的密钥。如果没有笨拙的解决方法,我怎样才能阻止这种情况发生?

    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "name": "MagicKey",
      "apiVersion": "2018-02-14",
      "properties": {
        "value": "defaultKey"
      },
      "dependsOn": [
        "[concat('Microsoft.KeyVault/vaults/', variables('keyVaultName'))]"
      ]
    },
Run Code Online (Sandbox Code Playgroud)

continuous-deployment azure-resource-manager azure-keyvault

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

在此期间发送了太多数据,并已在 Application Insights 中删除

使用 Application Insight 进行日志记录时,我收到以下跟踪消息“在此期间发送了太多数据,为了调试器响应而将其删除”。

我真的很想看到所有数据(总共 22 个日志条目,其中大约显示 8 个,其余的被删除)

关于如何配置这个有什么想法吗?

azure azure-application-insights

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

我需要将 NaN 替换为 dax power bi 中操作失败的空格

表格如图所示:

在此输入图像描述

我需要将 NaN 保留为空,但是当我使用 IFERROR() 并将空白() 放入 ValueifError 中时,它只会删除我不想要的整行。有没有办法用空格替换 NaN

我使用了下面的 dax: oscarwins = SUM(Films[OscarWins])/SUM(Films[OscarNominations])

dax powerbi

5
推荐指数
2
解决办法
1万
查看次数

找不到工作职能。尝试公开您的工作类别和方法

首先,我查看了具有相同错误消息的其他SO帖子,但似乎没有一个可以解决我的问题。我尝试了许多排列和选项。我的函数构建良好,但无法在CLI中运行,我收到以下神秘错误。MSFT文档似乎也没有答案。

找不到工作职能。尝试公开您的工作类别和方法。如果您正在使用绑定扩展(例如ServiceBus,Timer等),请确保已在启动代码(例如config.UseServiceBus(),config.UseTimers()等)中调用了扩展的注册方法。 )。

我正在尝试运行计时器作业,然后将消息集合写入事件中心。我想念什么?我已经为此战斗了好几个小时。

功能:

    [FunctionName("CreateData")]
    public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
        [EventHub("murraytest", Connection = "evingest")] IAsyncCollector<string> myeventhub,
        TraceWriter log)
    {
        await myeventhub.AddAsync("data1");
        await myeventhub.AddAsync("data2");
        await myeventhub.AddAsync("data3");

        log.Info($"COMPLETED: {DateTime.Now}");
    }
Run Code Online (Sandbox Code Playgroud)

local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "Eventhub": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "",
    "evingest": "Endpoint=sb://example.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=LtcqBLT5VWjg0dGMdIvxCcEGs8902010Y6y14iGg="

  }
}
Run Code Online (Sandbox Code Playgroud)

配套

努吉特

function.json-缺少任何eventhub绑定!

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 */5 * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "name": "myTimer"
    }
  ],
  "disabled": …
Run Code Online (Sandbox Code Playgroud)

c# azure-webjobs azure-webjobssdk azure-functions azure-functions-runtime

4
推荐指数
7
解决办法
8721
查看次数

如何通过 REST API 更新 jenkins 凭据?

我发现这可以使用 REST API 调用在 Jenkins 中创建凭据,如何使用 REST API 调用更新具有给定 ID 的凭据?

curl -X POST 'http://jenkins:8080/credentials/store/system/domain/_/createCredentials' --data-urlencode 'json={  
  "": "0",
  "credentials": {
    "scope": "GLOBAL",
    "id": "apicredentials",
    "username": "apicredentials",
    "password": "P@$$W0rd",
    "description": "apicredentials",
    "stapler-class": "com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl"
  }
}'
Run Code Online (Sandbox Code Playgroud)

rest curl credentials jenkins

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

资源组删除后虚拟网络连接不删除

我们有一个资源组,其中包括 ADLS V2 和一个 VNET(ADLS 通过服务连接连接到该组)。

整个资源组已被删除,但与 Azure 存储的虚拟网络连接似乎仍在以某种方式挂起,并阻止重新部署相同的资源组。收到的错误是:

需要删除状态为 NetworkSourceDeleted 的子网

知道如何解决吗?

在此处输入图片说明

azure azure-virtual-network

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

Swagger UI使用点表示法显示asp.net webapi参数名称

我为我的asp.net webapi配置了Swagger,类似于下面显示的一个

[HttpGet]
[Route("search")]
public async Task<HttpResponseMessage> Get([FromUri]SearchCriteria searchCriteria)
Run Code Online (Sandbox Code Playgroud)

当我看到webapi的swagger文档时,参数显示为

searchCriteria.sortField searchCriteria.sortDirection等等...作为sortField,sortDirection是SearchCriteria的属性

在此输入图像描述

如何在没有object.propertyname格式的情况下获取参数名称?

任何人都可以帮忙解决这个问题吗?谢谢

c# swagger swagger-ui asp.net-web-api2 swashbuckle

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

Azure SQL数据库和EXECUTE AS USER - C#连接池

我有一个Azure SQL数据库和一些使用它的C#业务应用程序.我一直在努力减少攻击面并更好地理解性能.

在SQL Azure包含的数据库中,我有:
1)一个SQL身份验证用户,其登录名为"ReaderUser",具有固定的长而疯狂的密码.
2)在数据库中创建的用户无需登录使用:CREATE USER [] WITHOUT LOGIN
3)包含数据的表,由USER和行级别安全保护.ReaderUser无法访问任何数据,它只是一个"代理"用户.
4)ReaderUser可以模拟任何其他非管理用户("无需登录"创建的品种).数据只能由它们中的任何一个读取.

当用户访问我们开发的应用程序时,数据库连接是使用ReaderUser进行的.应用程序使用.Net 4.6.2 ADO.net连接.连接字符串已加密并已修复.即它对于任何用户都没有改变,它们都使用相同的连接字符串.

当应用程序用户登录时,登录的应用程序标识(Active Directory UPN)随后将传递到数据库以使用以下方法设置正确的用户上下文:

EXECUTE AS USER = 'myuser@mydomain.com' WITH NO REVERT;
Run Code Online (Sandbox Code Playgroud)

然后,用户访问应用程序并仅查看其数据,受行级别安全性的限制.

我的问题是,如何汇集联系?它们是按用户还是按ReaderUser登录(连接字符串)汇集?用户可以使用相同的连接字符串同时从多个应用程序连接.我已经浏览了几篇文章,但我无法对这个具体情况做出明确的解释.任何人都能解释一下吗?

c# sql-server ado.net database-connection azure-sql-database

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

来自 IOS/iPad/IPhone 的 Azure 点到站点 VPN 连接

是否可以从 IOS 设备连接到 Azure 点到站点 VPN?(是的,我知道它不受支持)。但是,我看到它建议可以使用 SSTP,但找不到具体的例子。

任何人都可以阐明这是否确实可能 - 或者提出替代方案?

iphone azure ipad ios azure-virtual-network

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