Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MSAL.js通过angular在Azure AD中创建用户_Angular_Azure_Authentication_Azure Active Directory_Msal - Fatal编程技术网

使用MSAL.js通过angular在Azure AD中创建用户

使用MSAL.js通过angular在Azure AD中创建用户,angular,azure,authentication,azure-active-directory,msal,Angular,Azure,Authentication,Azure Active Directory,Msal,从Web应用程序的角度来看,是否可以让用户创建一个Azure广告帐户(通过提供电子邮件、姓名、电话号码等),Web应用程序可以将其转发到Azure广告 我正在尝试使用并遵循示例,我可以有一个登录弹出窗口,提示我通过getUser()发送Microsoft电子邮件: 从样本中: constructor(private broadcastService: BroadcastService , private authService : MsalService, private productS

从Web应用程序的角度来看,是否可以让用户创建一个Azure广告帐户(通过提供电子邮件、姓名、电话号码等),Web应用程序可以将其转发到Azure广告

我正在尝试使用并遵循示例,我可以有一个登录弹出窗口,提示我通过getUser()发送Microsoft电子邮件:

从样本中:

 constructor(private broadcastService: BroadcastService , private authService : MsalService,   private productService: ProductService)
  {
    //  This is to avoid reload during acquireTokenSilent() because of hidden iframe
    this.isIframe = window !== window.parent && !window.opener;
   if(this.authService.getUser())
    {
      this.loggedIn = true;
    }
   else {
     this.loggedIn = false;
   }
  }
然而,我觉得我错过了用户添加的部分。只能通过Azure门户的邀请添加用户吗?是否可以通过提供姓名、电子邮件、电话号码等并让他们在首次登录时生成密码,以编程方式将用户添加到Azure AD?

您提到的库和其他类似的Microsoft客户端身份验证库()仅在验证用户/应用程序和获取令牌以调用受保护的web API方面提供帮助

您可以查看以将用户添加到Azure AD。因此
msal angular
可以帮助您的应用程序获取令牌以向Microsoft Graph API进行身份验证,然后Microsoft Graph API可以提供所需的功能

看看微软图形API

所需权限

您的应用程序将需要相关权限才能在Azure AD中创建用户。能够写入Azure AD是一种更高的权限(与仅读取现有用户的信息以对其进行身份验证相比,这是大多数常见应用程序所需的)。确保您的用例确实需要它,并保护您的应用程序,以便只有适当的用户才能访问它

正如您所提到的,如果这是一个在客户端浏览器上运行的SPA,您将只需要在已登录用户的上下文中使用
委托权限
。(
应用程序权限
可由机密客户端(如后端守护程序应用程序)使用,但这可能与您的情况无关。)

样本请求:

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "displayName-value",
  "mailNickname": "mailNickname-value",
  "userPrincipalName": "upn-value@tenant-value.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "password-value"
  }
}
快速测试

-您可以使用它快速测试create user或任何其他Microsoft Graph API


感谢Rohit的大力响应(以及进一步阅读的链接)。一些基于体系结构的后续问题:1。那么Azure订阅默认有自己的Azure Active Directory与之关联?那么我的Microsoft Graph调用将不知何故了解订阅及其访问?如果我的Azure订阅中有多个资源组,每个业务客户一个,该怎么办?我会在Azure AD中将每个“业务组织”配置为一个“组”,并在我的所有客户中拥有一个Azure AD“资源”吗?@devway不客气!1) 当您调用Microsoft Graph API时,您将首先从Azure AD获取一个令牌以进行身份验证,因此它会根据您在调用中提供的令牌(否则您将无法获得授权)确定要使用哪一个Azure AD租户2)如何为您的客户进行细分更为主观,具体取决于您正在尝试执行的操作,它可以是一个单独的Azure广告,甚至可以是每个Azure广告的单独Azure广告租户。多租户应用程序(SaaS)就是这样工作的,但您需要对需求做更多的阐述。请考虑为这第二部分提出一个新问题。