タグ ‘ OpenAM

RedmineをSAML認証に対応させる

RedmineをSAML認証に対応させ、SSO出来るようにするmemo

OpenAM 11と連携させた時の設定例です。
Redmineは2.0.0以上である必要があり、正常に動作していることが前提

Ruby とか Rails とか全然わかってないので、とりあえず動いたって言うレベル

  1. GitHubから、以下のプラグインをダウンロードし、pluginsディレクトリに展開します。
    chrodriguez/redmine_omniauth_saml · GitHub.
  2. bundle installを実行し、依存関係を解決します。
  3. Redmineのルートディレクトリで、以下のコマンドを実行
    setenv RAILS_ENV production
    rake redmine:plugins
  4. 展開した中にある sample-saml-initializers.rb を Redmineのルートディレクトリにある
    config/initializers へ saml.rb としてコピー
  5. saml.rb を編集
  6. Redmineのインスタンスを再起動
  7. Redmineの管理 → プラグイン → Redmine Omniauth SAML plugin で必要に応じて設定する

saml.rbは以下の感じ

RedmineSAML = HashWithIndifferentAccess.new(
	:assertion_consumer_service_url	=> "http://redmine.example.local:9000/auth/saml/callback",
	:issuer							=> "http://redmine.example.local:9000/",
	:idp_sso_target_url				=> "http://openam.example.local:8080/OpenAM-11.0.0/SSORedirect/metaAlias/idp",
	:idp_cert_fingerprint			=> "DE:........:33", # SSL SHA-1 fingerprint
	:name_identifier_format			=> "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
	:attribute_mapping				=> {
		:login		=> 'extra.raw_info.EmailAddress',
		:firstname	=> 'extra.raw_info.givenname',
		:lastname	=> 'extra.raw_info.sn',
		:mail		=> 'extra.raw_info.EmailAddress'
	}
)

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :saml, RedmineSAML
end

 

 

OpenAMを使ってみる(2)

前回の記事に引き続き

今回は、DesktopSSOが出来るところまでやってみる。
スクリーンショット取るよりスクリーンキャプチャの方が楽だったので途中まで作ってみた。

  • 前提条件
    • OpenAMが動いているマシンのDNSサーバはActiveDirectory配下のDNSサーバであること
    • OpenAMのホスト名
      • openam.lan.tatsuya.info
    • ADドメイン名
      • lan.tatsuya.info
    • ドメインコントローラのホスト名
      • dc01.lan.tatsuya.info
    • OpenAMとADを連携させるためのユーザをAD上に作成しておく
      • ユーザ名:openamsso
      • パスワード:Password1234

キータブファイルの作成

以下のコマンドを、ドメインコントローラ上のコマンドプロンプトで実行し、キータブファイルを作成します。
このファイルはあとで、OpenAMが必要とするので、OpenAMが動いているマシンに移動しておきます。

ktpass.exe -out keytab -pass Password1234 -mapuser openamsso \
-princ HTTP/openam.lan.tatsuya.info@LAN.TATSUYA.INFO \
-ptype KRB5_NT_PRINCIPAL -target LAN.TATSUYA.INFO -kvno 0 -crypto RC4-HMAC-NT

