繁体   English   中英

Azure AD是否提供API方法来以编程方式验证用户?

[英]Does Azure AD provide an API method to validate a user programmatically?

我想通过Web应用程序和本机移动应用程序验证Azure AD用户,尽管Azure AD不是我正在使用的唯一IdP。

我已经阅读了OAuth2文章,但是在跟踪API方法以针对用户进行验证时遇到了麻烦。 一个答案指出,您在获取令牌时可以传递usernamepassword参数,但似乎无法对此进行验证。

有一个DotNet解决方案的示例,但我对.NET不熟悉-尝试运行它并遇到了System.TypeLoad异常( Could not load type of field 'Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever:CS$<>9__CachedAnonymousMethodDelegate5'

我以前曾尝试设置SimpleSAML解决方案,但缺点是,对于本机应用程序,它需要额外的工作,可能不适合。

我建议您将用户重定向到Azure AD登录页面。

从技术上讲,您可以尝试使用“资源所有者密码凭据”授予来验证用户。 但是,它不会总是工作。

这涉及您使用类似于以下内容的表单数据向OAuth令牌端点发出POST请求:

grant_type=password&username=user@example.com&password=Password&client_id=your-client-id&client_secret=your-client-secret&resource=resource-you-want-the-token-for

该资源可能是https://graph.windows.net因为默认情况下您可以访问该资源。 如果结果成功,则是,该用户存在并且凭据有效。

但是,如果失败,则可能由于以下原因而发生:

  • 用户不存在
  • 密码错误
  • 用户已启用多因素身份验证
  • 该用户是联盟用户(来自本地AD),并且必须通过ADFS进行身份验证

因此,在某些情况下它根本无法工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM