簡體   English   中英

如何阻止用戶登錄,直到他們在 Azure B2C 中獲得授權

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM