Azure Active Directory:web api调用另一个web api

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Active Directory:web api调用另一个web api相关的知识,希望对你有一定的参考价值。

我有两个不同的Web API应用程序(web-api-app1web-api-app2)与Azure Active Directory身份验证集成。

我可以使用一些控制台应用程序单独调用这两个API应用程序,如下所示:

AuthenticationContext ac = new AuthenticationContext("https://login.windows.net/[AD Tenent]");

var clientCredentials = new ClientCredential("app id", "app key");
AuthenticationResult ar = ac.AcquireTokenAsync("https://web-api-app1", clientCredentials).Result;

string result = string.Empty;

HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ar.AccessToken);

HttpResponseMessage response = httpClient.GetAsync("https://web-api-app1/odata").Result;

if (response.IsSuccessStatusCode)
{
    result = response.Content.ReadAsStringAsync().Result;
}

Console.WriteLine(result);

现在我的要求是我需要从web-api-app2调用web-api-app1(web API调用web API调用)。我怎么做?谢谢!

答案

你需要实现on-behalf-ofdocs for v1 endpoints)流程。

app1应使用在用户身份验证时获取的自己的访问令牌向app2请求访问令牌。

app1的清单应包括访问app2的许可。

如果应用程序位于不同的租户中,app2应首先由app1租户管理员同意。

The official .net example app

以上是关于Azure Active Directory:web api调用另一个web api的主要内容,如果未能解决你的问题,请参考以下文章

Azure-Azure Active Directory(AAD)

text Azure Active Directory身份验证

Azure *** 客户端 Azure Active Directory 身份验证

用于查询Azure Active Directory的Azure服务

Active Directory 从浏览器访问 Azure 存储

Azure Active Directory Powershell 管理