在没有oAuth的情况下针对Azure AD验证用户凭据

时间:2018-04-22 00:44:47

标签: go azure-active-directory microsoft-graph azure-ad-graph-api

我希望将Azure AD用作我的身份验证系统,但不希望将我的用户退回到Microsoft登录页面,因为它具有破坏性,并且用户可能拥有或可能没有个人和/或工作帐户这一事实似乎使这对大多数人来说都很困惑。

在过去的几天里,我对此进行了相当多的研究,但只找到了向我展示.NET,Azure Graph和Microsoft Graph API中的AAD库的资源。所有这些似乎都是复杂的系统,可以通过Microsoft登录窗口弹出oAuth。

我正在使用Golang,但我是.NET中的MSCA。如果.net中的源代码引用不需要专有/封闭源DLL文件,我可以将其作为起点,否则,如果有一些参考点可能会显示如何使用MS Graph API发送用户名和密码(在我的网站上输入)并收到一些肯定或否定的回复,表明提供的凭据是否与我的Azure AD中的帐户相匹配会很棒。

例如,我知道使用https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations来创建,获取,列出,更新和删除用户。但它似乎没有验证或授权程序(除非我当然只是错过了它)。

我的问题是,有没有办法验证凭据而不使用oAuth通过Microsoft帐户登录?如果是这样,有人可以提供参考或一些伪代码,让我朝着正确的方向前进吗?提前致谢!

1 个答案:

答案 0 :(得分:3)

基本上没有。 我所知道的其他OAuth / OpenIdConnect身份提供商也没有提供此功能。 如果帐户需要多重身份验证怎么办?

有资源所有者密码凭据授权流程,但我建议不要使用它,因为它不适用于具有MFA的帐户。 该流程允许“非交互式”身份验证。 但如果需要互动,它就会失败。

OAuth / OpenId Connect“复杂”是个人意见的问题。 某些事情是他们使流程安全的方式。 重定向是必要的,因为用户登录到Office 365,而不是您的应用程序。 他们不应该给你密码。

似乎人们一直在为Go寻找MS Graph库:https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator/issues/53。 目前还没有官方存在:/