Lychee Redmine
【参考】
2023年03月17日時点での情報で掲載しています。
「Lychee Redmine」との認証連携を設定します。
【注意】
- Lychee RedmineがSAMLで認証するキーは「メールアドレス」です。
- IIJ IDサービス内の各ユーザ共通のユーザ属性にLychee Redmineの「メールアドレス」と同一の値を保持しておく必要があります。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。

3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。

4. アプリケーション情報を入力して、「アプリケーションを追加する」をクリックします。

| 項目 | 内容 | 備考 |
|---|---|---|
| アプリケーション名 | 例)Lychee Redmine | 必須 |
| アプリケーションの説明 | 例)プロジェクト管理ツール | 任意 |
| アプリケーションロゴ | (ファイルアップロード) | 任意 |
| IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのIDプロバイダ情報を取得する
1. 作成されたアプリケーションの「編集する」をクリックします。

2. 「IDプロバイダ情報」をクリックします。

3. 表示された「SSOエンドポイントURL (Redirectバインディング)」、及び「PEM」の値を控えます。
【参考】
「PEM」のFingerPrintを計算し、連携先サービスの該当の設定画面に貼り付けます。計算方法など対応例は以下のとおりです。
FingerPrintは下記のサイトなどを利用して計算することができます。
1. 以下の通り設定し、「CAlCULATE FINGERPRINT」をクリックします。

2. 「Formatted FingerPrint」に表示された値を控えます。


3. Lychee RedmineのSAML設定を実施する
1. Lychee Redmineへシステム管理者権限でログインします。
2. 「管理」をクリックします。

3. 「SAML認証」をクリックします。

4. 「
SAML認証」をクリックします。

5. 以下の通り入力し、「作成」をクリックします。

| 項目 | 内容 | 備考 |
|---|---|---|
| タイプ | 「その他」を選択 | |
| 名称 | 例)IIJ IDサービス | |
| Domain | https://[example].cloudmine.jp | ログインURLの「/login」前の部分を入力します 例えば、ログイン画面のURLが「https://[example].cloudmine.jp/redmine/login」の場合は、「https://[example].cloudmine.jp/redmine」と入力します 「redmine」がURL末尾にない環境では「/redmine」は必要ありません。[example]の箇所はお客様環境ごとに異なります |
| IdP SSO target URL | 手順2-3で控えた「SSOエンドポイントURL(Redirectバインディング)」の値 |
|
| IdP metadata URL | (空欄) | |
| Attribute mapping mail | 例)Email | |
| Attribute mapping firstname | 例)Firstname | 「ユーザが存在しなければ自動作成」にチェックを入れた場合は、設定が必須になります |
| Attribute mapping lastname | 例)Lastname | 「ユーザが存在しなければ自動作成」にチェックを入れた場合は、設定が必須になります |
| IdP Cert Algorithm | 「SHA256」を選択 | |
| IdP Cert Fingerprint | 手順2-3で控えた「PEM」のFingerPrintの値 | |
| Audience | 「EntityIDとの一致を確認する」を選択 |
|
| ユーザーが存在しなければ自動作成 | チェックを外す | SAML Just-In-Provisioningを有効化する場合は、チェックを入れます |
6. 作成されたSAML認証設定の「ACS URL」の値を控えます。

4. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. アプリケーションの「編集する」をクリックします。

3. 「フェデレーション設定」をクリックします。

4. 以下のとおり設定し、「変更を適用する」をクリックします。

