生产中的魔术链接和"message.state is null or empty"



我们从这里开始学习魔术链接的示例https://github.com/azure-ad-b2c/samples/tree/master/policies/sign-in-with-magic-link

我们可以生成魔法链接,用"id_token"重定向到我们的应用程序。但是我们得到错误信息。状态为null或为空。

我们假设我们需要遵循"在您的生产应用程序中使用此"一章中的生产使用说明。在上面的页面上,但我们不明白如何使用"身份验证库"。为我们生成所描述的神奇链接。也许这个库会附加一个"state";到我们的神奇链接,然后由B2C验证。

是否有任何工作的样例代码,在生产系统的魔术链接?

更新:

我们已经使用了B2C策略"B2C_1A_signup_signin"(本地和社交帐户),回调路径"/signin-oidc"因此,我们添加了"services.AddMicrosoftIdentityWebAppAuthentication"magic链接的另一个回调路径"/signin-oid -magic"与第二个策略"B2C_1A_signup_signin_magic"

我们手动生成魔法链接(就像在示例项目中一样)使用"/signin-oid -magic">

B2C正确地重定向到这个回调路径,并且引发第二个回调路径的OpenIdConnectEvents,但是在事件OnRemoteFailure中,我们得到错误消息"message.state"是零。我们应该合并这两项政策吗?还是我们的方法有问题?

您需要将hint参数传递给您的应用程序,并让您的应用程序身份验证库在身份验证请求中传递给B2C。

JS: https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-spa-app-options pass-an-id-token-hint

。Net: https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-web-application-options pass-an-id-token-hint

我自己也为此挣扎了一段时间。我现在理解的方式是,为了让魔法链接在从广告B2C获得令牌后正确重定向到您的应用程序,它不应该直接传递到自定义策略的"现在运行"链接,而是首先传递到您的应用程序以提取令牌,然后传递到OnRedirectToIdentityProviderFunc,如上面答案中提到的文档中所述。它认为这确实意味着您需要将索赔提取技术配置文件合并到与常规登录/注册流程相同的自定义策略中,并且您不能有两个单独的自定义策略,但是我希望自己对此得到更多的澄清,因为从示例中肯定不明显这个用例。如果它们只能重定向到jwt,那又有什么用呢?Ms,但不是实际应用

最新更新