Azure AD B2C:Graph API邀请用户接受后如何完成注册?
Azure AD B2C 受邀用户直接注册及重定向参数问题解决
受邀用户兑换邀请后直接进入注册页(无需自定义策略)
- 先配置B2C用户流限制:
- 进入Azure AD B2C后台 -> 用户流,选中你的注册/登录用户流
- 切换到「注册设置」标签,勾选「仅允许受邀用户注册」并保存。这会关闭公开注册入口,只有受邀用户能通过邀请链路完成注册。
- 调整Graph SDK发送邀请的核心参数:
- 调用
invite接口时,把redirectUri设置为B2C注册流程的授权端点,而非应用首页。端点格式示例:https://<你的B2C租户>.b2clogin.com/<你的B2C租户>.onmicrosoft.com/<注册用户流ID>/oauth2/v2.0/authorize?client_id=<应用客户端ID>&response_type=code&redirect_uri=<应用回调URI>&scope=openid%20offline_access&state=<随机状态值> - 确保
sendInvitationMessage设为true,invitedUserType设为Guest。用户点击邀请邮件链接兑换OTP后,会直接进入B2C的注册流程,无需手动跳转。
- 调用
重定向URI添加标识参数的解决方法
- 方法一:在
redirectUri中拼接自定义参数
发送邀请时,将redirectUri设置为包含邀请ID或用户ID的地址,比如:
用户兑换邀请后会被重定向到该地址,应用可通过这些参数识别用户并更新状态。https://你的应用域名/callback?inviteId=<邀请ID>&targetUserId=<待邀请用户ID> - 方法二:用
invitedUserAdditionalData存储元数据
在Graph SDK的邀请请求里,添加invitedUserAdditionalData字段存入自定义标识,示例:
用户完成兑换后,应用可通过Graph API查询该用户的扩展属性,获取元数据来更新状态。{ "invitedUserAdditionalData": { "inviteStatus": "pending", "inviteSource": "app-invite" } }
内容的提问来源于stack exchange,提问作者Kalana Dananjaya
相关产品推荐
相关产品推荐

