我使用Azure Active Directory保护了Azure API应用程序。通过Azure Active Directory验证客户端以连接ApiApp
如何验证我的C#.NET客户端,以便我可以调用Api?我找不到任何教程!
我使用Azure Active Directory保护了Azure API应用程序。通过Azure Active Directory验证客户端以连接ApiApp
如何验证我的C#.NET客户端,以便我可以调用Api?我找不到任何教程!
https://aka.ms/aaddev中有很多全面的文档和示例,您应该花点时间在那里探索。我下面的所有响应来自这些样本,特别是这一个:
https://github.com/Azure-Samples/active-directory-dotnet-native-desktop
首先,你需要通过以下步骤来注册在Azure中的Active Directory,您的客户端应用程序:
- 登录Azure管理门户。
- 单击左侧导航栏中的Active Directory。
- 单击您希望注册示例应用程序的目录租户。
- 单击应用程序选项卡。
- 在抽屉中,单击添加。
- 点击“添加我的组织正在开发的应用程序”。
- 为应用程序输入一个友好名称,即“YourClientApp”,选择“Native Client Application”,然后单击下一步。
- 输入重定向URI,即“https://yourClientsRedirectUri/”。点击完成。
- 单击应用程序的配置选项卡。
- 查找客户端ID值并将其复制到一边,稍后在配置应用程序时需要此值。
- 在“对其他应用程序的权限”中,单击“添加应用程序”。在“显示”下拉列表中选择“其他”,然后单击上面的复选标记。找到&单击“YourApi”,然后单击底部的复选标记以添加应用程序。从“Delegated Permissions”下拉列表中选择“Access YourApi”,然后保存配置。
然后,对于C#.NET客户端,你需要使用.NET中的Active Directory验证库(ADAL)和线沿线的做一些事情:
var authority = "https://login.microsoftonline.com/";
var resource = "https://yourApisUri/";
var redirectUri = "https://yourClientsRedirectUri/";
var tenant = "yourAzureActiveDirectory.onmicrosoft.com";
var clientId = "yourClientsAzureADClientId";
var ctx = new AuthenticationContext(authority + tenant);
var t = ctx.AcquireToken(resource, clientId, new Uri(redirectUri));
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + t.AccessToken);
var url = "https://yourapi.com/yourmethod";
await result = client.GetAsync(url);
// Do whatever you want
}
重要注意事项:上面的代码只是一个起点,你应该确保你阅读并遵循所有的最佳实践,例如确保你将一个TokenCache传递给AuthenticationContext的构造函数,并确保每次你需要一个令牌时调用AcquireToken而不是缓存令牌自己。
哪种客户端? –