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

如何使用Spring Boot对保险库使用AppRole身份验证?

任文乐
2023-03-14

在我的应用程序中,我们从我的应用程序中发出两个调用,以从Vault获取机密,如下所示:

>

  • 登录到保险库:将调用发送到https:://v1/auth/approle/login--它将以role_id和secret_id作为有效负载,响应将是client_token。

    Fetch secrets:调用https:://v1/secret/data/abc/dev/xyz.json--它将头作为X-Vault-Token和X-Vault-Namespace,并给出如下所示的响应:

    {“request_id”:“.....”、“lease_id”:“”、“可再生”:false、“lease_duration”:0、“data”:{“data”:{“name”:“abc”}、“metadata”:{“created_time”:“...”、“deletion_time”:“”destroaded“:false、”version“:1}}

    现在我想使用Spring Cloud Vault依赖项来使事情通过它工作。请为我提供适当的插图,使这工作?

  • 共有1个答案

    鱼阳伯
    2023-03-14

    假设您正在运行spring boot,并且为您的应用程序配置了一个工作的Vault服务器。

    添加spring cloud vault maven依赖项

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-vault-config</artifactId>
        </dependency>
    

    向bootstrap.yaml添加保险库配置

    spring:
      application:
        name: abc
      cloud:
        vault:
          host: <vault-server-hostname>
          port: <vault-server-port>
          scheme: HTTPS
          namespace: <name-of-vault-namespace>
          authentication: APPROLE
          app-role:
            role-id: <your-application-role-id>
            secret-id: <your-application-secret-id>
            role: <your-application-role>
    

    如果您使用spring配置文件运行应用程序,就像dev,它将被拾取并添加到保险库路径中。

    现在,您应该能够使用@value(“${ } ”)插入存储在路径secret/data/abc/dev上的机密

     类似资料:
    • 我正在使用SpringBoot开发具有微服务架构的Rest Backend。为了保护endpoint,我使用了JWT令牌机制。我正在使用Zuul API网关。 如果请求需要权限(来自JWT的角色),它将被转发到正确的微服务。Zuul api网关的“WebSecurityConfigrerAdapter”如下。 这样,我必须在这个类中编写每个请求授权部分。因此,我希望使用方法级安全性,即“Enabl

    • 我们有一个在Apache和nginx上运行的Angular 8应用程序。我们使用带有和的Basic Auth保护此应用程序。 不幸的是,由于对服务器的请求被基本身份验证阻止,应用程序无法加载,Angular无法加载这些文件: 此 路 不通http://root/polyfills-es2015.js因为这是一个跨来源请求,所以不要求提供凭据 已阻止http://root/runtime-es201

    • 问题内容: 我目前有一个Palm WebOS应用程序,该应用程序使用Ajax.Request通过基本身份验证连接到Web服务。要发送用户名和密码,我只需将其包含在url(即http:// username:password @ ip-address:port / )中即可,效果非常好,期望密码包含字母数字字符以外的任何字符(例如, ,最近有一个用户给我发送电子邮件,该用户的密码中包含“ @”和“&

    • 我想构建一个API路由,经过身份验证的用户和未经身份验证的用户都可以调用该路由,并根据用户是否经过身份验证返回数据。 我卡在使用身份验证::检查()。 控制器的功能是这样的: 我最后有两个场景: 情景1 在这种情况下,在控制器中,当我检查Auth::check()在if条件内时,无论用户是否经过身份验证,我总是得到错误条件。 方案 2 在这种情况下,在控制器中,当我检查Auth::check()时

    • 我正在编写一个程序,用于验证通过HTTP POST发送的用户名和密码,并根据ldap进行验证,无论验证是否成功,都将响应发送回用户。 我的Websecurity配置器实现 我的测试服务器.ldif

    • null 我研究了OAuth2隐式授权,但它要求用户在成功验证后批准/拒绝应用程序。它在我的情况下不起作用,因为我同时拥有应用程序和API。 我查看了OAuth2密码授权,它并不完美,因为我需要公开client_id/client_secret。 我关注OAuth2的原因是因为该API最终将是公开的。 忘记OAuth2,在用户发布用户名/密码时手动生成access_token(在本例中,当API公