问题标签 [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.
azure - 从 AAD 获取 AppPrincipalId 的 OAuth 令牌时出错
我正在通过模板部署(shell 脚本)使用服务主体使用 Data Lake Store 创建 HDInsight。
在我运行部署脚本时,在 Spark HDInsight 集群的初始集群创建后出现以下错误。
错误是:
我的猜测是 HDInsight 和使用服务主体身份验证的 Data Lake 存储集成之间存在一些问题。
任何帮助深表感谢。
azure - 服务主体凭据,设置自定义标识符?
我们正在将个人开发者证书链接到某个服务主体。当开发人员离开我们的团队时,我们将从服务主体中删除该凭据。
这工作得很好,但有点麻烦,因为开发人员的名字没有与凭证相关联。
我注意到它们是凭据上的 customIdentifierKey 属性......但我找不到如何设置 customIdentifierKey。
任何人都知道如何做到这一点?
azure - Azure 应用服务部署 - 服务主体帐户的最低角色
我正在使用 VSTS 构建和发布定义将标准 ASP.NET MVC 应用程序部署到 Azure 应用服务。VSTS 实例和目标 Azure 订阅位于不同的 Azure 帐户/订阅上,因此我们创建了一个 Azure AD 应用程序和服务主体帐户来授权部署。
将服务主体帐户添加到订阅时,它希望我们分配一个角色。
可用于部署站点的最佳和最低特权角色是什么?
azure - New-azurermadserviceprincipal:配额超出错误
我正在 AD 中创建一个新的应用程序注册,然后创建服务主体。对于我的登录,我只注册了 5 个应用程序。当我尝试创建一个新的时,我得到“配额超出错误”。但是对于同一订阅中的另一个用户,它允许创建许多注册。
有没有办法列出特定用户的所有服务主体然后清理它们?
python - 用于授予服务主体访问订阅的 Azure API?
是否有可用的 Azure API 允许我执行此处概述的步骤:
我能找到的最接近的是:
https://docs.microsoft.com/en-us/rest/api/authorization/roleassignments
我使用 Python SDK,该 API 的接口在这里 - https://github.com/Azure/azure-sdk-for-python/tree/master/azure-mgmt-authorization
此 API 似乎用于授予对 Azure 订阅下资源的访问权限,而不是授予订阅本身...
powershell - 如何在 PowerShell 代码中保护 Azure 服务主体
假设我有我的 PowerShell 代码,它对我的 Azure 订阅执行特定操作。我知道它必须使用我的 Azure 用户名或 Azure 服务主体登录 Azure。
就我而言,我想使用服务主体,因为很多人将使用此代码,我不想让每个人都访问我的订阅。所以我只提供对这个 SP 的访问。
我意识到,要使用 SP 登录,我需要在我的代码中包含 App ID 和密钥,如果我的代码被泄露,那么我们公司以外的人也可以使用 App ID 和密钥登录并做一些事情在我的订阅上。
有什么办法可以保护自己免受这种安全风险?我看到 Azure AD 上还有一个部分,我可以指定可以访问服务主体(Azure 应用程序)的用户/组。但它会更像是双重身份验证吗?你能指出我正确的方向吗?
如果您也可以与我分享一些示例代码,我们将不胜感激。
azure - 如何为 Azure 应用程序配置同意(AADSTS65005 错误)
我们有一个 Azure 资源应用程序,我们希望公开其 API 以供 Azure 上的客户端应用程序访问。这两个应用程序位于不同的租户上。访问 API 的用户(Office 365 帐户持有人)位于不同的租户中。
当我们在尝试从客户端应用程序对资源应用程序进行身份验证的租户上手动配置服务主体时,整个设置就可以工作。我的意思是他们能够使用他们的 Office 365 帐户登录并显示同意屏幕。
如果我们未在尝试进行身份验证的用户的 AAD 租户上配置服务主体,则会收到以下错误:
在访问我们的应用程序(资源应用程序)的每个租户上配置服务主体对我们来说是不可行的。我们缺少什么吗?我们是否使用了正确的流程?
powershell - Azure 服务主体的密钥过期报告
有谁知道报告服务主体密钥到期的方法?我正在使用 Powershell 检索有关服务主体的信息,但我无法获取有关返回的密钥的信息。我正在运行的命令正在返回信息,但我所有的 SP 的 keyCredentials 信息都是空白的,例如:
displayName : azure-cli-2017-07-17-14-08-57
errorUrl :
homepage : http://azure-cli-2017-07-17-14-08-57
keyCredentials : {}
logoutUrl :
我确实在 Azure 门户中看到了过期日期,但我似乎无法通过 Powershell 检索它。我正在尝试确定我的问题是权限问题、我正在使用的 API 问题还是其他问题。
我基本上遵循这篇文章的说明:https ://blogs.technet.microsoft.com/paulomarques/2016/03/21/working-with-azure-active-directory-graph-api-from-powershell/取而代之的是获取服务主体信息的细微变化。像这样:
$resource = "servicePrincipals"
$uri = "https://graph.windows.net/$tenant/$($resource)?api-version=1.6"
$servicePrincipalInfo = (Invoke-RestMethod -Uri $uri -Headers $authHeader -Method Get -Verbose).value
任何提示或技巧将不胜感激。
azure - 使用 AAD 应用程序密钥和服务主体密码之间的身份验证区别
要在 Azure 中运行应用程序,我需要在 Azure AD 中创建一个应用程序和一个相应的服务主体。然后我的应用程序针对这个 App/Principal 对进行身份验证。要进行身份验证,我可以在应用注册中创建一个应用程序密钥,或者我可以在服务主体中创建一个密码(以及其他选项)。从实践的角度来看有什么区别?
例如,无论 $key 是应用程序的密钥还是服务主体的密码,这段代码的运行方式完全相同(从外部):
何时应针对应用进行身份验证,何时应使用服务主体?
python - Azure 服务主体和 storage.blob 与 Python
我正在尝试通过 python 对服务主体进行身份验证,然后访问 azure.storage.blob
曾经这样做:
但我不能让它与服务主体一起工作:
我有点困惑如何将这两个配对,无论我尝试什么,当我尝试上传 blob 时都会给我一个超时。