GPT-4o miniは、2024年7月にOpen AIが発表したGPT-4oの最新モデルで、低コストかつスピーディーな処理速度が魅力...
RedmineのSSO設定をAWSで行う
目次
はじめに
こんにちは、株式会社SMSデータテックの社員Mです。
前回の記事ではECSでRedmineを構築する方法について解説しました。
ECSでRedmineを構築することで、サーバーの管理・運用業務を効率化することができました。
本記事では、次のステップとして、AWS SSOの設定をやってみたいと思います。
本記事対象の方
AWSでRedmineを構築しており、シングルサインオン(SSO)設定をしたいという方を対象としております。
※現在、omniauth samlのpluginsに脆弱性が発見されております。
導入する際は気を付けて下さい。
SSO設定をするメリット
AWSコンソールにログインすることができれば、ワンクリックでRedmineにアクセスすることができます。
また、初アクセスの際にアカウントが作成されるため、アカウント作成も必要ありません。
使用技術について
SSOとは
SSOとは、Single Sign-Onとして知られる認証の仕組みのことです。SSOを使用すると、ユーザーは1度の認証で複数の関連システムやアプリケーションにアクセスできます。これは、ユーザーが複数のアカウントやアプリケーションに対して別々にログインする必要がなくなるため、利便性が向上し、セキュリティが向上します。
IAM Identity Centerとは
AWS IAM アイデンティティセンターは、AWS アプリケーションもしくは複数の AWS アカウントに対するワークフォースのアクセスを管理するために推奨されるサービスです。
RedmineにSSO設定を導入する方法
手順は以下の通りになります。
- IAM Identity Centerでアプリケーションの設定
- omniauth samlファイルインストール
- samlファイルを編集
それぞれ説明していきます。
IAM Identity Center
IAM Identity Centerのアプリケーションから、アプリケーションの追加を行います。
アプリケーションの追加
写真
こちらの情報は、後述するsamlファイルに記述するので、メモしておいてください。
アプリケーションメタデータ
「メタデータ値をマニュアルで入力する」を選択
入力項目は下記内容を記述
アプリケーションACS URL:URL/auth/saml/callback
アプリケーションSAML対象者:IAM Identity Center SAML 発行者 URL
属性マッピングの編集
属性マッピングについては、AWS公式ドキュメントを参照しています。
下記表の通り記述
アプリケーションのユーザー属性 | ユーザー属性マッピング | 形式 |
Subject | ${user:AD_GUID} | Persistent |
name | ${user:subject} | basic |
firstname | ${user:givenName} | basic |
${user:email} | basic | |
lastname | ${user:familyName} | basic |
omniauth samlファイル編集
AWSからSSOログインが可能になるpluginです。
Start画面からワンクリックでredmineにアクセスできるようになります。
※version5.1.1でも導入できますが、脆弱性が検知されているため、注意が必要です。
インストール方法
dockerfileが存在するディレクトリにpluginsというディレクトリを作成します。
そのディレクトリに移動し、下記コマンドを実行します。
git clone https://github.com/chrodriguez/redmine_omniauth_saml.git |
2saml.rbの編集
samlファイルを編集します。
sample-saml-initializers.rbをコピーし、編集していきます。
assertion_consumer_service_url => ”URL/auth/saml/callback”
issue => ”URL/”
idp_sso_target_url => “IAM Identity Center SAML 発行者 URL”
idp_cert => “IAM Identity Center証明書”
name_identifier_format => “urn:oasis:names:tc:SAML:2.0:nameid-format:persistent”
idp_slo_target_url => “URL”
login => ‘extra.raw_info.name’,
mail => ‘extra.raw_info.email’,
firstname => ‘extra.raw_info.firstname’,
lastname => ‘extra.raw_info.lastname’
※Redmineのversion4以下だとこのままで良いのですが、version5以上になるとエラーが発生してしまいます。
そのため、version5以降は下記設定が必須となります。
Redmine version5以降の追加設定
このsamlファイルの一行目に
require File.expand_path(‘../../../plugins/redmine_omniauth_saml/lib/redmine_omniauth_saml’, __FILE__) |
と入力します。(自身が設定しているディレクトリから/redmine_omniauth_saml/lib/redmine_omniauth_samlを見に行ってください。デフォルトのディレクトリはusr/src/redmineです。)
このディレクトリにはSSOログインに関係するファイルがあります。
以上で設定完了です。
AWSコンソール画面のアプリケーションから、直接Redmineにアクセスできるようになります。
写真追加
おわり
今回は、ECSで構築したRedmineにシングルサインオン(SSO)設定を導入してみました。AWS SSOを活用してRedmineに接続する方法についての情報が少なく、設定にはかなり苦労しました。特に、SAMLファイルの編集やIAM Identity Centerの登録に関する部分が難しかったです。
しかし、設定後は面倒なアカウント作成が不要になり、ワンクリックで接続できるようになったため、非常に便利になりました。ただ、一部の脆弱性がまだ解消されておらず、その点が気がかりです。
試行錯誤の末に作り上げたAWS SSO認証が、他の方々のお役に立てることを願っています。
その他のイベント・セミナー 一覧へ
ChatGPT-4o with canvasはOpenAIがリリースしたAIのアシスタントツールです。ChatGPTとの共同作業が可能...
SearchGPTとはAI機能が実装された情報検索ツールで、言語の壁を越えた多様な情報の要約、関連情報や引用元情報を含めたアウトプット...