首页 > 解决方案 > oAuth with Microsoft Azure AD with azure GUEST 帐户与员工帐户

问题描述

我在 ASP.NET Core 3.1 web mvc 应用程序中设置 OIDC。我已经为我们的员工设置了“OpenIdConnect”,通过

“权威”:“https://login.microsoftonline.com/{0}/v2.0”

其中 {0} 是公司名称 .onmicrosoft.com(或公司名称是tenantId)-> 这很好用。

我们的 AD/ADFS 中有 Azure GUEST 帐户,但上述权限不适用于这些帐户。即我的 bob@gmail 帐户在 Azure AD 中设置为来宾帐户。我已经读过它应该针对 companyname.onmicrosoft.com 但是我可以使用访客访问权限登录的唯一方法是使用权限

“权威”:“ https://login.microsoftonline.com/common/v2.0

在授权 url 中使用common我可以登录到我的应用程序。这也意味着我必须在用户登录之前知道什么类型的身份验证员工或访客帐户(即不同的按钮使用户在执行身份验证类型之间进行选择)......这不太理想。

我想为员工和来宾用户使用相同的权限..这可能吗?

如果我使用“Authority”:“https://login.microsoftonline.com/{0}/v2.0”> 其中 {0} 是租户 mycompany.onmicrosoft.com 并尝试使用我的 bob@gmail AD GUEST 登录帐户失败,我收到此错误...(有趣的是,即使 bob@gmail 是 AD 访客帐户,redirect_uri 的使用方式也很常见

找不到此 login.live.com 页面没有找到该网址的网页:https://login.live.com/oauth20_authorize.srf?response_type=code&client_id=51483342-085c-4d86-bf88-cf50c7252078&scope=openid+profile+email+offline_access&response_mode=form_post&redirect_uri=https%3a%2f%2flogin.microsoftonline.com% 2fcommon%2federation%2foauth2&state=rQIIAY2VOc_sZgGFv7lLkntJxAWlSHmlpCGS7_Vuv59EMbbHnvE6M17GdjN43_dlxhY_ACEK6jRIlClpQKmoU0Wiyy-IqCIqRAF8_AOaUz3FOdKRni-fo-_gxy9iAqeCKCIgDAAPwkmAQT7uYxAdUzgaEiEWR6D_-es3aPDJl78CH6vfvPnZy__87vUvvtq8upbZHL0LmurrzefpOLbD4_v3ZRN4ZdoM4yMBw8j7IUvqrIaSKRrGv2w23202P2w2Xz8bSIzCaEACEgcUQZI4TrxzqxOmCnymGqdRNQ6YusCwIqipbCSIkpujurqZxhV3xVALJT8RDrq7P_GFc1FGV9hhyhPvGg4sG2mpXszRMZy7mzuLmluFwiW375_9VNtOY4r-L5o-W6N_PHsVN311bZ_qfvX8x5-wMSfS6p5czlFoEqJW66unxfKdZabVC-FKaAKlnrdr4uTdyq4SPw8QAwKtS0uGuynwMRmBZanH3DQbUJwVp1nHpTRbEoN4W_BJNaFg1o6o07nP85vo7CqxuSHrrScjMriI3T7TTp1yHxTzhNeLXGDHHhZ9g_PCpNlNo7WU6D49W22BqhQ-3lRh5-b15E2mk-8H8n6jdWjB22xmU8DAl13P9nBzQlhRYqEAg7REQi2zqpNjQR4REZa1YsIJOZ74YMrmQCRsXo31sVcOR8t2q2pyd6bvWg3cna_MSNVzDkEmQKfxcCC392NnlTk_7QS0mGnMRKf9zXdEXBoV2-o31sVcOR8t2q2pyd6bvWg3cna_MSNVzDkEmQKfxcCC392NnlTk_7QS0mGnMRKf9zXdEXBoV2-o31sVcOR8t2q2pyd6bvWg3cna_MSNVzDkEmQKfxcCC392NnlTk_7QS0mGnMRKf9zXdEXBoV2-……

即使我使用的是“Authority”,但这里对 common 的引用很感兴趣:“https://login.microsoftonline.com/{0}/v2.0”> 其中 {0} 是租户 mycompany.onmicrosoft.com

标签: oauth-2.0azure-active-directoryidentityserver4adfs

解决方案


来宾用户仅与特定租户相关,因此我们需要提供租户 id 而不是 common。当前 Azure AD B2B 通用终结点不能用于来宾用户,来宾用户被视为个人帐户。


推荐阅读