无重定向的Azure Active Directory B2C用户注册(非交互式)

bis*_*uth 4 azure-active-directory azure-ad-graph-api azure-ad-b2c

我正在构建一个本地iOS应用程序,并希望使用AADB2C作为身份提供者,用户可以在其中登录,注册,重设密码等。

我无法找到一种方法,让用户使用AADB2C(或与此相关的常规AAD)进行注册,而无需将他们重定向到(可自定义但仍然可以)Microsoft网站。明确地说:我想让客户从本机iOS窗体在AAD上创建用户帐户,而最好不要通过REST请求将其重定向到网站。(如“创建消费者用户帐户”下的此处所示:https : //docs.microsoft.com/zh-cn/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet

Sac*_*aca 6

您可以通过iOS应用创建用户吗? 是的,按照您显示的文章使用Graph API。不过,您目前只能创建本地帐户。

但是鉴于当前的操作方式,您需要非常小心,因为创建用户的能力需要Directory.ReadWrite.All权限,该权限还允许所有其他类型的操作。您不应将具有这些权限的应用程序的客户端ID和客户端密钥放到iOS应用程序中。相反,您将需要创建一个后端服务,该服务公开一个iOS应用程序的API以调用用户创建。

但是,更重要的是,您将无法执行的操作是在没有重定向的情况下登录用户(这是B2C注册策略所执行的操作)。为了从您自己的UI中执行此操作而不进行重定向,您将需要Azure AD B2C支持资源所有者密码凭据流,以便在创建用户之后可以使用此流对其进行登录并获得令牌。

注意:您还需要禁用电子邮件验证,以便您可以在创建用户后立即利用该用户帐户。您可以通过页面UI自定义>本地帐户注册页面>电子邮件地址>需要验证>否,在“注册策略”或“注册/登录策略”中进行设置。

最后,作为参考,Azure AD B2C的作品中有一个功能:客户拥有的域,与UI自定义结合使用,将使您拥有看起来像自己的注册/登录页面,具有您自己的URL,没有Microsoft的痕迹供最终用户查看。