OpenAMの設定

  1. OpenAMにamadminとしてログイン
  2. 「アクセス制御」タブを開く
  3. 「/(最上位のレルム)」を開く
  4. 「認証」タブを開く
  5. 「モジュールインスタンス」から「新規」を開く
  6. 「名前」は「DesktopSSO」とし、「タイプ」から「WindowsデスクトップSSO」を選び、「了解」をクリック
  7. 再び「モジュールインスタンス」から先ほど作成した「DesktopSSO」を開く
  8. 以下のパラメータを設定し、「保存」をクリック
    • サービス主体:HTTP/openam.lan.tatsuya.info@LAN.TATSUYA.INFO
    • Keytabファイル名:先ほど生成したキータブファイルを置いた場所をフルパスで
    • Kerberos レルム:LAN.TATSUYA.INFO
    • Kerberos サーバー名:dc01.lan.tatsuya.info
    • ドメイン名を含む主体を返す:認証時に利用するユーザ名を foobar にするか foobar@LAN.TATSUYA.INFO にするか
  9. 「認証連鎖」から「新規」を開く
  10. 「名前」は「SSO」とし、「了解」をクリック
  11. 「追加」をクリックし、以下のパラメータを設定し、「保存」をクリック
  12. 「コア」の「組織認証設定」を「SSO」に変更し、「保存」をクリック
  13. 「対象」タブを開く
  14. ユーザの「新規」をクリックし、以下のパラメタを設定し、「了解」をクリック
    • ID:AD上のユーザ名
      ドメイン名を含む主体を返すにチェックを付けた場合は完全修飾で
    • 性:foobar
    • フルネーム:foobar
    • パスワード・パスワード(確認):password
      デスクトップSSOを利用するだけなら、このパスワードは使いません。

ここまでの設定で、デスクトップSSOが動作するはずです。

ゾーンがイントラネットになるURLでOpenAMにアクセスすると、自動的に認証され、ユーザ情報が編集出来る画面が表示されます。

OpenAMを使ってみる(1)

とあるきっかけでSSOについて調べてみると、オープンソースでSSOの仕組みを構築出来る、
OpenAMと言うのを見つけた。

ADドメイン環境のWindows端末でSSOが出来るDesktop SSOを試してみたときのmemo
だけど、かなりいろいろ出来る上にLDAPとかの知識ないと、使いこなすのは難しそう。

インストール

現時点での安定版は、OpenAM 11だと思うんだけど、コミュニティ版のページだと、10か開発版しかないみたいです。
ForgeRock BackStageと言うサイトでユーザ登録すると、安定版の11をダウンロードすることが出来ます。

WARファイルをダウンロードして、TomcatのApp Managerから展開するのが楽かな。
デフォルトでアップロード出来るWARファイルのサイズがおそらく50MBとかで、
制限に引っかかるのでmanager/WEB-INF/web.xmlあたりでアップロード出来るサイズを大きくする必要があるかも。

あと、以下の環境変数が必要

  • JAVA_OPTS
    • -Xmx1024m -XX:MaxPermSize=256m
  • CATALINA_OPTS
    • -Dcom.iplanet.am.cookie.c66Encode=true

初期設定

いろんなサイトでいろんな事が書かれているんだけど、自分が試した感じだとポイントは次の通り

  • インストールする時にアクセスするURLはIPアドレスではなく、FQDNで指定したホスト名で有る必要がある
    • Cookieのドメインに関係していて、 http://192.168.100.100:8080/ とかだとダメ。 http://openam.example.com:8080/ で有る必要がある
    • 画面イメージ
  • ホスト名の逆引きが出来る必要がある
    • インストール中にポート番号を自動的に取得してくるのですが、ホスト名の逆引きが出来ないと、-1と言うポート番号になってしまいます。
      また、そこをなんとかパスしても、インストール中にエラーになります。
    • 画面イメージ
    • 参考記事参考記事2
  • 環境変数 HOMEに書込が出来ないとダメ
    • Tomcatが動いているユーザのホームディレクトリにログなどをはき出すディレクトリが作成されるため
    • 画面イメージ
  1. OpenAMのページにアクセスする
  2. デフォルト設定の作成をクリック
  3. デフォルトユーザとデフォルトポリシーエージェントのパスワードを入力
    それぞれ8文字以上で、それぞれ別のパスワードである必要がある
  4. 設定の作成をクリック
  5. 設定が完了しました。と言う表示が出れば、とりあえずOK

アーカイブ

2017年6月
« 3月    
 1234
567891011
12131415161718
19202122232425
2627282930