c# - C# 控制台应用 AzureAD 如何模仿 powershell 的 Get-AzureADUser
问题描述
有没有一种方法可以模仿 powershell 的 Get-AzureADUser 来读取给定用户的 AD 属性,而无需注册我尝试使用 Azure 构建的 C# 控制台应用程序?
我知道您可以在 C# 中运行 powershell,但我想知道是否有不同的途径可以在不注册应用程序的情况下实现相同的目标?
解决方案
简短回答:否。您需要向 Azure AD 注册应用程序才能进行身份验证。
更长的答案:
AFAIK Azure AD 支持的所有 OAuth 2.0 身份验证授权都需要有关用于进行身份验证调用的客户端(即注册的应用程序)的一些信息。无论您使用 ADAL 库还是直接点击相关的令牌/授权端点,这都是正确的。
您可能已经知道,但值得一提的是,使用正确权限进行身份验证/查询用户数据的最简单且推荐的方法是将您的应用程序注册到 Azure AD。
事实上,Azure AD 的默认设置是这样的,它促进了开发人员能够代表他们自己注册应用程序并同意应用程序的用例。阅读此处..谁有权将应用程序添加到我的 Azure AD 实例?最后它提到微软本身在内部使用相同的配置。
完全披露:我知道一些知识渊博的人(Microsoft MVP、Microsoft Azure AD 团队成员)遵循 azure-active-directory 标签。因此,即使我认为这是正确的答案,但您的问题是等待更多答案/评论以查看是否还有其他可能是有意义的。
如果适合您的情况,可能的解决方法:
如果您不想仅仅因为您没有特定 Azure Active Directory 租户的权限而注册您的应用程序,则可能有一种解决方法。
您仍需要使用不同的 Azure AD 租户或 Azure AD B2C 注册您的应用程序,然后将您的应用程序设为多租户。有关更多详细信息,请参阅此 SO 帖子。
推荐阅读
- wpf - 如何在视图中使用异步方法和绑定更新全局集合?
- excel - 将按钮文本/名称作为参数传递给子/函数
- python - 通过 TCP/socket 编程到激光器
- maven - 在 POM 的属性部分中定义的属性在外部 ant 构建文件中看不到
- javascript - 确定网页挂起的原因
- android - 实施 'com.android.support:support-core-ui:27.1.1'
- ms-access - 为什么我在某些数据库上丢失了级联窗口选项?
- wso2 - WSO2 Identity Server 不显示系统统计信息
- powershell - Invoke-RestMethod 将整数作为字符串返回
- requirejs - 使用 AWS 设置覆盖工厂时出现 OpenEDX RequireJS 错误