代码之家  ›  专栏  ›  技术社区  ›  Dan Mayor

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

  •  1
  • Dan Mayor  · 技术社区  · 6 年前

    我希望使用Azure AD作为我的身份验证系统,但不想让我的用户跳转到Microsoft登录页面,因为这会造成中断,而且用户可能有或可能没有个人和/或工作帐户这一事实似乎让大多数人很困惑。

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

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

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

    我的问题是,有没有一种方法可以在不使用oAuth的情况下通过Microsoft帐户登录来验证凭据?如果是这样的话,有人能提供参考和/或一点psuedo代码让我朝着正确的方向前进吗?提前感谢!

    1 回复  |  直到 6 年前
        1
  •  5
  •   juunas    6 年前

    基本上没有。 据我所知,没有其他OAuth/OpenIdConnect身份提供者提供这种服务。 如果帐户需要多因素身份验证怎么办?

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

    OAuth/OpenId连接“错综复杂”是个人意见的问题。 某些事情是他们确保流程安全的方式。 重定向是必要的,因为用户正在登录Office 365,而不是您的应用。 他们不应该把密码给你。

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