如何查找 Active Directory OAuth 身份验证的受众字段? (如何从 Azure Logic App 向 DevOps 发送发布请求?)
Posted
技术标签:
【中文标题】如何查找 Active Directory OAuth 身份验证的受众字段? (如何从 Azure Logic App 向 DevOps 发送发布请求?)【英文标题】:How to find Audience field for Active Directory OAuth Authentication? (How to send a post request to DevOps from Azure Logic App?) 【发布时间】:2019-07-22 19:26:24 【问题描述】:请帮我解决这个问题。
我正在尝试从 Azure 逻辑应用向 DevOps 发送发布请求以创建发布。 我在我的逻辑应用程序中创建了一个 http 操作,这是创建版本的 uri: https://vsrm.dev.azure.com/organization/project/_apis/release/releases?api-version=5.0
我正在使用 Active Directory OAuth 进行身份验证,我需要提供租户、客户端 ID、受众和机密。
我在 Azure Active Directory 中使用我的应用程序的租户、客户端 ID 和密码,但我不确定要为受众使用什么。
谁能解释一下如何找到这个受众领域? 我是否需要做其他事情才能连接到我的 DevOps?或为标题定义权限或任何其他参数?
【问题讨论】:
【参考方案1】:将有两种获得身份验证的方法。
-
使用 Azure AD 身份验证。
DevOps 的资源是一个静态值:499b84ac-1321-427f-aa17-267ca6975798。但是,由于 DevOps REST API 只能使用委派权限进行设置。
您需要使用密码授权流程来获取令牌:
您获得的令牌将是不记名令牌。
-
另一个选项是使用个人访问令牌。你可以create one in DevOps portal。
然后按如下方式使用:
try
var personalaccesstoken = "PAT_FROM_WEBSITE";
using (HttpClient client = new HttpClient())
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("0:1", "", personalaccesstoken))));
using (HttpResponseMessage response = await client.GetAsync(
"https://dev.azure.com/organization/_apis/projects"))
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
catch (Exception ex)
Console.WriteLine(ex.ToString());
您通过这种方式获得的令牌是基本令牌。
【讨论】:
感谢您的回复。对于第一个选项,我怎样才能找到 grant_type 值? 对于第二个选项,我不确定如何在逻辑应用程序中使用此代码。 正如我在屏幕截图中所描述的,grant_type 是“密码”。对于第二个选项,您需要使用正确格式的 PAT 对字符串进行 base64 编码,然后只需在以下 http 操作中添加基本身份验证标头。以上是关于如何查找 Active Directory OAuth 身份验证的受众字段? (如何从 Azure Logic App 向 DevOps 发送发布请求?)的主要内容,如果未能解决你的问题,请参考以下文章
查找 WCF 服务调用者的 Active Directory 域用户名
如何以编程方式在 Active Directory 中搜索打印机
使用 LDAP 在 Active Directory 中查找用户 - 没有用户?
win10系统用快捷键Ctrl+Win+F查找 计算机出现“active directory域服务当前不可用”错误怎么办?