java - 为 Skype for Business Online 开发 UCWA 应用程序
问题描述
我正在尝试开发一个简单的 java 客户端,该客户端需要访问 Skype for Business API 以设置在线会议(即,我需要通过调用 UCWA API 来检索简单的设置会议 URL)。
我一步一步地遵循了这个微软教程:
https://docs.microsoft.com/en-us/skype-sdk/ucwa/developingucwaapplicationsforsfbonline
我有一个 Office 365 商业高级版许可证并且我配置了一个自定义域(在区域 DNS 文件中正确注册和添加);
- 我在 Azure 上配置并注册了我的 java 客户端应用程序(注意为 Skype for Business 功能分配所需的委派权限);
- 我执行了登录阶段,Azure 能够识别我;
- 我执行了自动发现阶段以检索用户的 UCWA 主池;
- 我向 Azure oauth2 端点发送了一个 GET 请求,响应为 401 错误(这是身份验证握手的预期行为);
- 不幸的是,当我使用隐式授权流请求访问令牌时失败了:Azure 使用登录 HTML 页面而不是包含 oauth2 访问令牌的 json 对象进行响应。
这个 GET 请求有什么问题?
GET https://login.microsoftonline.com/oauth2/authorize?
response_type=id_token
&client_id=my_application_client_id
&redirect_uri=configured_redirect_uri
&state=UUID_generated_code
&resource=UCWA_home_pool
HTTP/1.1
这个 GET URL 看起来像用于登录阶段(第 3 步)的那个;我怀疑这不是正确的请求 URL。
我尝试将我的域放在 URL 上:
https://login.microsoftonline.com/my_domain_name/oauth2/authorize
我尝试输入一个通用域名(如文档中所述):
https://login.microsoftonline.com/common/oauth2/authorize
但 Azure 仍会以登录页面(以及响应代码 200 OK)进行响应。
有人能帮助我吗?
解决方案
下载最新的清单文件后,请检查应用程序清单中的 oauth2AllowImplicitFlow 属性。它应该设置为 true 才能正常工作。如果它仍然是错误的,那么我希望重定向到您所看到的登录页面。
此处提供更详细的步骤 - 为您的应用配置 OAuth 隐式授权流程
推荐阅读
- android - bundle.containskey("xx") 返回 true 但系统抛出 npe
- git - 更改 GitLab 的安装目录
- android - 动态特征模块第三方库无法访问资源
- java - 使用java将数据从Dynamo DB推送到elasticsearch
- c# - 如何使用 Entity Framework 6 创建内存中的 DbContext?
- python - 获取匹配记录的索引
- linux - Crontab 覆盖 kitchen.sh pentaho 的工作
- node.js - TCP还是UDP?视频流的制作延迟
- r - 使用R找到两个具有四个未知数的非线性方程的决策边界
- azure - 如何在 azure 持久功能中取消正在运行的触发功能?