如何减少spring引导发送到azureactivedirectory的标准范围授权请求

j1dl9f46  于 2021-07-23  发布在  Java
关注(0)|答案(2)|浏览(294)

我想使用azureactivedirectory作为我的spring启动应用程序的身份验证提供程序。这似乎很简单,只要你自己有管理权限,或者你认识一个有管理权限的人,他可以给你“directory.accessasuser.all”的权限。不幸的是我没有。我知道,由于其他成功的项目,azure本身提供了机会,即使没有对api call permission部分授予任何权限,它仍然可以充当身份验证提供者。当我启动服务器并继续localhost:8080/home 在跟踪我的网络流量时,我可以在授权文件中看到以下范围: openid profile https://graph.microsoft.com/User.Read https://graph.microsoft.com/Directory.AccessAsUser.All 所以我处理这个问题的想法是缩小spring要求的授权请求的范围,以满足我在azure中允许的授权范围。除了前面提到的最后一个,其他都是。我尝试用以下内容配置application.property中的作用域: spring.security.oauth2.client.registration.azure.scope=openid 所以当我尝试在线访问我的应用程序后,我会重定向到mircosoft登录页面。在输入我的详细信息后,我得到了以下信息:
为了能够访问组织中的资源,需要只有管理员才能授予的授权。请请求管理员授予此应用程序的权限,以便您可以使用该应用程序。
有人知道怎么处理吗?如果有人帮我,我会很高兴的!

ghhkc1vu

ghhkc1vu1#

我想您只能以管理员的身份登录,因为您在登录时使用的是微软提供的sdk,所以您不能自定义中的权限范围 application.propertie .
当您登录到应用程序时,它将要求您同意所有权限。如果您只是以用户身份登录,则无法同意所有权限。所以,至少在登录模块,我认为它不能满足您的要求。
通常我们只能在请求访问令牌时自定义权限范围。例如,如果您只需要读取用户权限,则可以设置: scope: https://graph.microsoft.com/User.Read .
登录示例。

kwvwclae

kwvwclae2#

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

相关问题