使用Azure AD进行身份验证,在最后一步访问Skype for Business时失败

问题描述 投票:1回答:1

我正在按照本指南(https://docs.microsoft.com/en-us/skype-sdk/ucwa/authenticationusingazuread)访问Skype for Business。一切都很顺利,直到最后一部分,但让我们一步一步做。我正在构建我的.net控制台应用程序来执行此操作,但为了正确解释您遇到的问题,我将直接通过Insomnia(用于进行http调用的软件)向您显示http调用。

第1步:向https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root提出GET请求我命中200,作为答案,我收到了这个:

enter image description here

第2步:我使用用户链接。所以我向https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user发送了一个http请求,我获得了401 Unauthorized(一切仍然正确)。在答案的标题中,它指向身份提供者请求授权(authorization_uri)

enter image description here

第3步:我使用该链接授权我的应用程序,该应用程序有自己的client_Id(我隐藏在下面的屏幕截图中)。这就是我撰写电话的方式:

enter image description here

如果我发送此http请求,我会被重定向到它要求我的个人登录的页面,通过插入我的凭据,我成功登录并点击404,在答案中我收到了我的访问令牌。

步骤5:我将访问令牌用于步骤1的相同AutodiscoverService链接。这是注册我的应用程序。我点击了200,我收到了访问Skype for Business的链接。

enter image description here

最后(这就是出错的地方)我向带有Bearer令牌的应用程序链接发送POST请求,我收到403 Forbidden。我想我正确地遵循指南,但我无法弄清楚为什么我可以在最后一步访问资源。

编辑:

授予权限。我隐藏了名称,因为它包含我公司的名称。但它与我的登录域相同。

enter image description here

authentication oauth-2.0 azure-active-directory skype-for-business ucwa
1个回答
1
投票

因此,您生成的令牌授权您访问https://webdir1e.online.lync.com上的资源,您已经完成了获取一组新资源,包括位于不同主机上的“应用程序”资源:https://webpooldb41e14.infra.lync.com

实际上,您必须获得另一个OAuth令牌,该令牌授权您获取应用程序资源,然后您可以POST到该令牌以在UCWA中生成会话。

作为旁注...如果您已在Azure中定义了自己的单租户应用程序,该应用程序已被授予SkypeForBusinessOnline的权限,那么我认为您应该定位表单的授权和身份验证端点:

https://login.microsoftonline.com/ {tenantID} /oauth2/v2.0/authorize https://login.microsoftonline.com/ {tenantID} /oauth2/v2.0/token

另外我应该补充一点,如果您正在尝试编写一个公司用户将使用的可信安全客户端,我建议您查找资源所有者密码凭据身份验证流程。它允许您直接命中我上面提到的令牌端点并交换访问令牌的用户名/密码凭据。然后,您可以轻松地管理自动发现和应用程序创建,而无需来回重定向到Azure。

https://docs.microsoft.com/mt-mt/azure/active-directory/develop/v2-oauth-ropc

© www.soinside.com 2019 - 2024. All rights reserved.