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

针对Azure Active Directory JWT令牌算法问题,使用Spring Boot Starter保护Java web应用程序

牛骞仕
2023-03-14

我使用spring boot starter for azure active directory逐步创建java web应用程序,如中所述:https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory

当我打开localhost:8080时,我的azure帐户应用程序运行良好。它将我重定向到azure,我在那里登录,然后我被重定向回我的应用程序。

这是我的申请表。属性

azure.activedirectory.tenant-id=placeholder 

azure.activedirectory.client-id=placeholder 
azure.activedirectory.client-secret=placeholder 
azure.activedirectory.object-id=placeholder 


azure.activedirectory.user-group.allowed-groups=group1 
azure.activedirectory.session-stateless=true


security.oauth2.authorization.token-key-access=permitAll() 
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
application.baseurl.logout.redirect=https://mydomain:8081/

application.groups.for.displaying=
application.groups.for.filtering=
server.port=8081



server.ssl.enabled=true 
server.ssl.trust-store=/apps/tomcat/conf/trusted.jks 
server.ssl.trust-store-password=mykeys 


server.ssl.key-store=/apps/tomcat/conf/.keystore 
server.ssl.key-store-password=f213495a0be855c4ab190a1f84cc18cd 
server.ssl.key-store-type=JKS

server.ssl.key-alias=key-dev-ui 
server.ssl.key-password=f213495a0be855c4ab190a1f84cc18cd

我的配置:

 @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.cors().and().csrf().disable().authorizeRequests().anyRequest().authenticated().and().oauth2Login().and().csrf()
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .and().oauth2Client();
    }

共有1个答案

公西岳
2023-03-14

请检查以下几点:

  1. 当从令牌获得的颁发者值来自与预期不同的endpoint(v2)时,可能会出现问题。请确保使用最新版本的spring boot api,并检查其是否在依赖项中

.给出默认范围(确保在代码中添加范围)或直接给出应用程序中存在的范围(签入应用程序代码),例如User.read、file.read或offline_access,并在如下门户中提供委托权限(如果这些权限存在于代码中)。

(或)

另请参阅html" target="_blank">springboot starter开发指南| ms文档,并查看下面的参考资料。

如果上述情况不需要进一步调查,您可以通过编辑问题提供其他配置详细信息。

参考文献:

  1. Spring-rest-azure-ad-oauth
  2. 使用-Spring-安全-与-azure-active-目录-mga
 类似资料:
  • 我读到,当使用JWT时,不需要防止CSRF攻击,例如:“由于您不依赖cookie,您不需要防止跨站点请求”。 但是,有一点我不明白:如果我将令牌存储在localStorage中(正如我在同一网站的教程中被告知的那样),那么攻击者如何防止通过读取我的localStorage而不是Cookie来伪造恶意请求呢? 由于它是在服务器端生成的,我不知道如何在客户机请求中使用令牌而不将其存储在客户机的某个地方

  • 问题内容: 该问题在某种程度上与以下链接的问题有关。但是,我需要在某些方面和一些其他信息上多一点清晰度。 我需要使用令牌为REST Web服务实现安全性 该Web服务旨在与Java客户端一起使用。因此,表单身份验证和凭据弹出窗口没有用。 我是REST安全和加密的新手 这是我到目前为止所了解的: 对于第一个请求: 用户建立https连接(或容器使用301确保https) 用户POST输入用户名和密码

  • 我们有一个简单的应用程序,只有两个消费者和5个endpoint。对于一个endpoint,我需要某种身份验证方式。我喜欢这样做的条纹方式,但我不知道我如何可以在spring Boot中构建这个。 “对API的身份验证是通过HTTP基本身份验证执行的。请提供API密钥作为基本身份验证用户名值。不需要提供密码。”

  • 我的问题是,对每个表单使用一个令牌,而不更新每个表单提交的令牌,安全吗?这能防止CSRF吗?

  • 这个问题在某种程度上与下面的链接问题有关。然而,我需要在某些方面更多的澄清和一些额外的信息。参考:REST Web服务身份验证令牌实现 背景: null null 对于后续请求: 客户端发送此加密令牌和哈希组合(使用基本的用户名字段?) 我们使用哈希确保加密的令牌没有被篡改,然后对其解密 我们检查会话跟踪表中解密的令牌是否有未过期的条目,并获得实际的用户名(过期由代码管理?) 如果找到用户名,则根

  • 我已经创建了两个独立的项目;一个用于我的应用程序api,另一个用于我的应用程序客户端。我使用的是。NET Core2.2和Angular 7。我读过一些文章,其中有人说要使用httponly cookie。我在这方面的问题是;如何使用Azure Active Directory B2C?我只是很困惑,所以如果有人能清理一些东西,我将不胜感激。