在 Sonar 中通过身份验证后如何根据条件将用户添加到特定组
How do I add user to a specific group based on a condition after they are authenticated in Sonar
我有一个自定义功能要在 SonarQube 5.5 中实现。
我有一个插件,它基本上是 Sonar Open ID Plugin 的一个分支,用于反映我们公司的 SSO 身份验证。它工作正常,它使用基于 cookie 的身份验证来验证用户身份,并在验证成功后将他们带回 Sonar。
我被告知要进行另一项更改。当用户通过外部身份验证提供程序(公司的 SSO 服务)成功进行身份验证并创建用户(如果尚未存在)时,我需要验证用户。在用户验证的基础上,我需要将用户添加到特定组。如果验证通过,则将此用户添加到组 A(Sonar 组)。如果不是,则将他添加到 B 组(Sonar 组)。
在这两种情况下我都不能使用默认的组行为,我需要将它们添加到某个 Sonar 组。
这将在 SonarQube 5.5 的 Sonar 插件中完成。有人可以告诉我如何使用他们的扩展点使用 OpenID PLugin 作为起点来做到这一点吗?请注意,需要保留 OpenID 插件的所有现有功能(如果不存在则自动创建用户)。
有关如何执行此操作的一些示例代码将非常有帮助。
在此先致谢!
从 SonarQube 5.4 开始,API 存在以便能够使用外部提供程序对用户进行身份验证:
- 如果提供程序与 OAuth2 兼容,您可以 OAuth2IdentityProvider
- 否则使用BaseIdentityProvider
从 5.5 开始,您还可以 associate groups 来自用户的提供商。
请查看 GitHub Authentication plugin,它允许用户从 GitHub 进行身份验证并将 GitHub 组关联到 SonarQube 组。
我有一个自定义功能要在 SonarQube 5.5 中实现。
我有一个插件,它基本上是 Sonar Open ID Plugin 的一个分支,用于反映我们公司的 SSO 身份验证。它工作正常,它使用基于 cookie 的身份验证来验证用户身份,并在验证成功后将他们带回 Sonar。
我被告知要进行另一项更改。当用户通过外部身份验证提供程序(公司的 SSO 服务)成功进行身份验证并创建用户(如果尚未存在)时,我需要验证用户。在用户验证的基础上,我需要将用户添加到特定组。如果验证通过,则将此用户添加到组 A(Sonar 组)。如果不是,则将他添加到 B 组(Sonar 组)。
在这两种情况下我都不能使用默认的组行为,我需要将它们添加到某个 Sonar 组。
这将在 SonarQube 5.5 的 Sonar 插件中完成。有人可以告诉我如何使用他们的扩展点使用 OpenID PLugin 作为起点来做到这一点吗?请注意,需要保留 OpenID 插件的所有现有功能(如果不存在则自动创建用户)。
有关如何执行此操作的一些示例代码将非常有帮助。
在此先致谢!
从 SonarQube 5.4 开始,API 存在以便能够使用外部提供程序对用户进行身份验证:
- 如果提供程序与 OAuth2 兼容,您可以 OAuth2IdentityProvider
- 否则使用BaseIdentityProvider
从 5.5 开始,您还可以 associate groups 来自用户的提供商。
请查看 GitHub Authentication plugin,它允许用户从 GitHub 进行身份验证并将 GitHub 组关联到 SonarQube 组。