忍者ブログ

インフラ構築手順書

はじめてのインフラ、サーバ構築時に役に立つように構築手順情報をまとめました。


HOME   »  AD連携

[PR]

広告 

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



JenkinsのLDAP(ActiveDirectory)認証設定

広告 

JenkinsのLDAP(ActiveDirectory)認証設定

Jenkinsのデフォルトでは、ユーザ認証なしでアクセスができてしまう。 ユーザ認証を行うためには、jenkinsで独自のユーザ管理で行うことは可能ではあるが、ユーザ数が増え、システム数が増えることで、個別にユーザ管理をするのは、管理が大変になります。 そこでJenkinsもActiveDirectory/LDAPを利用してユーザ認証ができる手順を紹介します。


Jenkins連携設定

LDAP(Kerberos)認証関連プラグインとして、「ActiveDirectoryプラグイン」や「LDAP Plugin」がありが、Apacheの基本認証の アカウントをそのまま利用できるプラグイン「Reverse Proxy Auth Plugin」を利用したAD連携方法を説明します。

プラグインのインストール
プラグイン「Reverse Proxy Auth Plugin」をインストールする。
管理画面を利用してプラグインをインストールする方法が一般的です。
・サイドメニュー - 「Jenkinsの管理」- 「プラグインの管理」- プラグインマネージャー画面を表示。
・「利用可能」タブ表示 - 右上のfilter欄に「Reverse Proxy」を入力 - 検索
・「Reverse Proxy Auth Plugin」選択 - 画面最下部にスクロールすると「再起動せずにインストール」または「ダウンロードして再起動後にインストール」ボタンをクリック。
 ※前者が再起動無しでインストールするモードで、後者が再起動後にインストールをするモード。

「Reverse Proxy Auth Plugin」設定
・サイドメニュー -「Jenkinsの管理」- 「グローバルセキュリティの設定」
・「グローバルセキュリティの設定」画面 - 「セキュリティを有効化」チェック
・「ユーザー情報」- 「HTTP Header by reverse proxy」- 下記情報を確認 - 「保存」
 
Header User Name X-Forwarded-User
Header Groups Name X-Forwarded-Groups




Apache連携設定

Apache設定変更
AlminiumでJenkinsをインストールした場合、すでにMysqlに登録されたユーザで認証する設定がされているので、 コメントアウトし、LDAP連携認証設定を追加する
# vi /etc/httpd/conf.d/jenkins.conf
<Location /jenkins>
  Order allow,deny
  Allow from all

  BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

  ProxyPass        http://127.0.0.1:8080/jenkins
  ProxyPassReverse http://127.0.0.1:8080/jenkins

  RewriteEngine On
  RewriteCond %{LA-U:REMOTE_USER} (.+)
  RewriteRule . - [E=RU:%1,NS]
  RequestHeader set X-Forwarded-User %{RU}e
  
#  AuthMySQLNoPasswd      Off
#  AuthMYSQLEnable        On
#  AuthMySQLHost          localhost
#  AuthMySQLDB            alminium
#  AuthMySQLUser          alminium
#  AuthMySQLPassword      alminium
#  AuthMySQLUserTable     users
#  AuthMySQLNameField     login
# AuthMySQLPasswordField hashed_password
# AuthMySQLPwEncryption  sha1-rm
# AuthMySQLSaltField     salt
# AuthMySQLGroupField    groups

#  AuthName "Redmine User"
#  AuthType Basic
#  require  valid-user


    #基本認証(AD連携)
    AuthType Basic
    AuthName "ActiveDirectory Auth"
    AuthBasicProvider ldap
    AuthLDAPURL "ldap://172.20.1.203:389/OU=web-clients,DC=ad,DC=hogehoge,DC=com?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindDN "ad\ldapuser01"
    AuthLDAPBindPassword "Password"
    AuthzLDAPAuthoritative off
    Require valid-user
</Location>
Apacheの基本認証でアクセスしたユーザをそのままJenkinsに引き渡される。


[入門LDAP/OpenLDAP―ディレクトリサービス導入・運用ガイド]の書籍横断比較とレビュー

入門LDAP/OpenLDAP―ディレクトリサービス導入・運用ガイド
著者:デージーネット
出版日:2012-05
出版社:秀和システム

[グループポリシー逆引きリファレンス厳選92]の書籍横断比較とレビュー

グループポリシー逆引きリファレンス厳選92
著者:横山 哲也
出版日:2013-08-08
出版社:日経BP社



拍手[0回]



RedmineとGitのLDAP(ActiveDirectory)認証設定

広告 

RedmineとGitのLDAP(ActiveDirectory)認証設定

