如何在服务器端在Excel中实现组织帐号和身份验证? [英] How to implement "Organizational account" authentication in Excel on server side?
问题描述
我有一个Java应用程序,它以纯HTML格式提供一些报告。
我希望使用Microsoft SSO(OAuth)保护这些报告。
我能够在浏览器中做到这一点-我在Azure AD中创建了新的";AppRegister";,Getclient_id
,client_secret
,OAuth 2authentication_url
,在此应用程序中正确配置了redirect_uri
,并在浏览器中实现了OAuth流-它按预期工作。
但用户不想在浏览器中查看报告,他们希望在Excel 2019中处理它们。 它已通过组织帐户身份验证。 我相信它使用相同的OAuth 2流。
因此,我添加了WWW-Authenticate: Bearer authorization_url="https://login.microsoftonline.com/256be541-f611-4412-975e-cb56ee6fb03b/oauth2/v2.0/authorize"
现在Excel要求我输入登录名和密码,但身份验证成功后显示错误:
INVALID_RESOURCE:AADSTS500011:在名为256be541-f611-4412-975E-cb56ee6fb03b的租户中未找到名为https://localhost:8443的资源主体。如果租户的管理员尚未安装应用程序或租户中的任何用户都未同意,则可能会发生这种情况。您可能将身份验证请求发送给了错误的租户。 跟踪ID:57324bfe-ab46-4c2e-9128-a336aa287e00 相关ID:d9c4c732-76cc-4659-9d8a-d27abec617d3 时间戳:2021-02-02 16:50:13Zhttps://localhost:8443-是我的应用程序的地址,此地址将包括在应用程序注册中的REDIRECT_URI。
但我不认为提到的资源主体与reDirect_uri;有关。
那么,我如何在Azure AD中创建";资源&主体并将其命名为&https://localhost:8443";?
推荐答案
事实上,情况就是这样。根据您的错误消息,找不到https://localhost:8443
的资源体,表示您在请求访问令牌时将scope
设置为:https://localhost:8443
。
但是,您只在开始时将其设置为reDirect_uri,而没有在公开API选项卡中将应用程序ID URI设置为:https://localhost:8443
,因此当您请求资源时,错误消息将报告找不到该资源。
顺便说一下,scope
不同于redirect_uri
。作用域放置了您想要访问的资源,而reDirect_uri只是不是您想访问的资源的回调url。这就是为什么在reDirect_uri中设置url时仍然会出现错误。
这篇关于如何在服务器端在Excel中实现组织帐号和身份验证?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!