如何验证 Web API 以使用客户端应用程序获取的令牌调用 Graph API
How to authenticate a Web API to call Graph API with a token acquired by a client App
我正在开发客户端(React、typescript)应用程序和服务器(.Net Core)应用程序。 api 应该对 Microsoft 图 api 进行一些调用。
我已经在 Azure Active Directory 中注册了这两个应用程序并公开了 api 权限。所以在客户端,我得到一个 access_token 使用 msal.js 给定范围:
scopes = ["api://clientId/Test"]
所以我可以在 api.
中授权
- 我应该如何获得 api 端的访问权限以使用图 api?
我应该在客户端中使用
scopes = ["User.Read", "api://clientId/Test"]
请求令牌吗?
- 在 Azure 中注册服务器应用程序是否正确?最后,我能否拥有一个仅具有 Graph 范围的令牌,例如
scopes = ["User.Read", "Email.Read"]
将其传递给 Api 并在 api 端使用此令牌来访问图表?
经过研究,我发现解决方案是使用 on-behalf-of flow。
所以基本上是从客户端应用程序检索访问令牌,其范围授予对服务器应用程序的授权。然后服务器应用程序使用此访问令牌创建访问令牌以获得 Graph API.
的授权
这里是我用的sample
我正在开发客户端(React、typescript)应用程序和服务器(.Net Core)应用程序。 api 应该对 Microsoft 图 api 进行一些调用。
我已经在 Azure Active Directory 中注册了这两个应用程序并公开了 api 权限。所以在客户端,我得到一个 access_token 使用 msal.js 给定范围:
scopes = ["api://clientId/Test"]
所以我可以在 api.
中授权- 我应该如何获得 api 端的访问权限以使用图 api?
我应该在客户端中使用
scopes = ["User.Read", "api://clientId/Test"]
请求令牌吗? - 在 Azure 中注册服务器应用程序是否正确?最后,我能否拥有一个仅具有 Graph 范围的令牌,例如
scopes = ["User.Read", "Email.Read"]
将其传递给 Api 并在 api 端使用此令牌来访问图表?
经过研究,我发现解决方案是使用 on-behalf-of flow。
所以基本上是从客户端应用程序检索访问令牌,其范围授予对服务器应用程序的授权。然后服务器应用程序使用此访问令牌创建访问令牌以获得 Graph API.
的授权这里是我用的sample