存档

文章标签 ‘openldap’

redmine配置openldap认证

2014年7月2日 没有评论

前段时间弄了openldap,这几天部署了redmine,然后配置redmine采用openldap认证

openldap安装部署可以参照:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html

如果是使用微软的域控来提供认证,可以参考 http://54im.com/redmine/redmine-ldap%E9%AA%8C%E8%AF%81.html 其实就是登录名那里不一样,原理是一样的。

 

redmine安装可参考我同事的一篇文章 http://www.julyin.com/archives/redmine1.html

这里先用管理员登录redmine,然后点最上面的管理,然后点LDAP认证,安装如下配置

下面的属性,就是在openldap中新建用户的时候属性,可以对照下面的图看看,填写好后,可以测试下是否能连接openldap

 

测试是否连接正常

最后登录试试

 

分类: redmine 标签: ,

Centos6安装gitlab+ldap认证

2014年5月27日 3 条评论
 

 

1.环境介绍

 

系统:centos 6.5 x64

git要求 1.7.10+

ruby要求1.93+,我这里用的2.1.2版本

redis要求2.0+

 

GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库

 

2.添加EPEL安装源

 

 

3.安装GitLab所需依赖包和工具

 

4.安装ruby2.1

 

Gitlab 是基于 Ruby on Rails 开发的工具,要跑起来的话自然少不了安装 Ruby

查看下ruby是否安装正确

国外的gem源太慢了,这里用taobao的源  http://ruby.taobao.org/

安装bundle:

所有有bundle命令的执行都要注意
在执行目录下,要修改Gemfile文件头的rubygems.org到ruby.taobao.org,否则是不工作的

 

5.安装 Git 和 Gitolite

 

由于gitlab对git版本要1.7.10+,而默认centos 6 yum源里面的git是1.7.1版本,所以这里我们要选择另外的源

 

yum配置好后,这里开始安装

 

6.安装nginx mysql redis

 

软件安装

 创建gitlab 数据库用户

 添加git账户

这里就不设置密码,git帐号不用登录系统

 

7.安装GitLab-shell

 

软件下载

 修改配置文件

注意:如果gitlab是使用https访问,则需将http替换成https,配置文件中的self_signed_cert要修改成true,否则gitlab shell在通过api和gitlab进行通信的时候就会出现错误,导致项目push出错。因为后面配置web服务器的时候是使用ssl,所以这里要按照ssl的方式配置。

Tips: 另外如果使用的域名是测试域名,不要忘记在系统的/etc/hosts做域名映射。

安装

8. 安装GitLab

 

软件下载

 配置

一些全局配置

配置数据库访问文件

编辑config/database.yml,设置其中连接数据库的账号密码,笔者的配置部分如下:

修改其中username和password就可以了,其中密码就是上面数据库步骤中创建gitlab用户的密码。

确保该文件只有git账号有权限读取。

 

9.安装Gems

这里要用root安装

安装必需的 Ruby Gems

 

初始化数据库数据(执行输入 Yes 继续创建)

检查应用程序状态

启动gitlab服务

检查配置(要所有选项都通过)

有个权限提示

这里修改下权限

 

10.nginx配置

 

之前已经yum安装过了,这里修改下配置。

 

 

11.web访问

 

访问http://gitlab.54im.com报502,群里大神曹岩帮忙指导,没下载静态资源。

nginx日志中报

Error: upstream prematurely closed connection while reading response header from upstream

执行下面这个初始化下gitlab的资源

 

继续访问,还是502,nginx日志里面

2014/05/28 08:56:10 [crit] 9288#0: *24 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 192.168.1.4, server: gitlab.54im.com, request: “GET /favicon.ico HTTP/1.1”, upstream: “http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico”, host: “gitlab.54im.com”

 

想起来,刚刚我没有su – git用户下拉取资源,这里chown -R git.git /home/git/gitlab

nginx的运行用户是nginx,gitlab用户运行的用户是git,这里将nginx加入git组

上面解决好后,再次访问  http://gitlab.54im.com

这里默认的帐号密码就是之前初始化的时候,给你的帐号密码

Administrator account created:

login………admin@local.host
password……5iveL!fe

登录后界面是这样的

12.邮件配置

 

Gitlab邮件提醒方便跟踪项目进度,我这里用GMAIL的stmp来发送邮件


 