| 項目 | 内容 | 備考 | ||
|---|---|---|---|---|
| SAML基本情報 |
SAML情報を入力する | 「SAML情報を入力する」をチェック | ||
| シングルサインオンURL | 手順3-6で控えた「ACS URL」の値 |
|||
| エンティティ ID | https://[example].cloudmine.jp |
ログインURLの「/login」より前の部分を入力します 例えば、ログイン画面のURLが「https://[example].cloudmine.jp/redmine/login」の場合は、「https://[example].cloudmine.jp/redmine」と入力します 「redmine」がURL末尾にない環境では「/redmine」は必要ありません [example]の箇所はお客様環境ごとに異なります |
||
| NameIDフォーマット | urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
|||
| 検証後の遷移先(RelayState) | (空欄) | |||
| アプリケーションのトップページURL | (空欄) |
|||
| アサーションの署名アルゴリズム | 例) RSA-SHA256 |
|||
| ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) ID |
Rychee Redmineとの連携ではここの値は評価されません |
|
| 属性値関連付け(ユーザ属性) | 例) 手順3-5の「Attribute mapping mail」と同じ値を設定します |
例) ID |
Rychee Redmineの「メールアドレス」の値が格納されている属性を指定します | |
例) 手順3-5の「Attribute mapping firstname」と同じ値を設定します |
例) 姓 |
Rychee Redmineの「名」の値が格納されている属性を指定します。 手順3-5で「ユーザが存在しなければ自動作成」にチェックを入れた場合は設定が必須になります |
||
例) 手順3-5の「Attribute mapping lastname」と同じ値を設定します |
例) |
Rychee Redmineの「姓」の値が格納されている属性を指定します 手順3-5で「ユーザが存在しなければ自動作成」にチェックを入れた場合は設定が必須になります |
||
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「RSA-SHA256」を選択してください。
「RSA-SHA256」を指定して動作しない場合及び連携先サービス側で明示的にそれ以外のものが指定されている場合は、「RSA-SHA512」、または「RSA-SHA1」に変更し、連携を確認してください。
【参考】
- 「ユーザ識別子(NameID)」の指定は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「ユーザ識別子(NameID)」の指定した属性にユーザが値を保持していない場合は SAML連携は失敗します。
- 「ユーザ識別子(NameID)」にID以外の複数の値を持つ属性で指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。

- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_ID」を指定します。

- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
【注意】
- 「ユーザ識別子(NameID)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
- 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。

【参考】
- 「属性値関連付け(ユーザ属性)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「属性値関連付け(ユーザ属性)」で複数値を持つ属性での指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。

- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「1234」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_Attr1」を指定します。

- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「multi1」、「multi2」のように複数の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_MultiAttr1」を指定します。

- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
【注意】
連携先サービスにてSAML Just-In-Provisioning機能が有効な場合、以下の点についてご注意ください。
- 連携先サービスのSAMLで認証するキーにIIJ IDサービスの「ID」以外の属性を指定している場合、IIJ IDサービス上では属性情報の変更が可能なため、連携先サービスでは認証時にこれまでとは別ユーザで接続されたと認識されます。そのため、新規ユーザとして作成処理が行われ、既存ユーザのリネーム処理が行われません。連携先サービスのSAMLで認証するキーとして指定する属性の値の変更については十分ご注意ください。
- 属性値関連付け(ユーザ属性)及び属性値関連付け(所属グループ名)を利用している場合、ユーザが連携先サービスにSAML連携した後にIIJ IDサービス側の該当属性を変更すると、連携先サービスでその該当属性に対しての更新処理が発生します。IIJ IDサービスと連携先サービスの双方でID情報を管理している場合は、IIJ IDサービスと連携先サービス間で該当属性同士の不整合が起きないように管理してください。
- ユーザの削除のトリガーは存在しません。定期的に管理者が手動にて連携先サービス上の該当ユーザの削除処理を行っていただく必要があります。
これらは連携先サービスで提供するSAML Just-In-Provisioning機能の仕様のため、IIJ IDサービスでの制限ではありません。
【参考】
Lychee Redmineでは、「姓」と「名」は必須属性です。そのため、SAML Just-In-Provisioning機能により、Lychee Redmineにてアカウントを作成するアクションが行われた際に、IIJ IDサービスから提供される「姓」と「名」の値が存在していない場合に、以下のようにエラーとなります。
詳しくは、Lychee Redmineへご確認ください。

5. 「利用者設定」をクリックします。

6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。

【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックします。

「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。

5. Lychee Redmineのユーザの認証設定を変更する
1. Lychee Redmineへシステム管理者権限でログインします。
2. 「管理」をクリックします。

3. 「ユーザー」をクリックします。

4. SAML認証を適用するユーザのログインIDをクリックします。

5. 「認証」の「認証方式」で手順3-4で作成したSAML認証設定を選択し、「保存」をクリックします。
