NodeJS Azure AD B2C用户可以通过哪些方法通过Graph API获取数据并将数据发布到M365环境?

fykwrbwg  于 2023-02-21  发布在  Node.js
关注(0)|答案(1)|浏览(153)

根据文档,没有"开箱即用"的方式使Azure AD B2C用户能够与M365环境交互,M365环境与用于创建Azure AD B2C租户的Azure AD租户关联。
Azure AD B2C无法用于针对Microsoft 365对用户进行身份验证。
资料来源:
我是否可以使用Azure AD B2C提供Microsoft 365的社交登录(Facebook和Google+)?
但我仍然需要能够提供此功能,即GETPOST请求M365通过图形API。
要明确的是,这是我迄今为止所取得的成就:

  • Azure AD B2C用户可以登录
  • Azure AD用户可以登录并通过Graph API与 * 他们自己的 * M365环境交互

(to启用此功能,我添加了Azure AD租户作为身份提供者(根据this article
我还没弄明白的是:

  • Azure AD B2C用户如何与Azure AD租户关联的M365环境交互?

(that创建Azure AD B2C租户)
要说明此要求的用例:

  • Company_A希望外部承包商能够向他们提交法规遵从性文档
  • 他们设置Azure AD B2C并为其外部承包商创建帐户
  • 他们在Azure上设置了Node.js/Express Web应用程序
  • 外部承包商现在可以登录Web应用程序并查看用于提交数据和附件的表单
  • 这些表单如何将数据和附件发送到Company_A的M365环境中的文档库?

我已经思考这个问题有一段时间了,不能概念化一个精神或技术模型,如何才能实现这一点。
谷歌搜索相关短语不会产生任何相关内容。
我希望有人有知识和经验,能够说:
您将需要遵循此处记录的范例,其中涉及到以下操作

    • 编辑:**

我正在读这样的文章:
Get access without a user
它讲述了以下场景:
有登录用户在场的应用程序可能还需要以自己的身份调用Microsoft Graph
并考虑将Application Permissions(与Delegated Permissions相对)添加到我的Azure AD B2C应用程序注册中。
为了验证这个想法我已经将Sites.ReadWrite.All添加为Application Permission,并授予Admin Consent该权限。(Sites.ReadWrite.All)与"主" Azure AD租户关联(与Azure AD B2C租户相反)-我使用的是msal-node,它具有名为getAuthCodeURL的方法(),您在其中传递所需的作用域。我假设如果我只是添加Sites.ReadWrite.All,它将默认应用于Azure AD B2C租户,而不是所需的Azure AD租户?

mv1qrgav

mv1qrgav1#

Azure AD B2C租户中不存在M365,你无法在那里应用Office许可证。这根本不可能。
对于Graph API,你不能使用B2C颁发的令牌来调用它。你必须使用基础AAD令牌来访问它。你的服务器将需要针对AAD B2C租户的Azure AD终结点执行Azure AD客户端凭据流,并向Graph API请求令牌。https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow
Microsoft服务scopes仅适用于你的AAD B2C租户的基础Azure AD终结点。它们在AAD B2C登录终结点上没有任何意义。因此,区别取决于所使用的终结点。
Azure AD B2C租户具有两个终结点:
抗心律失常药物:login.microsoftonline.com/tenantId
B2C:b2clogin.com/tenantId
由于M365 env不适用于B2C租户,MS Graph API只对R/W用户数据有用。但是,对于这一点,您可以只使用B2C用户流来读取/W用户配置文件数据,并将用户配置文件数据返回到B2C令牌中,因此您不必调用MS Graph API。这实际上是预期的使用模式。

相关问题