#配置好你的邮箱和密码

 

这里我去新建个用户,测试下邮件发送功能
在163邮箱中收到gitlab用户发来的邮件
用帐号 ldtrain@163.com登录,密码  ouuNZdi7,第一次会让你重置密码的

13.ldap配置

 

cd /home/git/gitlab

vi config/gitlab.yml

port 这里填openldap端口,如果是用加密的话,端口是 636

method 这里是openldap认证方式,plain是简单认证,还有ssl 和tls,如果是加密的话选ssl或者tls,对应端口也是636

base:填自己的组织架构,当然也可以精确到OU, ou=People,dc=openldap,dc=54im,dc=com 这里有只有People这个OU下面的用户能登录到gitlab

user_filter 禁止某个用户登录

bind_dn 这个是指定连接openldap的帐号

password 这个是指定连接openldap的账户密码

 

登录

登录的时候报 Could not authorize you from LDAP because “(ldap) account must provide a dn,uid and email address”

感谢@张成 成爷指导 gitlab帐号必须要有邮件这个属性,我的openldap里面没有,这里我在openldap里面给ldapuser 这个帐号添加email属性。

 

14.gitlab使用

  • gitlab管理员新建用户组
  • gitlab管理员新建项目
选择该项目是公开还是私有项目
如果你想进行代码的上传与下载等操作,需要你把自己的ssh key导入到gitlab里
gitlab管理员添加成员

想让其他用户也能看到并下载上次这个项目,需要将用户加入到这个组

用户登录后就可以看到这个项目,想要上传下载代码,首先得让管理员开相关权限,然后把自己的ssh key加入到gitlab中

上面有5个权限,我们来看下具体有哪些区别

guest    (r-)

reporter    (r)

developer    (rw)

master      (rw)(member,proteted,branch)

owner     (rw)(rename,transfer)

 

  • git用户操作

在linux上使用

 

在windows上使用

 

附录:

  • 如果访问报500 We’re sorry, but something went wrong

 

发现redis端口连接不上,我这里确实忘记开redis了, /etc/init.d/redis start

 

  • 如果第一次登录报 invalid email or password

可能由于你数据库没有初始化好

如果在linux客户端提交的时候报

/usr/bin/env: ruby: No such file or directory
fatal: The remote end hung up unexpectedly

在gitlab服务器端做如下操作

$rubyhome=ruby安装目录

sudo ln -s $rubyhome/ruby /usr/bin/ruby
sudo ln -s $rubyhome/bin/gem /usr/bin/gem

 

本文参考:

http://www.01happy.com/centos-6-5-install-gitlab/

http://longgeek.com/2013/12/26/ci-system-structures-ii-gitlab-installation/

 

分类: git 标签: , , , ,

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

2014年5月21日 14 条评论
 

 

1.概念介绍

 

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。 简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。 LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大

 

现在市场上有关LDAP的产品已有很多,各大软件公司都在他们的产品中集成了LDAP服务,如Microsoft的ActiveDirectory、Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。LDAP的开源实现是OpenLDAP,它比商业产品一点也不差,而且源码开放。

OpenLDAP 是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的

这里引申一下LDAP主要的简称含义:

  • o– organization(组织-公司)
  • ou – organization unit(组织单元-部门)
  • c – countryName(国家)
  • dc – domainComponent(域名)
  • sn – suer name(真实名称)
  • cn – common name(常用名称)

阅读全文…

redmine 微软ldap验证配置

2013年7月4日 没有评论

CN, OU, DC 都是 LDAP 连接服务器的端字符串中的区别名称(DN, distinguished   name)
LDAP连接服务器的连接字串格式为:ldap://servername/DN
其中DN有三个属性,分别是CN,OU,DC
LDAP是一种通讯协议,如同HTTP是一种协议一样的!
在 LDAP 目录中,

  • DC (Domain Component)
  • CN (Common Name)
  • OU (Organizational Unit)

例如:CN=test,OU=developer,DC=domainname,DC=com
在上面的代码中 cn=test 可能代表一个用户名,ou=developer 代表一个 active directory 中的组织单位。这句话的含义可能就是说明 test 这个对象处在domainname.com 域的 developer 组织单元中

先上我已经测试通过的图

Here is an typical example using Active Directory:

Here is another example for Active Directory with a compartmentalized intranet:

分类: redmine 标签: , ,