![](/img/trans.png)
[英]How to stop reload loop after logging into custom Azure AD B2C page?
[英]how to stop users logging in until they are authorised in Azure B2C
我的 Angular 8(.net 核心后端 api)应用程序使用 MSAL 库受 Azure B2C 保护。 用户进行注册,我使用 Graph API 在 B2C 中创建此用户,我有一个自定义属性isActive
我设置为False
。 应用程序管理员登录应用程序并授予访问权限,创建的用户可以访问应用程序。 我想阻止用户登录,直到他们被管理员授权并允许访问。
我的问题是如何在isActive
设置为 true 之前阻止用户登录? 目前我在我的应用程序组件中如下所示
subscribeToBroadCastServiceOnLogin() {
this.broadcastService.subscribe("msal:loginSuccess", (success) => {
if (
success.idToken.claims[
"extension_3datttttxxxxxxxxxxxxxxxxxxxxxxxxx_isActive"
] !== true
) {
window.alert("Your login is awaiting authorization from site Admin");
return this.authService.logout();
}
这种方法的问题是用户已经成功登录,我正在根据声明将他们注销。 我想知道是否有更好的方法来满足这个要求?
您的选项在 b2c 中有些受限,在普通的 azure 广告中,您将有许多选项,例如,限制登录到企业应用程序窗格,或完全禁用该用户的用户登录。
但是在 b2c 中,您没有选项 1,选项 2 仅适用于本地帐户。 这意味着使用社交电子邮件创建的任何帐户.. gmail 等,您不能禁用登录。
因此,除了您目前正在做的事情之外,唯一的其他解决方案是构建邀请流程或等效流程,这基本上会阻止注册,直到管理员批准。 因此您可以构建一些可以调用邀请注册过程的东西,如下所示: https://github.com/azure-ad-b2c/samples/tree/master/policies/invite这样在您发送之前不会创建用户邀请。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.