c# - 可以在 Razor 中没有 MS 库的情况下代表用户获取访问令牌吗?
问题描述
我正在编写一个 Razor 页面应用程序,它以 HTTP GET 调用的形式获取 Azure AD 中的用户数据。
但是,我发现的大多数文档都说使用 MS GRAPH 库——有没有办法只使用标准 HTTP 代表用户获取访问令牌?
我不确定如何从我的剃须刀页面应用程序中获得登录 Office365 的提示。
解决方案
您可以使用auth code flow获得访问令牌。
在浏览器中获取授权码:
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={client-id}
&response_type=code
&redirect_uri={redirect_uri in azure portal}
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345
使用前面的代码获取访问令牌:
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
client_id={client-id}
&scope=https://graph.microsoft.com/.default
&code={code from previous step}
&redirect_uri={redirect_uri in azure portal}
&grant_type=authorization_code
解码访问令牌后,您将获得upn
(用户的用户名)和其他人。如果您拥有 MS Graph 所需的权限,您还可以通过 API 获取用户的详细信息。
推荐阅读
- php - TYPO3 后端和 PSR-15 的最佳实践
- ffmpeg - ffmpeg setpts 过滤器未应用于输出
- javascript - 带有反引号的 Javascript 正则表达式构造函数
- c - 如何将文件fscanf成多维数组
- mysql - 使用 Express 节点的多个 mysql 查询
- mysql - 在 MySQL 表列中选择不重复的记录
- concurrency - CompletableFuture supplyAsync 与 Stream.map()
- wordpress - 免费访问中的 WordPress 管理员密码
- c# - DateTime 日、月、年的标准格式
- javascript - 在 node.js 中设置应用程序生产和开发模式