我正在为新应用程序设置Azure Active Directory B2C。根据要求,我需要发送一个邀请用户注册,只有被邀请的用户应该能够注册。似乎没有一个简单的方法来做到这一点。
目前,我使用Azure Graph SDK[1]向用户发送邀请。这实际上在AD中创建了用户,并向用户发送了一封包含邀请兑换URL的电子邮件。一旦用户点击该按钮,邀请就会兑现,用户将被发送到重定向URL。
但是邀请是通过OTP兑现的,并且用户没有得到实际注册的提示。看起来我必须重新定向到公共注册页面再次注册,这没有任何意义。
我的要求是(唯一)邀请用户获得定向到注册页面,并完成注册,而这并没有发生。我如何才能实现这一点,什么是接受邀请和赎回邀请,如果它不签署用户的点?如果我们可以在不使用自定义策略的情况下完成此操作,则这一点非常重要,因为这是一个微不足道的用例
补充问题:一旦邀请被兑换,似乎没有办法让我的应用程序知道邀请被兑换。我假设重定向URI会有一些参数,我可以用这些参数来识别我可以用来更新我的应用程序的用户。但它似乎也没有任何参数。
[1][https://learn.microsoft.com/en-us/graph/api/invitation-post](https://learn.microsoft.com/en-us/graph/api/invitation-post)
1条答案
按热度按时间hof1towb1#
简短回答:你不能使用B2C用户的邀请API。
长回答:
邀请API创建B2B用户,而不是B2C用户。由于Azure AD B2C租户也是Azure AD租户,因此它具有此功能。它旨在用于邀请管理员进入租户,以便他们可以管理用户等。但是,如果您需要一个可以使用B2C用户流/自定义策略登录您的应用的用户,则无法使用邀请API。
您需要自定义B2C流程来验证邀请码(在URL中),然后才能接受注册。您还可以使用签名的JWT将声明输入到自定义策略中。您还需要自己发送电子邮件。
我只使用自定义策略实现了类似的功能,所以我不确定是否可以使用常规用户流。
使用B2C自定义策略的示例:https://github.com/azure-ad-b2c/samples/tree/master/policies/invite-via-email