Azure B2C(IEF /自定义策略)-状态参数

时间:2020-02-11 19:12:37

标签: azure-ad-b2c identity-experience-framework

使用注册时,我有以下登录/注册流程:

  1. 当前具有注册屏幕的用户,允许他们输入电子邮件/密码/名称
  2. 验证输入,然后发送电子邮件(rest api)并在b2c自定义扩展属性中设置验证属性

用户然后会收到带有验证链接的电子邮件

  1. 用户单击电子邮件中的链接,然后将其发送到新的用户旅程以进行回程
  2. 新用户旅程从查询字符串(电子邮件+验证码)获取参数
  3. B2C验证验证码+到期
  4. 如果已验证用户,则通过自定义扩展属性将其设置为已验证,然后将其发送到(ASP.NET MVC)应用程序。
  5. 这就是我遇到的问题-B2C 正在将jwt令牌发送回应用程序,但用户未获得“登录”权限。

我在第7步中缺少什么吗?我的查询字符串中没有“ state”变量,我是否应该以某种方式构建并包含该变量,以便B2C和应用程序可以通信?我现在迷路了。我会发布一些b2c政策xml,但不确定有什么帮助...

编辑:回复Jas:

这是唯一的方法(使应用程序为身份验证请求调用b2c)吗?我们有多个用户可以通过b2c进行注册的应用程序,因此我希望避免对每个应用程序进行更改。取而代之的是,我希望B2C可以在帐户验证后告诉该应用“此用户还可以”。

我以前看过https://github.com/azure-ad-b2c/samples/tree/master/policies/sign-in-with-magic-link(由您撰写!),但再次希望我可以避免在我们的每个应用程序中进行此工作。

这是我尝试传递给应用程序的jwt'id_token'的示例:

id_token

旁注:“ id_token”与“ id_token_hint”相同吗?谷歌搜索它们时,我找不到它们是相同还是不同。

1 个答案:

答案 0 :(得分:0)

您需要做的是在电子邮件中发送邀请链接作为应用程序的链接,例如https://myapp.com?id_token_hint=value。 然后,让您的应用程序帐户控制器对策略进行身份验证请求,以完成帐户兑换以及额外的查询参数“ id_token_hint = value”。现在,初始化您的应用程序openId中间件就可以进行正确的身份验证。

相关问题