当前位置: 首页 > 知识库问答 >
问题:

如何减少标准范围授权请求Spring Boot发送到azure活动目录

丁英韶
2023-03-14

我想使用azure active directory作为我的Spring boot应用程序的身份验证提供程序。这似乎很容易,只要你自己有管理员权限,或者你认识一个拥有管理员权限的人,他可以给你权限进入“Directory.accessuser.All”。不幸的是,我没有这个。我知道,由于其他成功的项目,azure本身提供了机会,即使没有对API调用权限部分授予任何权限,也可以继续充当身份验证提供者。当我启动服务器并转到localhost:8080/home,同时跟踪我的网络流量时,我可以在身份验证文件中看到以下范围:openid概要文件https://graph.microsoft.com/User.Readhttps://graph.microsoft.com/Directory.AccessAsUser.All

所以我处理这个问题的想法是减少授权请求Spring要求的范围,以满足我在azure中允许的授权范围。这是所有这些,但如前所述的最后一个。我尝试在我的application.propertie中使用以下内容配置范围:spring.security.oauth2.client.registration.azure.scope=openid

所以发生的事情是在我尝试在线访问我的应用程序后,我重定向到mircosoft登录页面。输入我的详细信息后,我得到了这个:

为了能够访问组织中的资源,需要只有管理员才能授予的授权。请请求管理员授予此应用的权限,以便您可以使用该应用。

有人知道如何处理这件事吗?我非常乐意提供任何帮助!


共有2个答案

吕博耘
2023-03-14

好的,我发现了问题。在我的application.property,我有这行代码azure.activedirectory.user-group.allowed-组=。这是更大范围内的责任。删除它后,一切正常。

汪兴为
2023-03-14

我认为你只能以管理员身份登录,因为你登录时使用的是微软提供的SDK,所以你无法自定义application.propertie中的权限范围。

登录应用程序时,需要您同意所有权限。如果您只是以用户身份登录,则无法同意所有权限。所以,至少在登录模块中,我认为它不能满足您的要求。

通常,我们只能在请求访问令牌时自定义权限范围。例如,如果您只需要读取用户权限,则可以设置:<代码>范围:https://graph.microsoft.com/User.Read

登录示例。

 类似资料:
  • 我想向我的节点添加文档。js API,为此,我有一个YAML文件,我把我的定义放在那里,swagger文档位于localhost:5000/API doc,运行良好。 现在,我必须用以下定义添加Bear authorization but Swagger: 在测试请求时(我点击右上角的“授权”按钮并输入我的令牌),我得到以下错误: “错误”:“未找到授权标头”。 为什么请求中不包括标题?

  • 我正在重定向用户登录并授权我的应用程序读取/写入他的 Office 365 日历。这非常适合普通用户,但当有人使用其工作帐户登录时,他们会获得“需要管理员批准”批准。 但是根据日历的留档。读写不应该需要管理员同意,正如这里提到的; https://learn.microsoft.com/en-us/graph/permissions-reference#calendars-权限 当范围是日历时也是

  • 问题内容: 这是我的第一篇文章。 我刚刚开始学习Go和Angular,并且尝试将angular应用程序连接到go api。我已经写了这两本书,并且一直坚持找出问题的根源。我以为这是一个CORS问题,但是如果我在Angular http请求中不包含代码的标题行,它就可以正常工作。在这一点上,我只是想添加标题。授权代码尚未实现。 这两个应用程序都在本地运行,端口5000上的Go应用程序和4200端口上

  • 我正在尝试从这个 API 调用中创建“UUID”,我正在使用 axios 和 vue.js。这是我的源代码。 但不幸的是,我得到了 在'访问XMLHttpRequesthttps://www.uuidtools.com/api/generate/v1'从原点'http://localhost:8080'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access c

  • 我正在使用Gmail API,并试图从公司下的所有用户那里获取电子邮件。但当我运行以下代码时: 我得到错误: API返回了一个错误:错误:委派被拒绝xxxx@xxxxx.com 在管理控制台中,我这样做: 作为客户端名称,我使用了文件中的id。对于范围,我给了它所有权限。 如何正确设置Gmail API的域范围授权?

  • 我有一个在Azure网站上运行的标准Web API,启用了Azure AD身份验证,当在浏览器中浏览API时,我可以通过浏览器登录并获得对API的访问权。 但是,WPF桌面应用程序在提交请求时接收到未经授权的响应: 更新: 我已经在一个Azure帐户中重新创建了这个环境,我可以访问这个帐户,但仍然收到一个未经授权的响应(在浏览器中运行良好)。