Oauth 2.0 AWS放大SPA反应+;Cognito(启用Microsoft Azure Ad Enterprise SSO)和#x2B;微软图形API

Oauth 2.0 AWS放大SPA反应+;Cognito(启用Microsoft Azure Ad Enterprise SSO)和#x2B;微软图形API,oauth-2.0,azure-active-directory,microsoft-graph-api,amazon-cognito,aws-amplify,Oauth 2.0,Azure Active Directory,Microsoft Graph Api,Amazon Cognito,Aws Amplify,我使用React开发单页应用程序,使用AWS Amplify进行无服务器集成。为了登录用户,我已经成功地用SAML配置了AWS Cognito控制台,这样我们的组织用户就可以不用注册就登录到应用程序,并且可以访问AWS资源。我们正在使用Microsoft Azure Ad作为身份提供商 现在在应用程序内部,我必须实现一个搜索,可以使用MicrosoftGraphAPI查询Azure广告用户 GET https://graph.microsoft.com/v1.0/users?$filter=st

我使用React开发单页应用程序,使用AWS Amplify进行无服务器集成。为了登录用户,我已经成功地用SAML配置了AWS Cognito控制台,这样我们的组织用户就可以不用注册就登录到应用程序,并且可以访问AWS资源。我们正在使用Microsoft Azure Ad作为身份提供商

现在在应用程序内部,我必须实现一个搜索,可以使用MicrosoftGraphAPI查询Azure广告用户

GET https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'J')
我们拥有访问图表的适当权限。 我们有客户端ID,secret ID&我们已经在Azure中为应用程序启用了隐式授权流

因为我使用AWS Amplify和Cognito对用户进行身份验证,所以当用户登录到应用程序时,我会收到IdToken和accessToken

const user = await Auth.currentAuthenticatedUser();
const idToken = user.signInUserSession.idToken.jwtToken;
const accessToken = user.signInUserSession.accessToken.jwtToken;
但是这个id令牌和访问令牌是Cognito的,而不是Microsoft Azure AD的

Microsoft提供(针对OAuth 2隐式授权流)在SPA上进行图形API调用,但我们不能在应用程序中使用它,因为我们使用AWS Amplify(Cognito)进行身份验证


因此,如何在AWS Lamda或任何其他AWS服务的帮助下进行图形调用。如果您推荐任何其他方法,这将非常有用。

来自Cognito的ID令牌和访问令牌无法访问Microsoft Graph数据

要调用Microsoft Graph,您的应用程序必须从Microsoft identity platform获取访问令牌。访问令牌包含有关其对通过Microsoft Graph可用的资源和API的权限的信息。看


正如juunas所建议的,您可以实现客户端凭据流来访问图形资源。

如果您根据Cognito进行身份验证,则无法从前端使用图形API。您的后端可以使用客户端凭据流和应用程序权限(非委托权限)进行调用。谢谢,您可以建议如何使用AWS Amplify(Rest API)实现相同的调用。谢谢-如果我们使用这种方法,我们必须进行服务器端调用,我不知道如何使用AWS Amplify(使用Rest API)实现这一点或AWS Lambda函数或任何其他AWS方法。(制作,用重定向URL响应,如何处理)