问题标签 [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 投票
3 回答
13414 浏览

azure - 如何登录 Azure 服务主体

  1. Connect-AzureRMAccount不起作用。我不在乎。我不想通过需要博士学位的过程来理解为什么 PowerShell 永远不想工作。所以我要使用Login-AzureRMAccount

  2. 我已经关注了文档。当然这是不够的,所以我在这里。 https://docs.microsoft.com/en-us/powershell/azure/authenticate-azureps?view=azurermps-6.6.0

“为了获取服务主体的凭据作为适当的对象,请使用 Get-Credential cmdlet。此 cmdlet 将显示一个对话框,用于输入服务主体用户 ID 和密码。”

我什至在哪里可以找到我的用户 ID?我遵循了另一个关于创建 SP 的文档说明,我所做的只是创建了一个应用程序。我在 PowerShell 中获得了 SP 对象,它所做的只是给了我一个 SP 的名称。

现在我明白了什么是用户 ID。如何登录?我用Login-AzureRmAccountANDAdd-AzureRMAccount他们都说

0 投票
1 回答
1919 浏览

azure - Azure Active Directory:使用 PowerShell 将服务主体添加到目录读取者角色

  • (Get-AzureRmADUser -Mail $user).Id在 VSTS 中的自托管代理上运行时,Azure PowerShell 任务中的命令返回 null
  • 问题是服务主体需要具有从 Active Directory 读取的权限

如何为服务主体提供从 Azure Active Directory 读取的正确权限?

0 投票
2 回答
5670 浏览

azure - Azure 服务主体从 Container Registry 拉取映像

我已经创建了这样的 Azure 服务主体

az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role reader

登录后 ( az login --service-principal -u $SERVICE_PRINCIPAL_NAME -p $SERVICE_PRINCIPAL_ID --tenant $TENANT_ID) 我可以看到az acr repository list --name $ACR_REGISTRY_NAME我的注册表中的所有图像 ( ),但我无法推送或拉取图像 ( docker pull myregistry.azurecr.io/myimage:latest)。

有什么我不知道的权限吗?我已经尝试过类似的其他角色,例如owneror contributor,但 SP 也遇到了相同的错误,如下所示:

来自守护程序的错误响应:获取https://myregistry.azurecr.io/v2/myimage/latest/manifests/latest:未授权:需要身份验证


8 月 14 日更新:

我也无法使用 SP 登录

来自守护程序的错误响应:获取 myregistry.azurecr.io/v2:未授权:需要身份验证

0 投票
2 回答
1760 浏览

c# - Azure - authenticating to KeyVault using Service Principle returns an Unauthorized exception

I'm trying to access KeyVault from an .net Core console application, using a Service Principle (I have the App Id and App Secret). Here's my code:

Which calls back to this function:

Calling GetSecretAsync returns an "AccessDenied" exception. Modifying the code to use this callback yeilds an "Unauthorized" exception:

I setup the Service Principle by going to Azure > AAD > App Registrations, noted the App Id and password (App Secret) when I setup the Principle.

Then in KeyVault, I added the principle to Access Control (IAM), with contributor rights, but still no joy!

Has anyone come across this scenario before?

Thanks! :)

0 投票
1 回答
223 浏览

azure - 无法从 VSTS 登录服务原理,但在 TFS 和 Azure 门户状态成功下工作

我正在一个项目中,我将从 TFS 迁移到 VSTS,因此我们确实有一个工作版本定义。

但是当我尝试部署服务结构集群时,我收到以下错误:

2018-08-28T09:02:59.8922249Z ##[错误]尝试获取 Azure Active Directory 令牌时发生错误。确保使用有效凭据正确配置您的服务端点。错误消息:使用“3”参数调用“AcquireToken”的异常:“AADSTS50079:由于管理员进行了配置更改,或者因为您移动到了新位置,您必须注册多因素身份验证才能访问' <服务原则标识>'。

跟踪 ID:< guid1 在这里>

相关 ID:< guid2 在这里>

然后我转到 azure 门户 -> AAD -> 登录 -> 查找我的特定登录(基于相关 ID),并在那里声明登录状态为成功

考虑到这适用于我们的 TFS 实例,我假设服务原则设置正确。但是由于构建/部署代理现在位于 azure 的 VM 上,而不是 TFS 的 prem 上,所以我需要更改什么吗?

流量应该没问题,我可以从带有代理的 VM 导航到群集的 https 地址。

我试过谷歌它,但没有成功,所以希望有人能指出我正确的方向。

而在门户网站中,“需要 MFA”是否,因此不需要多因素。

0 投票
0 回答
194 浏览

azure - 使用存储在 Azure Key Vault 中的证书对服务主体进行身份验证

我正在尝试使用服务主体和证书身份验证向 Azure 验证本地 hadoop 集群。我创建了一个服务主体,并让密钥库创建了证书。一旦通过身份验证,我知道如何获取该信息,但我试图弄清楚证书过期后如何自动重新进行身份验证。

0 投票
1 回答
1398 浏览

azure - 如何通过 REST 接口获取 Azure 托管标识的令牌?

这个问题参考了这篇文章:

https://docs.microsoft.com/en-us/azure/app-service/app-service-managed-service-identity

我试图弄清楚如何使用为我的天蓝色应用程序生成的服务主体进行模拟以在本地工作。

