【问题标题】:Restrict slack-slash command access限制 slack-slash 命令访问
【发布时间】:2017-05-26 11:18:24
【问题描述】:

我已通过 slash commands 将 Jenkins 中的部署从 slack 自动化。

我需要提供permission for slash commands 或将斜杠命令访问权限仅限于特定用户(即)频道中的某些成员可以使用/deploy_dev 部署开发环境,但他们不应该能够部署到登台和生产环境。

【问题讨论】:

    标签: jenkins slack-api slack


    【解决方案1】:

    为了限制对自定义斜杠命令的访问,只需检查哪个用户在您的脚本中调用了斜杠命令,然后执行该命令或拒绝它(并回复适当的消息)。

    Slack 始终在请求中提供用户 ID 和用户名,以便您的脚本中提供这些信息。 Slack 的命令请求见下例:(来自official documentation

    token=gIkuvaNzQIHg97ATvDxqgjtO
    team_id=T0001
    team_domain=example
    enterprise_id=E0001
    enterprise_name=Globular%20Construct%20Inc
    channel_id=C2147483705
    channel_name=test
    user_id=U2147483697
    user_name=Steve
    command=/weather
    text=94070
    response_url=https://hooks.slack.com/commands/1234/5678
    

    为了管理谁可以访问,我建议使用私人频道,这样如果用户想要执行特定的斜杠命令,他就必须是特定私人频道的成员。您可以调用groups.info 来获取脚本中私人频道所有成员的用户ID。

    请注意,斜线命令始终可供所有用户访问,并且 Slack 中没有全局配置选项,它允许您授予对特定斜线命令的访问权限。因此,您必须在脚本中执行此操作,如上所述。

    【讨论】:

    • 我通过(在 slack 中添加集成方法)而不是通过脚本创建了斜杠命令。在哪里存储以及如何调用此脚本?
    • 有很多方法可以做到这一点。通常,您的脚本将驻留在 Internet 上的网络服务器上,并在每次执行斜杠命令时由 Slack 的 POST 请求调用。详情请查看documentation
    • 我没有使用 slack 企业/自托管;这是一个免费版本。我们需要企业来实现这一目标吗?
    • @soundararajan.c 不,一点也不。您可以使用免费版本的 Slack 来完成所有这些工作。您所需要的只是 Internet 上的(虚拟)网络服务器来托管您的脚本。查看 Slack 上的 tutorials 了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多