问题标签 [azure-service-principal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1502 浏览

azure - 使用来自 keyvault 的证书使用服务主体进行天蓝色登录

我正在遵循指南https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?toc=%2Fazure%2Fazure-resource-manager%2Ftoc。 json&view=azure-cli-latest 创建能够在 shell 脚本中使用的服务主体。

使用上述内容,我将创建的证书存储在密钥库中。

但是我不知道如何使用新的 sp..

我从文档中看到的。是 :-

但即使我从密钥库下载了证书和私钥,这也不起作用。

如何告诉登录从 keyvault 获取密钥?

澄清(更新):

如果真的没有办法使用 keyvault 进行服务主体登录,那么我真的很想知道该官方文档中的两条语句的意义何在。建议这样

1)

可以添加 --keyvault 参数以使用 Azure Key Vault 中的证书。在这种情况下,--cert 值是证书的名称。

2)

对于存储在 Key Vault 中的证书,使用 az keyvault secret show 检索证书的私钥。在 Key Vault 中,证书的机密名称与证书名称相同。如果您无法访问证书的私钥,请重置服务主体凭据。

0 投票
1 回答
703 浏览

azure - 通过基于证书的服务主体凭据访问 Azure 存储;azure.identity 与 azure.common.credentials

我已经尝试尝试通过 Python SDK 使用服务主体凭据访问 Azure Blob 存储,并且有一些我认为社区可以提供帮助的困惑。

#1azure.common.credentialsazure.identity------------------------------------------------------------ --

我注意到 Azure 中有两个不同的 python 包具有凭据类。

两者有什么区别,什么时候应该用一个来对付另一个?更具体地说,当尝试使用 Azure 服务主体时,

  • **azure.identity**两者都提供,**ClientSecretCredential & CertificateCredential**因此我们可以使用共享密钥或 SSL 证书

  • **azure.common.credentials**包只提供**ServicePrincipalCredentials**需要共享密钥的类,并且没有对应的证书凭证。

我错过了什么吗?我正在寻找使用基于证书的服务主体

#2 ServicePrincipalCredentials 有效,但 ClientSecretCredential 失败------------------------------------------ ------

我用于访问 Azure 存储的测试代码与 ServicePrincipalCredentials类一起成功运行。但是使用带有异常消息的 ClientSecretCredential 类失败:'ClientSecretCredential' object has no attribute 'signed_session'"

感谢任何有助于理解原因的帮助。除了将凭证实例化为上述两个类之一之外,代码没有任何区别。

上面的#2 问题很重要,主要是因为#1。我希望使用基于证书的身份验证,但在 azure.common.credentials 下找不到支持类。

Python 环境详细信息:

我的代码片段:

当尝试使用证书而不是秘密时,这里是创建凭证实例的代码片段;其余代码相同。

0 投票
1 回答
590 浏览

azure - az acr login with subject name and issuer authentication error

我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我正在使用主题名称和颁发者身份验证,并使用服务主体对 Azure 进行身份验证。

这就是我登录 azure 所做的事情

它有效,然后我尝试使用以下命令登录到 acr:

它失败了:

可能是什么问题呢?

0 投票
1 回答
1877 浏览

azure-databricks - 使用服务主体从 DataBricks 连接到 Synapse

我正在尝试使用服务主体从 Databricks 连接到 Synapse。我已经在集群配置中配置了服务主体

虽然我可以成功连接到 DataLake 并工作,但当我使用以下命令时,我无法写入突触......

我收到以下错误...

但是我可以使用以下命令写信给 Synapse...

我不确定缺少什么。

0 投票
1 回答
400 浏览

azure - Azure Function 身份验证:Azure Active Directory:使用安全组包含身份(用户和服务主体)以访问 Function

我有一个启用了 Azure Active Directory 身份验证的 Azure 函数(包括“请求未通过身份验证时采取的操作”=“使用 Azure Active Directory 登录”)。此外,选项“需要用户分配?” Azure Function 相关服务主体 (sp_func) 的设置为“是”,以避免租户中的每个人最终都能够运行该函数。

目标是拥有一个添加到 sp_func 的“用户和组”的单个安全组(可以包括用户和服务主体),以便分配给该组来决定是否可以访问该功能。对于用户,这可以正常工作,但对于服务主体 (sp_nonfunc) 则不行。为了让他们 (sp_nonfunc) 工作,我必须为他们设置权限 (sp_nonfunc) 最终允许他们与 Azure 函数交互,无论他们 (sp_nonfunc) 是否分配给组。

