【发布时间】:2019-06-04 13:13:19
【问题描述】:
我有一个不错的 Azure Active Directory 设置,有十几个用户。 (全是我!)所以我有一个租户 ID、客户端 ID 和客户端密码。
我还在开发一个简单的控制台应用程序,它将作为该目录的公共客户端。该客户端还包含用户名和密码列表,因为这只是一个简单的实验。不安全,我知道。 但我首先需要了解它是如何工作的...
我这样做:
IConfidentialClientApplication client = ConfidentialClientApplicationBuilder
.CreateWithApplicationOptions(options).Build();
这将创建我的客户端应用程序。工作正常。
我还使用“https://graph.microsoft.com/.default”获得了一个令牌,并且可以使用它来获取所有用户为 JSON:
string result = await GetHttpContentWithToken("https://graph.microsoft.com/v1.0/users",
token.AccessToken);
虽然我可能希望它对用户更友好,但 JSON 目前还不错。
如何检查用户是否是授权用户?
不,我不想要需要各种 nuget 包的复杂解决方案。只是一个简单明了的分步说明。我可能可以用 Google 搜索,但我最终得到了数千个结果,但没有一个有用...这应该很容易,对吧?
[编辑] 我首先想获取由于拼写错误而失败的用户列表...(“默认”之前有一个点...)
【问题讨论】:
-
您需要使用该应用对象获取访问令牌。对于您需要使用
https://graph.microsoft.com/.default的范围,您需要在 Azure AD 中要求应用程序权限才能通过 MS Graph API 读取所有用户。 (在 Azure 门户中找到您的应用注册以执行此操作)然后您可以使用附加到请求的令牌调用 Microsoft Graph API 的/v1.0/users端点。这为您提供了所有用户。 -
要对用户进行身份验证,您需要使用可用的身份验证流程之一。您应该使用哪种流程取决于应用程序的类型。不,您不需要用户的密码。他们不应该把密码告诉你。
-
好吧,我设法获得了一个访问令牌...但是现在是身份验证部分...
标签: c# azure-active-directory console-application .net-4.7.2