我想通过Web应用程序和本机移动应用程序验证Azure AD用户,但Azure AD并不是我正在使用的唯一IdP。
我已阅读OAuth2 article,但我在跟踪API方法以验证用户时遇到问题。 One answer注意,您可以在获取令牌时传递username
和password
参数,但似乎不会对此进行验证。
有一个DotNet解决方案的例子,但我不熟悉.NET - 尝试运行它并遇到System.TypeLoad异常(Could not load type of field 'Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever:CS$<>9__CachedAnonymousMethodDelegate5'
)
我以前曾尝试设置SimpleSAML解决方案,但缺点是对于原生应用程序,它需要额外的工作,可能不适合。
答案 0 :(得分:2)
我建议您将用户重定向到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
,因为默认情况下您可以访问该资源。如果结果成功,则是,用户存在且凭证有效。
但如果失败,可能会发生因为:
所以它在某些情况下根本无法运作。