在microsoft dynamics内部的iframe中打开的django webapp中自动登录
情况: 我已经使用django开发了一个webapp,它使用默认的身份验证中间件。所有视图都是在microsoft dynamics内部的iframe中打开的django webapp中自动登录,django,active-directory,azure-active-directory,microsoft-dynamics,Django,Active Directory,Azure Active Directory,Microsoft Dynamics,情况: 我已经使用django开发了一个webapp,它使用默认的身份验证中间件。所有视图都是login\u必需的。现在,客户希望他什么时候登录CRM,然后webapp将在iframe中打开,他也应该在django webapp中自动登录 问题: 可以在CRM中的iframe内打开webapp。但django webapp如何为登录CRM的用户创建会话?Django使用自己的身份验证,CRM使用自己的身份验证。即使我将Django身份验证与azure active directory链接,仍然必
login\u必需的
。现在,客户希望他什么时候登录CRM,然后webapp将在iframe中打开,他也应该在django webapp中自动登录
问题:
可以在CRM中的iframe内打开webapp。但django webapp如何为登录CRM的用户创建会话?Django使用自己的身份验证,CRM使用自己的身份验证。即使我将Django身份验证与azure active directory链接,仍然必须在iframe中输入用户名和密码。我无法确定如何自动登录
更新
我没有CRM屏幕截图,但我在microsoft团队中有相同的用例
现在在这张图片中,我的webapp在teams选项卡中打开,我知道的选项卡使用iframe打开页面。屏幕截图中询问的用户名和密码由Django认证后端验证。输入并验证用户名和密码后,仪表板将打开
要求:
我不希望这个登录页面被打开,我希望仪表板将直接打开。简单地说,团队中的身份验证也应该验证我的Django应用程序
在中,用户名(userPrinicpalName)和密码是必需的,在iframe中打开的django webapp将如何访问用户名和密码?我不认为客户端可以简单地将密码存储在浏览器的本地存储中,因为密码是加密的
第二种方法:
此时仪表板将在www.example.com
打开。我可以创建一个类似www.example.com/
的url,当这个url到达我的服务器时,我可以验证这个id\u令牌
并验证用户。但这里的问题是CRM是否能够在iframe src中提供id\u令牌
p.S:我没有带Microsoft Dynamics屏幕截图,但我很快在团队中实现了这一点,因为我认为用例是相同的。最新
或者你可以使用
职位
您可以使用来实现此要求。
我相信iframe打开的任何页面都应该有一个参数来记录用户信息,对吧,假设它是一个id令牌。在iframe中打开页面时,当页面初始化时,即使用$(documnet).ready(function(){})
中的ROPC流
以静默方式登录。不会有弹出窗口提示您登录,等待成功之后,回调方法将获取id令牌,以便您可以实现您的需求
以上只是一个想法,具体实现可以根据项目的需要进行编码
有关更多详细信息,您可以在下面的帖子中参考我的答案。
@JasonPan谢谢你的回答。我将尝试你的方法,并一定会接受它。我需要实现这一点。再次感谢您抽出时间回答此问题。谢谢,您可以先尝试一下,如果您有任何问题,可以与我联系。您可以检查更新并指导我吗?我所研究的,ROPC需要用户名和密码,我将如何访问它?@Amandepsinghsawhney我已经更新了我的答案,您也可以根据您的需要进行选择。@Amandepsinghsawhney如果我的解决方案启发或帮助了您,您将我的答案标记为,Tks~谢谢您的答案,我也对其进行了投票,但它并没有解决我的问题。非常感谢你抽出时间来帮助我。