【问题标题】:Can a tenant resource be shared with a different (B2C) tenant user after authenticating?租户资源是否可以在身份验证后与其他 (B2C) 租户用户共享?
【发布时间】:2021-06-18 20:54:50
【问题描述】:

我想让 B2C 租户 (b2ctenant.onmicrosoft.com) 访问位于我的主订阅租户(例如 company.com)中的函数应用。

如果用户通过 B2C 租户 (b2ctenant.onmicrosoft.com) 进行身份验证,我如何授权他使用其他租户 (company.com) 的资源?

我尝试为 B2C 租户 (b2ctenant.onmicrosoft.com) 中的应用授予 company.com 租户资源的权限,但 company.com 的 API 或资源未显示为可用于为 B2C 应用添加权限.

编辑:使用@Jas Suri 的设置和错误结果进行编辑 - MSFT 指导:

无法解析快照:

我从 B2C 用户流程中获取颁发者 URL->运行用户流程打开并在顶部显示一个链接,如果遵循该链接,则显示颁发者 URL https://XXX.b2clogin.com/XXX.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_XXX_userflow

但我也尝试过,但与您所说的使用 B2C 用户流中的 URL 的发布者 URL 相同的错误->在顶部运行用户流 URL:https://XXX.b2clogin.com/XXX.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_xxx_userflow

身份提供者的错误消息是“在当前租户中找不到 ID 为 [weapi in B2C 租户] 的应用程序。租户 ID:[Contoso 租户的 ID]”,这是有道理的,因为 webapi 在 B2C 租户中,而不是在 Contoso 中

我无法使用 Authentication (Classic),它卡住了,不让我使用它,只能返回 Authentication:

身份验证刀片中没有“禁用”选项,仅允许未经身份验证的访问。我这样做了,但我仍然无法使用 Authentication Classic 并显示与以前相同的消息 - 此应用程序是使用新的身份验证体验配置的。单击此处访问身份验证(预览)。

【问题讨论】:

    标签: azure azure-active-directory azure-ad-b2c


    【解决方案1】:

    B2C 租户:
    1.1。为您的 Web 应用程序创建应用程序注册
    1.2.为您的 Web API(函数应用程序)创建应用程序注册
    1.3.在 Web API 应用 reg
    上公开范围 1.4.为 (3) 中的范围向 Web App App reg 添加权限。 授予管理员同意
    1.5。打开 AAD B2C 用户流/自定义策略的“立即运行”链接,并记下刀片顶部的 /.well-known/openid-config URL

    Contoso 租户:
    2.1。创建您的函数应用
    2.2.使用 AAD 身份验证配置它
    2.3.使用高级身份验证选项
    2.4.输入来自 [1.1]
    的 clientId 2.5.输入 Issuer URL 作为 [1.5] 中的值

    Azure 函数将仅接受来自一个 AAD B2C 用户流 [1.5] 的令牌,该用户流通过来自 [1.1] 的 Web 应用进行身份验证。

    【讨论】:

    • 谢谢我之前试过这个,当我编辑身份时我得到错误我已经添加到身份验证:“应用程序注册:无法从注册的应用程序 ID 解析应用程序注册名称”和“支持的帐户类型无法从注册的应用程序 ID 解析帐户类型信息”。使用“高级”身份验证选项是什么意思:门户显示功能应用的身份验证和身份验证(经典)。我选择了 Authentication->Add Provider->Identity Provier->Microsoft->Provie Details Existing App->Entered client id[1.1]->enter Issuer URL->audience left empty.
    • Identity Provider 的错误信息是 Application with ID [weapi in B2C tenant] not found in the current tenant。租户 ID:[Contoso 租户的 ID] 并且有意义,因为 webapi 在 B2C 租户中,而不是在 Contoso 中
    • 尝试 - 身份验证(经典) -> Azure AD -> 高级
    • 它不允许我,当我输入身份验证(经典)时,它说“此应用程序是使用新的身份验证体验配置的。”。而且没有其他选择,我不能 - 见上面的快照
    • 禁用其他刀片中的身份验证,然后尝试经典。
    猜你喜欢
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多