0

我正在创建应用程序,其中我使用带有自定义策略的 AD B2C 来实现用户管理功能。但是,在我的应用程序中,我需要支持多种类型的帐户,而每种帐户类型都应该有不同的注册过程(要收集不同的用户数据)。我的问题是,实现这一点的最佳方法是什么?

4

2 回答 2

1

根据您可能有的其他要求,您可能会创建许多单独的注册策略或单个注册策略,您可以向其中传递参数(帐户类型),该值将决定使用特定自断言配置文件执行哪个步骤。

如果您的应用程序希望在注册过程中检索访问令牌并且您的后端验证 tfp 名称,那么您可能需要一个单一的策略。如果不是这种情况,并且用户需要在注册后登录,那么您可能会很乐意使用许多策略。

另一个区别是 UserJourney 的构造方式。在许多策略的情况下,您可能(取决于您希望为特定帐户类型设置多少个自我声明的步骤)在 EXT 策略中有一个简单的 UserJourney,而在 RP 中只有一些覆盖(选择不同的自我声明的技术配置文件)。当您决定采用单一策略时,您将需要专门针对特定帐户类型的步骤,并定义先决条件。

这还取决于您的整体身份设置有多大。我有很多策略(超出标准的 100 个/租户配额),所以我个人更喜欢多用途策略,而不是在许多策略中拆分功能并最终获得更多。

我相信你的问题没有一个完美的答案。有许多因素决定哪种方法最适合您。即使像样式(页面模板)这样简单的东西也会影响它。

于 2021-08-17T13:38:46.733 回答
1

我建议您在应用程序页面上为用户提供 2 个不同的按钮,例如 UserType1 和 UserType2,这些按钮应该调用不同的用户流程。有 2 个选项可用于此目的:

  1. 创建 2 个单独的策略文件链
  2. 在 Base 或 Extensions 文件中创建多个用户旅程,并使用多个 RP (signup_signin) 文件引用不同的用户旅程。

为了创建两组策略文件,您可以选择创建两个单独的链,如下所述:

B2C_1A_TRUSTFRAMEWORKBASE > B2C_1A_TRUSTFRAMEWORK扩展 > B2C_1A_SIGNUP_SIGNIN

B2C_1A_TRUSTFRAMEWORKBASE1 > B2C_1A_TRUSTFRAMEWORKEXTENSIONS1 > B2C_1A_SIGNUP_SIGNIN1

但是,如果要使用 2 个 RP (B2C_1A_SIGNUP_SIGNIN) 文件,则不必使用 2 组策略文件。您还可以考虑在 B2C_1A_TRUSTFRAMEWORKBASE 或 B2C_1A_TRUSTFRAMEWORKEXTENSIONS 文件中创建 2 个单独的用户旅程,例如,<UserJourney Id="SignUpOrSignIn"><UserJourney Id="SignUpOrSignIn1">.

一旦您配置了两个用户旅程,您可以在 B2C_1A_SIGNUP_SIGNIN 文件中参考<DefaultUserJourney ReferenceId="SignUpOrSignIn" />,在 B2C_1A_SIGNUP_SIGNIN1 文件中,参考<DefaultUserJourney ReferenceId="SignUpOrSignIn1" />

如果您使用此配置,策略文件链将如下所示:

B2C_1A_TRUSTFRAMEWORKBASE > B2C_1A_TRUSTFRAMEWORK扩展 > B2C_1A_SIGNUP_SIGNIN

B2C_1A_TRUSTFRAMEWORKBASE > B2C_1A_TRUSTFRAMEWORK扩展 > B2C_1A_SIGNUP_SIGNIN1

此外,在这两种情况下,RP 文件 (SIGNUP_SIGNIN) 的名称将有所不同。在选项 1 中,所有三个文件都有不同的名称,在选项 2 中,基本文件和扩展文件将相同,只是 RP 文件不同。无论您选择哪个选项,您都可以在上面提到的 URL 中指定 RP 文件的名称 (SIGNUP_SIGNIN)。B2C 支持上传 200 个策略文件,因此您可以选择选项 1,而不必担心耗尽策略文件的允许限制。

于 2021-08-17T16:22:03.877 回答