在没有 oAuth 的情况下针对 Azure AD 验证用户凭据
Validate user credentials against Azure AD without oAuth
我希望使用 Azure AD 作为我的身份验证系统,但不想将我的用户跳出到 Microsoft 登录页面,因为它具有破坏性,而且用户可能拥有也可能没有个人和/或工作帐户这一事实似乎让大多数人感到困惑。
我在过去几天对此进行了大量研究,但只找到了向我展示 .NET、Azure Graph 和 Microsoft Graph API 中的 AAD 库的资源。所有这些似乎都是通过 Microsoft 登录执行 oAuth 反弹的复杂系统 window。
我正在使用 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 帐户登录来验证凭据?如果可以,有人可以提供参考和/或一些伪代码让我朝着正确的方向前进吗?提前致谢!
基本没有。
据我所知,没有其他 OAuth/OpenIdConnect 身份提供者提供此功能。
如果帐户需要多重身份验证怎么办?
有资源所有者密码凭据授予流程,但我建议不要使用它,因为它不适用于具有 MFA 的帐户。
该流程允许 "non-interactive" 身份验证。
但是如果需要交互,就失败了。
OAuth/OpenId 连接 "convoluted" 是个人意见问题。
某些事情是他们使过程安全的方式。
重定向是必需的,因为用户登录的是 Office 365,而不是你的应用。
他们不应该把密码给你。
似乎人们一直在寻找用于 Go 的 MS Graph 库:https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator/issues/53。
目前还没有官方的:/
我希望使用 Azure AD 作为我的身份验证系统,但不想将我的用户跳出到 Microsoft 登录页面,因为它具有破坏性,而且用户可能拥有也可能没有个人和/或工作帐户这一事实似乎让大多数人感到困惑。
我在过去几天对此进行了大量研究,但只找到了向我展示 .NET、Azure Graph 和 Microsoft Graph API 中的 AAD 库的资源。所有这些似乎都是通过 Microsoft 登录执行 oAuth 反弹的复杂系统 window。
我正在使用 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 帐户登录来验证凭据?如果可以,有人可以提供参考和/或一些伪代码让我朝着正确的方向前进吗?提前致谢!
基本没有。 据我所知,没有其他 OAuth/OpenIdConnect 身份提供者提供此功能。 如果帐户需要多重身份验证怎么办?
有资源所有者密码凭据授予流程,但我建议不要使用它,因为它不适用于具有 MFA 的帐户。 该流程允许 "non-interactive" 身份验证。 但是如果需要交互,就失败了。
OAuth/OpenId 连接 "convoluted" 是个人意见问题。 某些事情是他们使过程安全的方式。 重定向是必需的,因为用户登录的是 Office 365,而不是你的应用。 他们不应该把密码给你。
似乎人们一直在寻找用于 Go 的 MS Graph 库:https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator/issues/53。 目前还没有官方的:/