KeyCloak (Pro)

DefectDojo Pro 支持通过 KeyCloak 登录。开源版 DefectDojo 不包含 SSO——开源版的访问控制请参见已授权用户

本指南假定您已经配置好了一个 KeyCloak Realm。如果尚未配置,请参见 KeyCloak 文档

前提条件

在配置 DefectDojo 之前,请先在您的 KeyCloak realm 中完成以下步骤:

  1. 添加一个类型为 openid-connect 的新客户端。记录该客户端 ID。

  2. 在客户端设置中:

    • Access Type 设置为 confidential
    • Valid Redirect URIs 下,添加您的 DefectDojo URL,例如 https://yourorganization.cloud.defectdojo.comhttps://your-dojo-host/*
    • Web Origins 下,添加相同的 URL(或 +)
    • Fine Grained OpenID Connect Configuration 下:
      • User Info Signed Response Algorithm 设置为 RS256
      • Request Object Signature Algorithm 设置为 RS256
    • 保存设置。
  3. Scope 下,将 Full Scope Allowed 设置为 off

  4. Mappers 下,添加一个自定义映射器:

    • Name: aud
    • Mapper Type: audience
    • Included Audience: 选择您的客户端 ID
    • Add ID to Token: off
    • Add Access to Token: on
  5. Credentials 下,复制 Secret

  6. Realm Settings > Keys 中,复制 Public Key(签名密钥)。

  7. Realm Settings > General > Endpoints 中,打开 OpenID 端点配置并复制 AuthorizationToken 端点 URL。

配置

在 DefectDojo 中,前往企业设置 > OAuth 设置,选择 KeyCloak,然后填写表单:

  • KeyCloak OAuth Key——输入您的客户端名称(来自步骤 1)
  • KeyCloak OAuth Secret——输入您的客户端凭据密钥(来自步骤 5)
  • KeyCloak Public Key——输入来自您 realm 设置的 Public Key(来自步骤 6)
  • KeyCloak Resource——输入 Authorization Endpoint URL(来自步骤 7)
  • KeyCloak Group Limiter——输入 Token Endpoint URL(来自步骤 7)
  • KeyCloak OAuth Login Button Text——为 DefectDojo 登录按钮选择显示文字

勾选启用 KeyCloak OAuth并提交表单。登录页面上会出现一个带有您所配置文字的登录按钮。