RedmineとGitのユーザ認証をActiveDirectoryに登録しているユーザで認証連携させる方法を説明します。

RedmineのLDAP認証

Redmineの管理メニューに[LDAP認証]をクリックする



RedmineのLDAP認証設定

・RedmineのLDAP認証設定項目
項目説明設定値
名前 任意の名前 TEST用LDAP
ホスト LDAPサーバのホスト名 172.20.1.204(DCサーバ)
ポート LDAPポート番号(デフォルトは389) 389
LDAPS ディレクトリにLDAPSでアクセスしたい、もしくはLDAPSが要求される場合はチェックしてください。 -
アカウント LDAPの読み取りアクセスが可能なユーザーを入力してください。匿名アクセスが許可されている場合は、この欄は空白にします。 tmpad\testredmine
パスワード アカウントのパスワード -
検索範囲 検索を許可するLDAPディレクトリツリー OU=web-clients,DC=tmpad,DC=dev,DC=basis
あわせてユーザーを作成 ActiveDirectoryユーザがRedmineに未登録の場合、Redmineユーザを作成する チェック
属性 Redmineのユーザ名として使用するLDAP属性 -

・ActiveDirectoryの属性設定
 ActiveDirectoryを利用する場合、以下の変数を設定する必要がある。
ログイン名属性 sAMAccountName
名前属性 givenName
苗字属性 sN
メール属性 mail
※ActiveDirectoryユーザには、上記項目すべてを登録するようにしてください。特にメールアドレスを忘れることが 多いので気を付けてください。


GitのLDAP認証

RedmineのLDAP認証設定に引き続き、GitのLDAP認証も行っていきます。
すでにRedmineでLDAP認証設定がされており、Gitのユーザ認証をRedmineと連携されている前提で、説明します。

GitのLDAP認証に必要なパッケージ
GitでLDAP認証するためには、下記のPerlモジュールが必要となります。
Auth::Simple EPEL testing リポジトリからRPMファイルを入手してインストール
CPANサイトからインストール(要インターネット接続)
Auth::Simple::LDAP CPANサイトからインストール(要インターネット接続)
※CPANは、管理が面倒なため、[Auth::Simple]はEPEL testing リポジトリからインストールする。


依存するモジュール
[Auth::Simple],[Auth::Simple::LDAP]をインストールする前に、依存関係があるモジュールを事前にインストールする。
# yum install perl-LDAP perl-Params-Validate perl-Module-Runtime \
perl-Module-Implementation perl-Class-Accessor perl-Class-Data-Inheritable \
perl-Crypt-PasswordMD5 perl-Test-Simple 

[Auth::Simple]のインストール
EPEL testingリポジトリから[Auth::Simple]のインストールする。
# yum --enablerepo=epel-testing install grep perl-Authen-Simple

[Auth::Simple::LDAP]のインストール
・CPANパッケージのインストール
# yum install perl-CPAN perl-YAML
・[Auth::Simple::LDAP]のインストール
# perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
    prerequisites_policy [follow]
Please use 'o conf commit' to make the config permanent!


cpan[2]> o conf commit
commit: wrote '/usr/share/perl5/CPAN/Config.pm'

cpan[3]>  install Authen::Simple::LDAP
CPAN: Storable loaded ok (v2.20)
CPAN: LWP::UserAgent loaded ok (v5.833)
Warning: no success downloading '/root/.cpan/sources/authors/01mailrc.txt.gz.tmp29553'. Giving up on it. at /usr/share/perl5/CPAN/Index.pm line 225

Appending installation info to /usr/lib64/perl5/perllocal.pod
  CHANSEN/Authen-Simple-LDAP-0.3.tar.gz
  /usr/bin/make install  -- OK

Apache設定変更
ApahceにPerlモジュール[Authn::Redmine],[Authen::Simple::LDAP]を追加する。
 vi /etc/httpd/conf.d/vcs.conf
PerlLoadModule Apache::Authn::Redmine

# Gitの設定
PerlLoadModule Authen::Simple::LDAP
SetEnv GIT_PROJECT_ROOT /var/opt/alminium/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/

<Location /git/>
    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    AuthType Basic
    AuthName Git

# for Redmine Authentication
    RedmineDSN "DBI:mysql:database=alminium;host=172.20.1.205"
    RedmineDbUser "alminium"
    RedmineDbPass "password01"
    RedmineGitSmartHttp yes

    Require valid-user
</Location>  
※RedmineのDBは、別サーバ(172.20.1.205)としています。ただし、RedmineのWEBとGitは同じサーバである必要があります。


