Lychee SAML認証

❏ Lychee SAML認証とは

RedmineとIdP(Identity Provider)が、SAMLを使って認証情報をやり取りできるようにすることで、シングルサインオンを実現するプラグインです。
対応しているIdPは、OneLoginとADSF(Active Directory Federation Services)です。

❏ OneLogin

1. IdP(Identity Provider)の設定

  1. Redmine用に登録したアプリケーションのConfiguration画面を表示する
    Administration > Applicationsメニューの[Applications] > Redmine用に登録したアプリケーション > Configuration
  2. 以下の通り入力し、[Save]をクリックする

    項目
    AudienceSSO画面にある[Issuer URL]のURLの内、「metadata」までの部分。
    URLが以下の場合、「 https://app.onelogin.com/saml/metadata 」を入力する。
     https://app.onelogin.com/saml/metadata/abcdefg-hijklmn
    RecipientSAML認証画面に表示された「Recipient」のURL。
    以下の書式になっている。
     RedmineのURL/auth/one_login/callback
    ACS (Consumer) URL ValidatorSAML認証画面に表示された「ACS URL Validator」の正規表現。
    ACS (Consumer) URLSAML認証画面に表示された「ACS URL」のURL。

image alt text

2. プラグインの設定

  1. SAML認証画面を表示する
    管理メニュー > SAML認証
  2. リンク[SAML認証]をクリックする
    SAML認証画面が表示される。
  3. 画面右上の[+ SAML認証]をクリックする
    新しい認証方式
  4. 以下の通り入力し、[保存]ボタンをクリックする

    項目
    タイプOne Login
    名称任意
    ドメインRedmineのURL
    App IDSSO画面(※1)にある[Issuer URL]のURLのパスの内、「metadata/」以降の部分。
    URLが以下の場合、「abcdefg-hijklmn」を入力する。
      https://app.onelogin.com/saml/metadata/abcdefg-hijklmn
    SSP slo IDSSO画面(※1)にある[SLO Endpoint(HTTP)]のURLのパスの内、「slo/」以降の部分。
    URLが以下の場合、「1234567890」を入力する。
      https://example.onelogin.com/trust/saml2/http-redirect/slo/1234567890
    IDP Cert AlgorithmSSO画面(※1)にある[SAML Signature Algorithm]と同じアルゴリズム。
    IDP Cert FingerprintCertificates画面(※2)にある[Fingerprint]の値。

    ※1 Administration > Applicationsメニューの[Applications] > Redmine用に登録したアプリケーション > SSO
    ※2 Administration > Applicationsメニューの[Applications] > Redmine用に登録したアプリケーション > SSO > [X.509 Certificate]のリンク[View Details]

    image alt text

  5. OneLoginのConfigurationに設定する情報が表示される
    SAML認証画面に以下の情報が表示される。

    • Recipient
    • ACS URL Validator
    • ACS URL

      image alt text

❏ ADFS(Active Directory Federation Services)

1. IdP(Identity Provider)の設定

  1. Redmine用に登録したアプリケーションを表示する
    ホーム > Azure Active Directory > アプリの登録 > Redmine用に登録したアプリケーション
  2. [ブランド]を表示し、[ホーム ページ URL]に以下の通り入力後、[保存]をクリックする
    以下の書式に従ったURL。

     RedmineのURL/auth/adfs
    

    image alt text

  3. [認証]を表示し、[Web > リダイレクト URI]に以下の通り入力後、[保存]をクリックする

    項目
    Web > リダイレクト URI以下の書式に従ったURI。
    RedmineのURL/auth/adfs/callback
    Web > ログアウト URL以下の書式に従ったURL。
    RedmineのURL/logout

    image alt text

  4. [証明書とシークレット]を表示し、証明書をアップロードする

2. プラグインの設定

  1. SAML認証画面を表示する
    管理メニュー > SAML認証
  2. リンク[SAML認証]をクリックする
    SAML認証画面が表示される。
  3. 画面右上の[+ SAML認証]をクリックする
    新しい認証方式
  4. 以下の通り入力し、[保存]ボタンをクリックする

    項目
    タイプADFS
    名称任意
    ドメインRedmineのURL
    App IDRedmine用に登録したアプリケーションの概要画面(※1)にある[アプリケーション(クライアント)ID]
    SSP slo IDRedmine用に登録したアプリケーションの概要画面(※1)にある[ディレクトリ(テナント)ID]
    IDP Cert AlgorithmFingerprintを作成したときに使用したアルゴリズム
    IDP Cert Fingerprintトークン署名証明書のFingerprint

    ※1 Azureのホーム > アプリの登録 > Redmine用アプリケーション > 概要

    image alt text

3. トークン署名証明書のFingerprintの求め方

  1. フェデレーション メタデータ エンドポイントを確認する
    アプリの登録 > エンドポイント > フェデレーション メタデータ エンドポイント

    エンドポイント

  2. エンドポイントにアクセスする
    メタデータのXMLが表示される。

  3. メタデータ全体をコピーしてエディタに貼り付ける
    X509Certificate の値だけをコピーしようとすると、うまくコピーできないことがあるため、画面全体をコピーしてテキストエディタに貼り付ける。
  4. CRTファイルを作成する
    use 属性が signing になっている KeyDescriptor 要素の配下にあるX509Certificate の値を使って、CRTファイルを作成する。
    CRTファイルの構成は以下のとおり。

    • 1行目 : -----BEGIN CERTIFICATE-----
    • 2行目 : X509Certificate の値
    • 3行目 : -----END CERTIFICATE-----

      メタデータ

  5. 「4」で作成したCRTファイルからFingerprintを求める
    OpenSSL を使用する場合、以下のコマンドで求められる。

     openssl x509 -ハッシュアルゴリズム -fingerprint -in 「4」で生成したCRTファイルのパス -noout
    

    例: ハッシュアルゴリズム「sha512」、「4」で生成したCRTファイルのパス「path/to/x509.crt」の場合

     openssl x509 -sha512 -fingerprint -in path/to/x509.crt -noout
    

results matching ""

    No results matching ""