0

我有一个包含电子邮件和密码的数据库,以及一个 Flutter 应用程序,让这些用户通过提供他们的电子邮件和密码(老式方式)来登录应用程序。

现在,其中一些用户是组织的一部分,该组织有一个单独的网站,他们使用 Microsoft/Office 365 帐户登录。当然,他们也希望能够使用他们的 Office 365 帐户登录我的应用程序,而不是必须记住并在应用程序中输入与他们通常在其组织网站上使用的密码不同的密码。

所以我一直在查看他们的网站,它使用 Microsoft Azure 作为后端。从他们当前的登录页面中,我可以找到tenantID、和. 由此我可以从授权端点获取授权码。但是,由于我的应用程序未在组织 Azure 帐户中注册,因此我没有 a ,因此我无法调用令牌端点并获取.clientIDredirectURLscopelogin.microsoftonline.comclientSecretidToken

我正在使用 WebView 来显示他们组织网站的登录信息,因此当他们被重定向时,我可以从重定向 URL 中获取授权代码。

所以我的问题是我是否可以直接使用授权码来验证用户是否已使用其 Office 365 帐户成功登录?我只需要知道用户在组织中有一个帐户,并且他们可以提供有效的电子邮件和密码来登录。

如果他们被重定向到带有授权代码的重定向 URL,则意味着他们成功登录。然后我可以认为他们也登录到我的应用程序,基于提供给 Office 365 授权端点的电子邮件。因为如果他们无法登录 Office 365,他们就不会获得授权码,对吧?

4

1 回答 1

0

不,授权代码仅对身份提供者有意义,在本例中为 Azure AD。它对您的应用程序没有任何证明。您可以做的是response_type=code+id_token在授权 URL 中尝试。如果 ID 令牌已配置为可从授权端点返回(这在应用程序注册配置中完成),您将获得一个可以验证的签名 id 令牌。

于 2020-10-24T08:15:16.980 回答