是否可以只将服务主体 (sp_nonfunc) 添加到组中,并将组添加到 sp_func,然后能够使用 sp_nonfunc 执行该函数(不授予 sp_nonfunc 显式权限)?

编辑:即使我在清单中定义了自己的 appRole,似乎也无法直接将 sp_nonfunc 添加到 sp_func。目前似乎唯一的方法是为 sp_func 添加 sp_nonfunc 的权限 - 但这是我想要避免的。

EDIT2:这里我是如何在 sp_func 清单中定义角色的

EDIT3:当我不直接为 sp_nonfunc 分配角色,而只是将 sp_nonfunc 添加到我得到的安全组时,当https://login.microsoftonline.com/<tenant id>/oauth2/token使用资源 = sp_func 的注册应用程序的应用程序 ID URI 发出请求时:

0 投票
2 回答
317 浏览

c# - DbUp SqlConnection AAD 输出?

由于安全原因,禁用了 SQL 身份验证,只能通过 Azure SPN 登录。从下面的链接,在 C# 中,我们可以连接:

https://techcommunity.microsoft.com/t5/azure-sql-database/azure-ad-service-principal-authentication-to-sql-db-code-sample/ba-p/481467

如何在下面的 DbUp 中通过上述成功的访问令牌认证连接program.cs

0 投票
1 回答
316 浏览

azure - ADLS Gen2 中针对即将到来的用户的文件夹级别访问控制

我有一个 Gen2 存储帐户并创建了一个容器。

文件夹结构看起来像这样

我只想给read only access用户normal-dataNOT sensitive-data

这可以通过在文件夹级别设置 ACL并授予对安全服务原则的访问权限来实现。

但是这种方法的局限性是用户只能访问在设置 ACL 后加载到目录中的文件,因此无法访问目录中已经存在的文件。

因为这个限制,不能给新用户完全读取权限(除非新用户使用相同的服务原则,这在我的用例中不是理想的场景)

请建议 ADLS Gen2 中的只读访问方法,其中

  1. 如果文件夹下已经存在文件并且新用户已加入,他应该能够读取文件夹下的所有文件
  2. 新用户应该只能访问normal-data文件夹而不是sensitive-data

PS:有一个用于递归分配 ACL 的脚本。但是由于我每天都会在normal-data文件夹下获得近百万条记录,因此使用递归 ACL 脚本对我来说是不可行的

0 投票
3 回答
2593 浏览

azure - 如何使用 Terraform 为 Azure 服务主体创建客户端密码

我是 Azure 和 Terraform 的新手,我正在尝试使用 Terraform 为 Azure 服务主体创建一个秘密客户端。我无法弄清楚这一点。

这就是我现在所拥有的:

这就是我正在尝试的(不太确定):

这显然是行不通的。这没有给出任何错误,但是在 Azure 控制台上看不到任何秘密。看起来这是为服务主体附加一些密码,但我不太确定它在做什么。

请让我知道对此可以做些什么。任何帮助,将不胜感激。谢谢

0 投票
0 回答
454 浏览

azure-active-directory - Azure 通用凭据:在 get_token_with_client_credentials 中检索访问令牌时连接到 Blob 存储时出错

我正在尝试使用 ServicePrincipalCredentials 类连接到 blob 存储,但我随机收到此错误:

我用来连接到 blob 存储的代码如下:

因此,连接一旦工作正常,但在不同时间调用它时,在初始化类ServicePrincipalCredentials时会从上面给出错误。我正在使用 account_name 中的“-secondary”后缀访问存储帐户的辅助终结点。

有什么办法可以防止这种情况发生吗?

错误的完整跟踪如下:

0 投票
3 回答
973 浏览

azure - 部署 Azure 服务主体的权限不足

我是 Microsoft 员工,并且是 Azure 的新手。我想在我的内部 Microsoft Azure 订阅上部署服务主体。使用 Azure CLI,当我运行时

我收到错误“权限不足,无法完成操作”。这里的文档(https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest)让我看起来像'没有正确配置 Azure Active Directory。

我的内部订阅中没有 Azure Active Directory。我需要添加这个吗?如果是这样,我如何在我的 Microsoft 内部帐户上进行设置?有没有办法在没有 Azure Active Directory 的情况下创建服务主体?