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

Dan*_*yor 1 go azure-active-directory azure-ad-graph-api microsoft-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 帐户登录来验证凭据?如果是这样,有人可以提供参考和/或一些伪代码来让我朝着正确的方向前进吗?提前致谢!

juu*_*nas 5

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

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

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

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

  • 非常不鼓励使用资源所有者密码凭据流,并且对于您的场景,它根本不受支持。即使它“只是一个博客站点”,您也不应该这样做。大多数博客平台(例如 WordPress)都可以轻松集成以使用 Azure AD 进行登录。 (2认同)