当前位置: 首页 > 知识库问答 >
问题:

Azure使用Microsoft添加用户身份验证方法。图表GraphService客户端

公良运锋
2023-03-14

我正在使用GraphServiceClient创建一个新用户,其中signEntype作为用户名,如下所示:

            var user = new User
        {
            AccountEnabled = true,

            GivenName = "Joe",
            Surname = "Bob",
            DisplayName = "Name",
            Mail = "joe@bob.com",
            MobilePhone = "111111111",
            Identities = new List<ObjectIdentity>()
            {
                new ObjectIdentity
                {
                    SignInType = "userName",
                    Issuer = "<Issuer...>",
                    IssuerAssignedId = "someName"
                },
            },
            PasswordProfile = new PasswordProfile
            {
                ForceChangePasswordNextSignIn = false,
                Password = "<pass>"
            },
            PasswordPolicies = "DisablePasswordExpiration,DisableStrongPassword",
        };

        await gsc.Users.Request().AddAsync(user);

在Azure中创建该用户后,我可以使用该帐户登录到使用B2C登录策略的应用程序。但是,当我想为该用户调用ResetPassword策略时,在成功通过电子邮件验证后,我得到了一个错误:“无法找到提供的用户ID的帐户。”。经过一些尝试和错误,我发现当我填写电子邮件输入时,azure用户配置文件选项卡“身份验证方法”中缺少数据,一切正常,用户可以重置密码。

因此,我正在寻找一种方法,如何在创建期间将用户电子邮件填充到“身份验证方法”这一节中。

共有1个答案

轩辕海
2023-03-14

在这种情况下,如果希望通过图形API创建用户,则无法填充strongAuthenticationEmail属性usng Graph API。此属性保存与基于用户名的帐户关联的电子邮件,用于密码重置操作。用户流将在密码重置期间读取此属性。因此,这不起作用。

您需要为基于用户名的旅程使用自定义策略,并将所有strongAuthenticationEmail实例替换为extension\u whatever。然后在图形API负载中,将电子邮件地址插入名为extension\u GUID\u whatever的键中。

https://github.com/azure-ad-b2c/samples/tree/master/policies/username-signup-or-signin

 类似资料:
  • 我已经安装了OpenLDAP服务器。 如何在LDAP服务器中添加用户(条目)?以及如何打开该服务器的命令窗口,以便在其上运行ldap命令: :我的要求是:在我的应用程序中,我想对Openldap服务器中添加的用户进行身份验证,但我只能在windows os上安装Openldap服务器,但如何添加用户我无法获得方法。在Windows7操作系统上安装openLDAP whic时添加用户的方法是什么?这

  • 问题内容: 我有以下代码使用SSL将服务器与客户端连接,现在我想添加客户端身份验证: (我有一个服务器密钥库(JCEKS类型)和一个客户端密钥库(JKS类型),服务器使用了一个信任库(证书),在其中我导入了两个证书,因为我也想使用此信任库进行客户端身份验证) 客户代码: 服务器代码: 在此先感谢您的帮助。 编辑:我在服务器端添加此代码: 但是,如果我删除cacerts中的客户端证书,则连接不会给我

  • 我不熟悉SSL和证书。我一直在做关于客户端证书认证的研究。我看过这个和wiki。 因此,如果我必须为我的B2B REST服务实现客户端证书身份验证解决方案,我应该执行以下操作 要求客户端生成自己的私钥,并为其公钥生成证书(CA 颁发?)。通过电子邮件或 USB 闪存盘发送该证书。 在服务器端将客户端的公共证书导入信任存储区并启用客户端身份验证 在握手期间,客户端会出示其证书并进行身份验证,因为服务

  • 授权服务器为进行客户端身份验证的目的,为Web应用客户端创建客户端凭据。授权服务器被鼓励考虑比客户端密码更强的客户端身份验证手段。Web应用程序客户端必须确保客户端密码和其他客户端凭据的机密性。 授权不得向本地应用程序或基于用户代理的应用客户端颁发客户端密码或其他客户端凭据用于客户端验证目的。授权服务器可以颁发客户端密码或其他凭据给专门的设备上特定安装的本地应用程序客户端。 当客户端身份验证不可用

  • 在向令牌端点发起请求时,机密客户端或其他被颁发客户端凭据的客户端必须如2.3节所述与授权服务器进行身份验证。客户端身份验证用于: 实施刷新令牌和授权码到它们被颁发给的客户端的绑定。当授权码在不安全通道上向重定向端点传输时,或者 当重定向URI没有被完全注册时,客户端身份验证是关键的。 通过禁用客户端或者改变其凭据从被入侵的客户端恢复,从而防止攻击者滥用被盗的刷新令牌。改变单套客户端凭据显然快于撤销

  • 如果客户端类型是机密的,客户端和授权服务器建立适合于授权服务器的安全性要求的客户端身份验证方法。授权服务器可以接受符合其安全要求的任何形式的客户端身份验证。 机密客户端通常颁发(或建立)一组客户端凭据用于与授权服务器进行身份验证(例如,密码、公/私钥对)。授权服务器可以与公共客户端建立客户端身份验证方法。然而,授权服务器不能依靠公共客户端身份验证达到识别客户端的目的。 客户端在每次请求中不能使用一