使用MSAL.js通过angular在Azure AD中创建用户
从Web应用程序的角度来看,是否可以让用户创建一个Azure广告帐户(通过提供电子邮件、姓名、电话号码等),Web应用程序可以将其转发到Azure广告 我正在尝试使用并遵循示例,我可以有一个登录弹出窗口,提示我通过getUser()发送Microsoft电子邮件: 从样本中:使用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
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)就是这样工作的,但您需要对需求做更多的阐述。请考虑为这第二部分提出一个新问题。