从 Azure AD B2C 中的用户流获取 phone

Get phone from User Flow in Azure AD B2C

我在 Azure AD B2C 中设置了一个使用 Phone/Email 注册身份提供程序的用户流。 该过程到目前为止有效,但我想获取用于登录的 phone 号码,以将其存储在我的应用程序的用户配置文件中。 我打算稍后使用该号码发送消息。

我已经四处寻找了几个小时,但找不到任何方法来声明它。

是否有任何方法可以检索该值,例如在应用程序中通过单独的请求从 B2C AD 获取它?

如果 phone 号码是为 multi-factor 身份验证收集的,您无法在使用 built-in 用户流时使用图形 API 或作为声明读取它。

如果您要切换到自定义策略,您可以将策略修改为 return 作为 JWT 令牌中的声明,向其写入自定义属性或使用 API 调用将其保存在其他地方。

使用自定义策略,只要您使用默认声明,您仍然无法使用图表 API 读取 phone 号码。您需要对入门政策进行一些修改,以将其保存到自定义属性或移动声明中,以便您可以使用图表 API 访问它。您还需要确保额外声明与默认声明同步。

注意:如果您使用 phone 用户流程文档中提到的 here 注册登录,您将能够获得带有图形调用的用户号码。在同一文档中对此进行了解释。

例子 https://graph.microsoft.com/v1.0/users/{object_id}?$select=identities

"identities": [
        {
            "signInType": "phoneNumber",
            "issuer": "contoso.onmicrosoft.com",
            "issuerAssignedId": "+11231231234"
        }
    ]