Azure active directory Azure API身份验证和MSGraph

Azure active directory Azure API身份验证和MSGraph,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我正在研究一个Node.JS API,它通过Azure AD进行身份验证,一切似乎都正常,当我传递登录web应用程序生成的访问令牌时,它会进行身份验证并返回数据 然而,我现在需要API来访问MSGraph以检索配置文件照片等。我如何向MSGraph传递身份验证,我相信accesstoken是不同的,不是因为它们的作用域不同。那么,在我登录我的应用程序之后,我如何为MSGrpah生成一个新的accesstoken呢 API端点只是查询返回JSON响应的用户数据库,但我想将base64Image中的

我正在研究一个Node.JS API,它通过Azure AD进行身份验证,一切似乎都正常,当我传递登录web应用程序生成的访问令牌时,它会进行身份验证并返回数据

然而,我现在需要API来访问MSGraph以检索配置文件照片等。我如何向MSGraph传递身份验证,我相信accesstoken是不同的,不是因为它们的作用域不同。那么,在我登录我的应用程序之后,我如何为MSGrpah生成一个新的accesstoken呢

API端点只是查询返回JSON响应的用户数据库,但我想将base64Image中的用户配置文件映像附加到响应中

我该怎么做

感谢您可以使用,OAuth 2.0代表流量(OBO)服务于一个应用程序调用服务/web API的用例,而该应用程序又需要调用另一个服务/web API

示例:

POST /oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id=2846f71b-a7a4-4987-bab3-760035b2f389
&client_secret=BYyVnAt56JpLwUcyo47XODd
&assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InowMzl6ZHNGdWl6cEJmQlZLMVRuMjVRSFlPMCJ9.eyJhdWQiOiIyODQ2ZjcxYi1hN2E0LTQ5ODctYmFiMy03NjAwMzViMmYzODkiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE0OTM5MjA5MTYsIm5iZiI6MTQ5MzkyMDkxNiwiZXhwIjoxNDkzOTI0ODE2LCJhaW8iOiJBU1FBMi84REFBQUFnZm8vNk9CR0NaaFV2NjJ6MFFYSEZKR0VVYUIwRUlIV3NhcGducndMMnVrPSIsIm5hbWUiOiJOYXZ5YSBDYW51bWFsbGEiLCJvaWQiOiJkNWU5NzljNy0zZDJkLTQyYWYtOGYzMC03MjdkZDRjMmQzODMiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJuYWNhbnVtYUBtaWNyb3NvZnQuY29tIiwic3ViIjoiZ1Q5a1FMN2hXRUpUUGg1OWJlX1l5dVZNRDFOTEdiREJFWFRhbEQzU3FZYyIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInV0aSI6IjN5U3F4UHJweUVPd0ZsTWFFMU1PQUEiLCJ2ZXIiOiIyLjAifQ.TPPJSvpNCSCyUeIiKQoLMixN1-M-Y5U0QxtxVkpepjyoWNG0i49YFAJC6ADdCs5nJXr6f-ozIRuaiPzy29yRUOdSz_8KqG42luCyC1c951HyeDgqUJSz91Ku150D9kP5B9-2R-jgCerD_VVuxXUdkuPFEl3VEADC_1qkGBiIg0AyLLbz7DTMp5DvmbC09DhrQQiouHQGFSk2TPmksqHm3-b3RgeNM1rJmpLThis2ZWBEIPx662pjxL6NJDmV08cPVIcGX4KkFo54Z3rfwiYg4YssiUc4w-w3NJUBQhnzfTl4_Mtq2d7cVlul9uDzras091vFy32tWkrpa970UvdVfQ
&scope=https://graph.microsoft.com/user.read+offline_access
&requested_token_use=on_behalf_of

如果我的API从前端(Azure AD)传递了一个承载令牌,并且其中一个端点需要调用MGraph,那么最好的方法就是让一个创建新令牌的函数调用MSgraph端点并返回所需数据。或者在我的API上创建使用新令牌(如果可能)进行身份验证的新端点@AndyCollins访问令牌是有时间限制的,您需要使用刷新令牌来更新它。所以我认为这是一个更好的方法,有一个功能。