GitのLDAP認証の確認
Redmineにテストプロジェクトpj01を作成し、「新しいリポジトリ」生成する。
Redmineに「新しいリポジトリ」生成

 プロジェクト - [設定]
 [設定]画面 - [リポジトリ]タブ - [新しいリポジトリ]
 [新しいリポジトリ] - バージョン管理システム[Git] - 識別子[プロジェクト識別子と同じ] - [リポジトリの作成]

  ※RedmineとGitの連携に関する前提条件
  ・Redmineは、同一マシン上にあるGitのベア・リポジトリと連携が可能
  ・GitリポジトリへのアクセスにRedmineユーザー認証を用いる場合、リポジトリ名に制約がある
   {Redmineのプロジェクト識別子}.{任意の文字列}   ※一つのプロジェクトで複数のGITを登録する場合は、{任意の文字列}で識別する。

ADユーザで認証が通るかの確認する。
# git config --global http.sslVerify false
# git clone https://user01@localhost/git/pj01
Password:
warning: You appear to have cloned an empty repository.
※自己証明書の場合のみ「git config --global http.sslVerify false」を実行する。



[Redmineによるタスクマネジメント実践技法]の書籍横断比較とレビュー

Redmineによるタスクマネジメント実践技法
著者:小川 明彦
出版日:2010-10-13
出版社:翔泳社

[Redmine超入門]の書籍横断比較とレビュー

Redmine超入門
著者:
出版日:2013-12-11
出版社:日経BP社





拍手[0回]



CentOSをドメイン参加させずにKerberos認証させる(AD連携)

広告 

CentOSをドメイン参加させずにKerberos認証させる

複数のCentOSサーバを管理する上で、ユーザの統合管理を行いたいが、LDAPの管理は敷居が高い。 そこでActiveDirectoryを導入し、ドメイン参加させずにユーザ認証する方法を探していたところ、PAM認証でActiveDirectoryと連携する方法がありましたので、紹介します。

今回紹介するPAM認証でActiveDirectoryと連携する方法(am_krb5)では、ユーザ作成は、DCサーバ側とLinuxサーバ両方で作成する必要があります。しかしパスワードは、DCサーバ側のみの設定で完了です。


検証環境の情報
ドメイン名 TMPAD.DEV.BASIS
DCサーバ1 172.20.1.203
DCサーバ2 172.20.1.204


pam_krb5をインストール
# yum  install pam_krb5 fprintd-pam


Kerberos 認証の簡易設定
authconfigコマンドを利用するとKerberos 認証に必要な各種設定ファイル(krb5.conf、system-auth-ac)に設定を追記してくれる。
※krb5kdcオプションにはDCサーバーのホスト名またはIPアドレスを指定。複数ある場合は、後ほど設定ファイルに記述する
※krb5realmオプションには Active Directory のドメインを指定(大文字)
# authconfig --enablekrb5 --krb5kdc=172.20.1.204 --krb5realm=TMPAD.DEV.BASIS --update


設定の確認と修正
/etc/krb5.confファイルの修正
上記コマンドで/etc/krb5.confファイルにTMPAD.DEV.BASISドメインへの認証設定が追加されるが、 一部変更設定する。
krb5.confの修正点  ・不要なEXAMPLE.COMに関する設定を消す
 ・DCサーバ指定を追加(DC2台構成の場合)

# vi /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = TMPAD.DEV.BASIS
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 TMPAD.DEV.BASIS = {
  kdc = 172.20.1.203:88
  kdc = 172.20.1.204:88
 }

[domain_realm]
 tmpad.dev.basis = TMPAD.DEV.BASIS
 .tmpad.dev.basis = TMPAD.DEV.BASIS
※赤字箇所は環境により読み替えてください。
※大文字小文字は識別されますので間違わないように設定してください。


/etc/pam.d/system-auth-acファイルの確認
/etc/pam.d/system-auth-acファイルにkerberos認証の設定が追加されていることを確認する。
# cat /etc/pam.d/system-auth-ac
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so
※赤字箇所が追加されたKeberos認証関連の設定です。


ActiveDirectory認証テスト
DCサーバ側で事前にuser01ユーザの作成とパスワード設定をしておきます。
ログインをさせるADユーザと同じユーザ名を作成する
今回方式であるPAM認証でKerberos認証連携する場合、DCサーバ側で作成したADユーザと同じユーザ名をLinux側でも作成する必要があります。
# useradd -u 10001 user01
※UIDは各環境に合わせてください。しかしUID番号は、全サーバで統一することをお勧めします。

ログインテスト
別ターミナルから上記アカウントでログインできることを確認する



[基礎から分かる Samba 4 構築&運用入門]の書籍横断比較とレビュー

