问题标签 [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 回答
318 浏览

c# - LinqToDB 如何将 AccessToken 添加到数据库连接

我需要ServicePrincipal使用LinqToDB. 我按照这篇微软文章来测试设置是否正确。但是,此示例使用System.Data.Sqlclient.SqlConnection具有AccessToken属性的类,因此它可以添加AccessToken到连接中。

我正在使用LinqToDB并试图弄清楚我可以在哪里添加AccessTokenAD. ( sourceDataConnection )没有属性。AccessToken

0 投票
1 回答
75 浏览

azure - 更新 ACS Kubernetes 集群

我在 azure vmss 上运行了 ACS kubernetes 集群,最近我通过在主节点和工作节点的 /etc/kubernetes/azure.json 中添加新密钥来更新我的 acs 服务主体并重新启动它们,但问题是新节点创建为扩展无法获得新的服务主体密钥。

0 投票
1 回答
58 浏览

azure-data-lake - 我正在使用服务原则 ID 使用 ADLSV2 运行 databricks 笔记本,但在安装驱动器后收到以下错误

我正在使用服务原则 id 使用 ADLSV2 运行 databricks 笔记本,但在安装驱动器后收到以下错误。

0 投票
1 回答
376 浏览

azure - 为什么我不能使用 Service Principle 和 Azure CLI 将 Add ReplyUrl 添加到 AAD 应用程序?

我需要使用 Azure CLI 的服务主体将 ReplyUrl 添加到 AAD 应用程序,但我收到错误“权限不足,无法完成操作”。我最初从 Azure DevOps 尝试过这个,但现在只从 CLI 复制了它。

我开始使用 DevOps 和在将 Target AAD 租户连接到我的 DevOps 组织时创建的服务主体。我已向服务主体授予 API 权限 Microsoft.Graph.Application.ReadWrite.All 并授予管理员同意。我生成了一个新的 ClientSecret 并使用它使用 CLI 登录到租户。当我运行命令更新回复 url 时,就会出现上述权限不足错误。

如果我从 Cloud Shell bash 运行 CLI 命令,它可以正常工作。

然后

如果我从 cloud shell 运行 az ad app update 命令,它可以正常工作。
如果我尝试使用 DevOps 创建的服务主体,则会收到错误消息。

我刚刚在 DevOps 之外创建了一个干净的新主体(az ad app create-for-rbac),然后手动添加了 Application.ReadWrite.All 权限并同意了这一点——这也给了我同样的错误!

应用程序 API 权限和同意

我已经查看了类似的问题 - 但最接近的问题有一个答案,我们需要给予正确的权限并授予同意作为答案 - 我已经完成了。

0 投票
1 回答
961 浏览

azure - 将服务主体客户端 ID 和机密传递给 ARM 模板

我有一个 ARM 模板,它创建了一个 Azure Key Vault,然后是一个 Azure Kubernetes 服务。问题是 Azure Kubernetes 服务需要在我第一次创建它时传递一个 Service Principle 的 Client ID 和 Client Secret。所以我在文件中运行application.json没有kubernetes_servicePrincipalClientIdandkubernetes_servicePrincipalClientSecret参数production.parameters.json

应用程序.json

第二次运行 ARM 模板时,我将以下行添加到我的production.parameters.json文件中,以便从 Azure Key Vault 中检索客户端 ID 和客户端密码,我第一次运行 ARM 模板时存储它们的位置。

生产参数.json

不幸的是,您似乎无法在 ARM 模板中创建服务主体。有没有更好的方法来自动配置所有这些,这样无论我是第一次还是第二次运行模板,我都不必执行任何手动步骤?

0 投票
1 回答
3405 浏览

powershell - 如何使用函数身份验证或 Azure AD 服务主体对 Azure 函数进行身份验证

我有一个 Azure 函数,用于从 Azure AD 获取数据,但我想限制谁可以使用该函数,因为它将使用 HTTP 触发器,以便稍后我可以从逻辑应用程序调用该函数在路上。因此,由于 HTTP 触发的 Azure Functions 具有公共终结点,我想通过将授权级别设置为 Function 来提高安全性,或者更可取的是使用 Azure AD 服务主体(预先创建)。进行此更改后,我可以通过将函数放入 URL 来进行调用。

基本网址: https://something.com/api/function_name

带有令牌的 URL: https://something.com/api/function_name?code=token_here

但是,我的函数需要给出一些输入。在匿名端点上,您可以像这样扩展基本 URL: https://something.com/api/function_name/?parameter=value

其中参数是代码所期望的,以及传递给代码中变量的值。现在我是这个 HTTP 端点的新手,并通过 URL 传递值。我知道这会以 JSON 的形式传入(可能)

但是我不明白如何同时进行功能授权以及传入参数。我试过了:

有谁知道这应该如何工作?

另一方面,我还可以将 设置Platform Features -> Authentication / Authorization为 Azure AD 服务主体。但是,如何更改 URL 以使用该服务主体的client_idand进行身份验证?client_secret我实际上更喜欢使用这种方法,因为这样我就可以对令牌实施生命周期管理并对其进行轮换以使其更加安全。

我看过这里: Azure function with Azure AD authentication access using JavaScript

我在 stackoverflow 上找到的大多数其他主题甚至都没有接近。

PS:这个PS不需要答案,但我会很感激任何想法。我正在制作的这个东西是一个工作流,它结合了一个(计划的)逻辑应用程序,它触发了一个Get-Function. 将在哪里Get-Function需要以某种方式触发Update-Function. 而且我正在Get-Function触发 HTTP,以便我还能够将其作为 API 提供,以使该功能可用于自动化。(允许在不需要 Azure AD 权限的人的情况下通过 API 调用轮换机密)更新功能将需要轮换(特定)应用程序/服务主体上的机密。Azure Function 基于 v2 并使用 Powershell Core 作为语言。

0 投票
1 回答
635 浏览

python - Azure 服务主体的密钥凭据和密码凭据之间的区别?

我正在使用 Python 以编程方式创建 Azure 应用程序和服务主体注册,并且还被要求为应用程序提供客户端密码。

ServicePrincipalsUpdateParameters类中,看起来我可以选择更新password_credentialskey_credentials。谁能解释两者之间的区别?

0 投票
1 回答
203 浏览

azure - 在 Azure 中使用基于角色的授权时,如何允许服务帐户访问我的 REST API?

摘要:我有一个用于功能测试的 REST API。我只允许具有特定“测试人员”角色的人员或组访问 API。我想在 Azure DevOps Release Pipeline 期间自动触发此功能测试,但我不知道如何授权机器帐户访问 API。

细节:

我用 [Authorize(Roles = "Tester")] 保护了这个 API

为了进行设置,我在 Azure Active Directory 中注册了一个企业应用程序。在清单中,我声明了角色。

在此处输入图像描述

然后在企业应用程序中添加一些用户和组,这些用户和组被分配了“测试员”角色。

在此处输入图像描述

这适用于手动运行我的功能测试。我运行测试,它会弹出一个 oauth 对话框让我输入我的凭据,它会从成功的身份验证请求中获取我的 Bearer 令牌,然后将其传递给 API。

当然,如果我在自动化过程中运行它,将没有任何东西可以用凭据填充对话框,我也不想存储这些凭据的副本,特别是因为这些凭据按照在其他地方维护的时间表滚动。

我的想法是我可以创建一个 Azure 服务主体,将证书与服务主体关联,在我的部署机器上安装证书,如果证书可用,则以服务主体身份登录,然后将该服务主体放在“测试器”中角色。问题是我无法在企业应用程序中将服务主体添加为用户。它似乎只允许我添加“用户和组”。我同样无法将服务主体添加到组中。

在此处输入图像描述

关于如何授权我的部署框访问这些 API 有什么想法吗?

0 投票
1 回答
114 浏览

powershell - 有没有办法排除 Microsoft 默认 (OOBE) 服务主体?

我想在我的租户中列出所有非 Microsoft-Default 服务主体,排除所有 OOBE 应用程序。

我在PS cmdlet 或Graph Get-AzureADServicePrincipal-API (graph.microsoft.com/beta/servicePrincipals

起初我以为它可能是标签属性,我可以过滤那些有WindowsAzureActiveDirectoryIntegratedApp标签的东西。但事实证明,它表明服务主体是否是企业应用程序(应用程序类型)。

关于过滤哪个属性或使用哪个 API 的任何想法?

0 投票
1 回答
229 浏览

azure-active-directory - 无法使用所有者服务原则在管道中创建角色分配

我有一个部署一些 ARM 模板的构建管道。其中一些资源需要为 RBAC 分配角色。

管道用于连接订阅的服务原则是所有者,但是如果模板尝试创建角色分配资源,或者我尝试在管道中运行 az cli 创建分配,则权限不足。

允许此操作需要所有者以上的哪些权限?