Microsoft graph api 使用Azure B2C登录访问Microsoft Graph是一种社交登录,它是一个Microsoft帐户

Microsoft graph api 使用Azure B2C登录访问Microsoft Graph是一种社交登录,它是一个Microsoft帐户,microsoft-graph-api,blazor,azure-ad-b2c,blazor-webassembly,Microsoft Graph Api,Blazor,Azure Ad B2c,Blazor Webassembly,我有一个应用程序(在我的例子中是Blazor WebAssembly,但我相信这个场景也适用于其他应用程序类型),它使用优秀的(方便的)功能允许我的用户使用本地帐户或一些社交帐户注册和登录。特别是,我支持使用Microsoft帐户登录。一旦用户使用其Microsoft帐户登录,我想让用户选择在OneDrive上保存内容,而无需用户再次提供凭据即可访问 在使用Azure B2C API登录后返回的声明中,我看到有一个idp声明(这是我可以确定用户是否使用Microsoft帐户登录的方式),还有一个

我有一个应用程序(在我的例子中是Blazor WebAssembly,但我相信这个场景也适用于其他应用程序类型),它使用优秀的(方便的)功能允许我的用户使用本地帐户或一些社交帐户注册和登录。特别是,我支持使用Microsoft帐户登录。一旦用户使用其Microsoft帐户登录,我想让用户选择在OneDrive上保存内容,而无需用户再次提供凭据即可访问

在使用Azure B2C API登录后返回的声明中,我看到有一个idp声明(这是我可以确定用户是否使用Microsoft帐户登录的方式),还有一个idp\u访问令牌声明,但它不是针对Microsoft图形使用的有效JWT


idp\u访问\u令牌的性质是什么?如何使用它访问Microsoft Graph并请求其他作用域?

Azure AD B2C从身份提供商处接收访问令牌(idp\u访问令牌)。Azure AD B2C使用该令牌检索有关用户的信息。见详情

无论idp\u access\u token是否为有效的JWT,它都不能用于访问Microsoft Graph或其他作用域。如文档所述,它用于检索有关用户的信息。通常,嵌入式IdP访问令牌用于调用IdP承载的服务。但Microsoft Graph数据托管在Azure AD中,而不是Microsoft帐户端

目前,如果您想为B2C租户调用Microsoft Graph API,则必须遵循Azure AD身份验证协议。例如


如果你想调用你自己的受B2C保护的API,你应该选择Azure B2C认证协议。例如,.

谢谢。我将调用Microsoft Graph API,用于以前使用Microsoft帐户(我们集成的社交IDP之一)通过Azure B2C进行身份验证的用户。因为他们使用Microsoft帐户进行身份验证,我知道他们可以访问OneNote(通过Microsoft Graph API)。我希望避免他们再次登录以访问Microsoft Graph API,但您的回答没有解决这个问题。我不想通过Graph API访问B2C租户,但想通过OneNote访问。或者你是说我可以通过Graph API和B2C租户访问用户的OneNote文件?@PhilippSchmid我是说登录B2C使用的是B2C身份验证协议。但要通过Microsoft Graph访问个人OneNote,您必须使用Azure AD身份验证协议。您不能使用单一登录来实现此要求。