我要实现的总体目标是将我的应用程序添加到Microsoft的单一登录范围内(登录后,用户可以访问其他Microsoft服务以及我的应用程序,而无需登录再次)
更详细的情况:如果用户已经登录了他们的Microsoft帐户,然后他们访问我的Web应用程序,则我的应用程序将执行以下任一操作:如果Microsoft帐户已与该用户之一链接,则该应用程序将登录用户2:如果没有这样的用户,则显示正常的登录表单和“链接”按钮。 (这里的链接是指将Microsoft帐户ID添加到保存用户信息的表记录中)
我不确定它是否是有效/合理的功能。通常,类似的流程是为用户提供一个“使用Microsoft登录”按钮,然后用户单击它以启动OAuth2
流程。
这里最困难的部分是,当用户首次访问我的应用程序时,如何在不单击“使用Microsoft登录”按钮的情况下获取用户的Microsoft帐户信息(id,登录状态)。
当前,这是通过以下方式完成的:在页面加载时,按照以下文章启动对AZURE的OAuth2
代码流身份验证(我的应用程序已在其中注册):
但是每次访问应用程序时,我都想对Azure执行OAuth
。
这将返回一个Microsoft帐户ID令牌,其ID可用于与我的应用程序中的内部用户进行映射。此过程还可以判断用户当前是否已退出Microsoft帐户。(如果用户未登录到Microsoft,则不要将该用户登录到我的应用中,而是提供登录表单)