Azure active directory 管理单个B2C租户内不同应用程序的用户限制

Azure active directory 管理单个B2C租户内不同应用程序的用户限制,azure-active-directory,azure-ad-b2c,Azure Active Directory,Azure Ad B2c,在单个Azure AD B2C租户中,我有一个用户目录。另外,我有2份注册申请。称它们为App1和App2 假设用户已经注册了来自(并被重定向回)App1的帐户,现在该用户位于公共用户目录中,他/她也可以登录到App2,我对此无能为力 这对我来说没有多大意义,我需要限制它。我如何控制用户可以访问哪些应用程序?用户可以访问任意数量的已注册应用程序。我似乎在Azure门户中找不到 当然,我也可以在应用程序端应用任何解决方案,例如通过检查一些声明或其他内容,但我仍然需要知道如何管理这些限制。(这可能是

在单个Azure AD B2C租户中,我有一个用户目录。另外,我有2份注册申请。称它们为App1和App2

假设用户已经注册了来自(并被重定向回)App1的帐户,现在该用户位于公共用户目录中,他/她也可以登录到App2,我对此无能为力

这对我来说没有多大意义,我需要限制它。我如何控制用户可以访问哪些应用程序?用户可以访问任意数量的已注册应用程序。我似乎在Azure门户中找不到


当然,我也可以在应用程序端应用任何解决方案,例如通过检查一些声明或其他内容,但我仍然需要知道如何管理这些限制。(这可能是一种完全定制的方式)

您必须在B2C中实现您在应用程序中所说的内容

通过检查一些索赔或其他东西

除了您的B2C用户旅程之外,您还将引入一个先决条件来检查索赔是否存在或是否等于某个值。这需要自定义策略。没有一种简单的方法可以“出错”,但您可以创建一个自断言页面,该页面只显示一条带有伪输入声明的错误消息

您最好在应用程序中构建这种逻辑

 <OrchestrationStep Order="3" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="false">
          <Value>app_permission</Value>
          <Value>portalapp</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="AppRestrictionExchange" TechnicalProfileReferenceId="TechnicalProfileHere" />
      </ClaimsExchanges>
    </OrchestrationStep>

许可证
波塔拉普
SkipThisOrchestrationStep

但如何持久化目录中的用户是否拥有声明?(例如,如您所述的“应用程序许可”=“portalapp”)。它必须附加到用户。我们在应用程序中没有用户存储库,我宁愿将其存储在Azure端。@thmshd我对“App\u permission”的引用将是您在B2C租户中对用户设置的扩展架构属性。看见