我关注了这篇文章,当我将 azure 函数部署到 azure 并从那里运行它时,我能够成功使用 MSI_ENDPOINT 和 MSI_SECRET 成功获取令牌。但是,当我在本地运行相同的部署时,它会失败。我使用完全相同的 MSI_SECRET 并将 MSI_ENDPOINT 更改为我用于天蓝色函数端点的域。

示例:在天蓝色的 MSI_ENDPOINT = http://127.0.0.1:41831和本地它是http://localhost:7071 ( http://0.0.0.0:7071

但是,当我在本地运行它时,我收到请求的 404 错误。请求是http://0.0.0.0:7071/MSI/token?resource=https://vault.azure.net&api-version=2017-09-01,标头中有秘密。除了 MSI_ENDPOINT 之外,与在 azure 上加载的工作参数完全相同。

关于如何解决这个问题的任何建议,以便我可以在本地运行和测试?

将 Microsoft.Azure.Services.AppAuthentication 库用于 .NET 的 .NET 应用程序和函数,使用托管标识的最简单方法是通过 Microsoft.Azure.Services.AppAuthentication 包。此库还允许您使用 Visual Studio、Azure CLI 或 Active Directory 集成身份验证中的用户帐户在开发计算机上本地测试代码。有关此库的本地开发选项的更多信息,请参阅 Microsoft.Azure.Services.AppAuthentication 参考。本节向您展示如何开始使用代码中的库。将 Microsoft.Azure.Services.AppAuthentication 和 Microsoft.Azure.KeyVault NuGet 包的引用添加到您的应用程序。

但是,该库仅在我未使用的 .net 中可用,并且没有真正解释您将如何通过 REST 调用进行操作。

谢谢!

0 投票
1 回答
1777 浏览

azure - 用于创建应用注册的服务主体权限

我正在使用服务主体作为 azure cli 的登录项。此服务主体的角色是“所有者”。

我正在尝试运行:

并得到错误:

当前用户注册应用程序需要目录权限。有关如何配置,请参阅“ https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal ”。原始错误:权限不足,无法完成操作。

我应该为此服务主体分配什么角色?

0 投票
1 回答
1311 浏览

c# - 使用 MSI 对 Azure BlobStorage 进行身份验证时出现问题

我正在尝试将我的 C# 控制台应用程序(.net core 2.1)连接到 blob 存储。我以几种不同的方式初始化 Blob 存储客户端。他们是:

  1. 连接字符串- 在开发过程中很有用
  2. 服务原则- 生产部署的可能性
  3. MSI 身份验证- 更安全,密钥为我们自动循环

在我的代码中,如果没有明确设置连接字符串,我会根据定义的应用程序设置使用服务原则或 MSI 生成它(下面的示例初始化代码)。无论我使用三种方式中的哪一种,我最终都会使用连接字符串初始化客户端(在 1. 的情况下明确设置或在 2. 和 3. 的情况下使用我的代码生成)。

下面的代码对于 1(连接字符串)和 2(服务原则)可以 100% 正常工作,但是在尝试实现 3(MSI)时出现错误。

在本地运行时出现此错误:

访问令牌来自错误的颁发者“ https://sts.windows.net/f8cdef31-a31e-4b4a-93e4-5f571e91255a/ ”。它必须与与此订阅关联的租户“ https://sts.windows.net/{my-subscription-id}/ ”匹配。请使用授权 (URL) ' https://login.windows.net/ {my-subscription-id}' 获取令牌。请注意,如果将订阅转移给另一个租户,则对服务没有影响,但有关新租户的信息可能需要一段时间才能传播(最多一个小时)。如果您刚刚转移订阅并看到此错误消息,请稍后再试。

有了这个,我不知道'f8cdef31-a31e-4b4a-93e4-5f571e91255a'来自哪里,它可能是全球微软实例。我试图通过在启用了 MSI 的 Azure 中的 webjob 中运行我的代码来缓解这种情况,以查看它是否有效,我得到:

System.AggregateException:发生一个或多个错误。(服务连接发生异常,详见内部异常)---> System.Exception:服务连接发生异常,详见内部异常---> Microsoft.Rest.Azure.CloudException:客户端对象 ID 为“{my-subscription-id}”的“{my-subscription-id}”无权在“/subscriptions/{my-subscription-id}”范围内执行操作“Microsoft.Storage/storageAccounts/read” '。

请注意,我将 MSI 帐户设置为 blob 存储的“所有者”和“存储帐户密钥操作员”)

我通过以下方式初始化 CloudStorageAccount 客户端:

并建立一个连接字符串如下:

我获取访问令牌的主要区别在于,使用服务原则我有一个身份验证上下文,而使用 MSI 我没有。这会影响身份验证的范围吗?非常感谢任何帮助和建议!

0 投票
2 回答
2078 浏览

azure - Azure AD - 如何检查是否正在使用服务主体?

我有一堆旧的应用程序注册/服务主体,没有人知道它是否被使用。当我从企业应用程序(所有应用程序)刀片进入应用程序并查看从活动登录时,没有显示任何内容。审核日志中也没有任何内容。

我对我们经常使用的应用程序做了同样的事情,但登录中仍然没有任何内容。我使用该应用程序从 PowerShell 会话连接到我们的租户;我什至不知道登录活动日志是否应该跟踪您每次使用该服务主体向 AD 进行身份验证时。我向 Microsoft 开了一张支持票,他们只是告诉我检查登录日志,但那里什么也没有。我确实为整个 AD 启用了诊断日志记录,但也没有。

无论如何,是否可以查看是否正在使用应用程序?多频繁?请指教!