[Rails] Microsoft Teams 탭에 Redmine 표시

2620 단어 RedmineRails

Teams 탭에 Redmine을 표시하고 싶습니다.



Teams에는 모든 웹 사이트를 탭에 표시하는 기능이 있습니다.



그러나 할 수 없다.



Rails 앱은 기본적으로 X-Frame-Options: SAMEORIGIN 헤더를 출력하기 때문에 iframe 를 사용하는 Team 탭에는 표시되지 않습니다.

HTTP 헤더 변경



Rails 앱이 출력하는 HTTP 헤더는/usr/lib/ruby/vendor_ruby/action_dispatch/railtie.rb로 설정되어 있습니다.
config.action_dispatch.default_headers = {
  'X-Frame-Options' => 'SAMEORIGIN',
  'X-XSS-Protection' => '1; mode=block',
  'X-Content-Type-Options' => 'nosniff'
}

이것을 다시 쓰는 것은 난폭하므로 Redmine 설정으로 덮어 씁니다.

/usr/share/redmine/config/additional_environment.rb 파일을 만듭니다.
config.action_dispatch.default_headers = {
  'Content-Security-Policy' => 'frame-src https://teams.microsoft.com/',
  'X-XSS-Protection' => '1; mode=block',
  'X-Content-Type-Options' => 'nosniff'
}
X-Frame-Options 대신 Content-Security-Policy 를 설정했습니다.

Teams 전체에서 iframe 사용할 수 버립니다만, 없는 것보다는 몹시일까.

Apache 재부팅



설정을 사용합니다.
systemctl restart apache2

환경


  • Redmine 3.4.4
  • Ruby 2.5.1
  • 우분투 18.04

  • 링크


  • MDN Content-Security-Policy
  • 좋은 웹페이지 즐겨찾기