首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用微软图实现B2B

用微软图实现B2B
EN

Stack Overflow用户
提问于 2016-11-17 15:28:51
回答 2查看 493关注 0票数 0

正如您可能知道的,我正在创建一个多租户的azure应用程序,它使用的是B2B功能。

我正在测试B2B功能,经过一些研究,我得到了一个工作样本。

小结:用户根据公共权限进行身份验证,首先使用授权代码通过公共权限获取令牌,然后每次需要服务客户端时,我都会尝试从“当前租户”权限获取这些令牌。

当我请求“我”的时候,这只会对房客不利。当我向受信任的租户请求时,我得到一个错误,即目录中不存在我的用户标识符。可能是因为用户实际上并不存在于受信任的租户中。

当我请求用户时,它可以正常工作。我可以得到两者,家庭租户用户和信任租户用户。

这是正常行为吗?这是我需要以编程方式处理的东西,还是使用AD图来解决这个问题?(因此,当我知道我需要用户信息时,只需查询房屋租户?)还是这是个窃听器?

任何有关这方面的想法都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-21 08:49:41

我注意到,当您想在租户之间切换时,您需要针对当前的租户重新授权。我让它以这样的方式工作: 1.第一次登录需要针对公共端点执行。2.每当我需要一个特定资源的令牌时,我都会默默地获取令牌。

=>这可以抛出2种不同的AdalSilentTokenAcquisitionException

  • 在缓存中找不到任何东西,在本例中也没有找到刷新令牌=>,我再次将用户重定向到登录页面。
  • 当您在租户之间切换时,这是您第一次使用受信任的租户登录时,您可能会得到一个错误,例如:用户或管理员应该得到这个应用程序的同意。尽管主租户的管理员已经将应用程序添加到主租户的目录中。有谁知道为什么需要这种同意吗?所以房客A和B房客管理员都得到了同意。为什么来自A区B的可信用户仍然需要某种方式的同意?

我能够通过将用户重定向到授权请求URL来触发同意流。因此,当我得到一个(authenticationContext.GetAuthorizationRequestUrlAsync),错误代码是"failed_to_acquire_token_silently“时,当缓存被清除时,我不得不将用户重定向到authContext failed_to_acquire_token_silently生成的URL,不会找到刷新令牌,然后重定向用户辞职。

票数 0
EN

Stack Overflow用户

发布于 2016-11-20 08:19:10

如果您使用公共端点,通过B2B协作功能添加到目录中的来宾将无法在多租户应用程序或MicrosoftGraph中正确工作。

公共端点将始终针对他/她的家庭租户对用户进行身份验证,而不是针对他(她)是客人的任何租户进行身份验证。

为了成功地查询客户的/me,您需要让它们通过租户特定的端点登录到客户所在的租户.

有关更深入的解释/上下文,请参阅我对另一篇文章的回答:Can users from an unmanaged Azure AD directory, sign into an Azure AD multi-tenant application which resides in a different directory?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40658837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档