基礎から分かる Samba 4 構築&運用入門
著者:竹内 英雄、亀井 裕、鈴木 慶太、小田切 耕司、武田 保真
出版日:2014-06-05
出版社:日経BP社

[Software Design (ソフトウェア デザイン) 2014年 06月号 ]の書籍横断比較とレビュー

Software Design (ソフトウェア デザイン) 2014年 06月号
著者:
出版日:2014-05-17
出版社:技術評論社



拍手[0回]



Yahoo!ブックマーク Googleブックマーク はてなブックマーク livedoorClip del.icio.us FC2 ニフティクリップ iza Buzzurl 


最新記事
(09/17)
(04/09)
(04/09)
(03/22)
(01/16)
(12/30)
(12/26)
(09/21)
(09/21)
(09/20)
(09/12)
(06/13)
(06/13)
(03/14)
(02/15)
(01/03)
(01/03)
(10/04)
(09/20)
(09/15)
(09/14)
(09/14)
(09/14)
(09/06)
(08/30)
最古記事
(10/29)
(10/29)
(10/29)
(10/29)
(10/29)
(04/12)
(04/12)
(06/12)
(06/12)
(06/20)
(06/22)
(07/22)
(07/22)
(07/30)
(07/30)
(08/18)
(08/18)
(08/22)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)


PR

Copyright © インフラ構築手順書 : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

検索フォーム

カスタム検索

フリーエリア

ESXiの基本設定・運用設定
ESXiのSSH設定
ESXiの NTP設定
VMware ESXiでの時刻同期(NTP)ペストプラクティス
ESXiのゲストOS(仮想マシン)複製
ESXiのOVF形式で複製
異なるESXiバージョン間の複製(移行)
クローン作成後の後処理
仮想マシンのLVM追加
仮想共有ディスクファイルの作成
ESXi上でハイパーバイザーを稼動させる
パフォーマンスがでないとき確認すること


サーバ構築手順
ESXi上でRACを構築する
GFS2+DRBD構築
PaceMaker+MySQLレプリケーション構築
PaceMaker+DRBD構築
HeartBeat2+DRBD構築


Solarisの構築手順
Solarisのネットワーク設定変更
Solarisのホスト名変更
Solaris11のresolv.conf変更手順
Solaris11のHDD増設手順


AWS(Amazon Web Service)の基本設定・運用設定
S3 WEBサイトの構築
S3 WEBサイトのアクセス制限
S3 WEBサイトのリダイレクト設定


Windows Azureの基本設定・運用設定
AzureでWordpress構築
英語版Wordpressを日本語化する
AzureWebサイトの独自ドメイン設定
AzureWebサイトのモード変更
WEBアクセスログ解析ツールの比較


WordPressの基本設定・運用設定
WordPressの基本構造
WordPressのインストール手順
Wordpressマルチサイト機能
「続き読む(more)」カスタマイズ
Wordpressの独自PHP
Wordpressをサブディレクトリに移す
既存サブディレクトリをルートディレクトリとする
Wordpressが利用可能な共用ホスティング


Postfix構築
Postfixにおける暗号化したSMTP認証設定


SoftEtherVPNの構築
ESXi上のSoftEtherVPN構築
DDNSと組み合わせたSoftEtherVPNの設定


LinuxのAD連携
LinuxのActiveDirectory連携について
PAM認証でAD連携
ApacheでAD連携(LDAP認証)
ApacheでAD連携(Kerberos認証)
SAMBAで2台目DCサーバを構築
RedmineとGitのLDAP(AD)認証設定
JenkinsのLDAP(ActiveDirectory)認証設定


Redmine設定
Alminium(RedmineとGit/SVN)のインストール手順
RedmineとGitのLDAP(AD)認証設定
RedmineとGitの移行
JenkinsのLDAP(ActiveDirectory)認証設定


サーバの基本設定・運用設定
Apache
Apacheの基本設定
Apacheの仮想ホスト設定
PHPの基本設定
Nginxのロードバランサ設定
WebDAV構築手順
アンチウィルス
無償アンチウィルス(ClamAV)の導入手順
システム監視
システム監視ソフトMuninの導入手順
システム監視ソフトZabbixの導入手順
sarによるリソース使用情報取得


サーバ移行
Mysqlマイグレーション
MySQLマイグレーション時の問題点と解決策
Windows
Windows OS評価版からの移行
SQL Server評価版からの移行
クラスタソフト
クラスタソフトの比較

ツリーカテゴリ

広告ーSEO





人気ブログランキングへ
にほんブログ村 IT技術ブログ Webサイト構築へ

ブログ王ランキングに参加中!


最新トラックバック

バーコード

アフィリエイト2