don't stop believing

STF 와 LDAP 연동 본문

Tools/STF

STF 와 LDAP 연동

Tongchun 2019. 3. 27. 14:27

STF를 설치하고 디바이스를 연결해서 사용하다보면 직원들에 대한 인증이 필요할 수 있습니다.

STF 기본 설치 후에는 로그인에 대한 제한이 없습니다.

이름과 이메일을 입력하고 Log in을 하면 제한없이 로그인이 됩니다.

STF는 몇 가지 인증 방법을 제공하고 있습니다.

https://github.com/openstf/stf/tree/master/lib/units/auth


인증된 인원만 Log in 할 수 있도록 LDAP을 연동해 보겠습니다.

우선 LDAP이 있어야 합니다. 사용중인 LDAP이 있다면 연동할 수 있습니다. STF에 대한 인증만 처리하고 싶다면 STF가 설치된 Ubuntu 서버에 LDAP을 새로 설치할 수도 있습니다.

아래 링크에 LDAP과 phpLDAPAdmin 설치 방법이 간단히 설명되어 있습니다.

https://dejavuqa.tistory.com/343


저는 위 링크와 같이 STF가 설치된 Ubuntu 서버에 LDAP과 phpLDAPAdmin을 설치했습니다.

그리고 stf 라는 그룹을 만들고 세명의 유저를 등록했습니다.

유저에는 이메일 정보를 추가로 넣었습니다.

LDAP이 준비되었다면 STF 에서 auth flag를 확인해 봅니다.

ldap으로 할꺼니까 아래와 같이 확인합니다.

sudo stf auth-ldap --help

$ sudo stf auth-ldap --help /usr/local/bin/stf auth-ldap Options: -h, --help Show help. [boolean] -V, --version Show version. [boolean] --app-url, -a URL to the app unit. [string] [required] --ldap-bind-credentials LDAP bind credentials. [string] --ldap-bind-dn LDAP bind DN. [string] --ldap-search-class LDAP search objectClass. [string] [default: "top"] --ldap-search-dn LDAP search DN. [string] [required] --ldap-search-field LDAP search field. [string] [required] --ldap-search-scope LDAP search scope. [string] [default: "sub"] --ldap-search-filter LDAP search filter. [string] --ldap-timeout, -t LDAP timeout. [number] [default: 1000] --ldap-url, -u URL to the LDAP server (e.g. `ldap://127.0.0.1`). [string] [required] --ldap-username-field LDAP username field. [string] [required] [default: "cn"] --port, -p The port to bind to. [number] [default: 7120] --secret, -s The secret to use for auth JSON Web Tokens. Anyone who knows this token can freely enter the system if they want, so keep it safe. [string] [required] --ssid, -i The name of the session ID cookie. [string] [default: "ssid"] Each option can be be overwritten with an environment variable by converting the option to uppercase, replacing dashes with underscores and prefixing it with `STF_AUTH_LDAP_` (e.g. `STF_AUTH_LDAP_SECRET`). Legacy environment variables like LDAP_USERNAME_FIELD are still accepted, too, but consider them deprecated.

LDAP 인증을 연동하기 위해 확인해야 할 사항은 아래와 같습니다.


"--ldap-url","ldap://10.10.1.54"

먼저 ldap 서버 IP를 확인해야 합니다. 저는 ldap 서버 ip가 10.10.1.54 입니다. 만약 ldap의 기본 포트(389)를 변경했다면 서버 IP뒤에 : 이후에 추가해 주면 됩니다.


"--ldap-search-dn","CN=stf,DC=ngle,DC=co,DC=kr"

검색한 dn 정보입니다. 저는 LDAP에 stf 그룹을 만들었고 그 하위로 검색하게 합니다.


"--ldap-bind-dn","DC=ngle,DC=co,DC=kr"

dn 정보를 넣습니다.


"--ldap-bind-credentials","ngle@2019"

LDAP을 설치하고 dn에 Password를 설정해야 합니다. 설정한 Password를 확인하니다. 저는 ngle@2019로 만들었습니다.


"--ldap-search-field","mail"

어떤 field로 인증할 것인지 정해야 합니다. 저는 User의 Email과 Password로 확인할 겁니다. 그럼 ldap-search-field를 mail로 합니다. 만약 id로 하고싶다면 uid로 등록하면 됩니다.


이제 확인한 정보를 아래처럼 정리합니다.


sudo stf local --public-ip 10.10.1.54 --auth-type ldap --auth-options '["--ldap-url","ldap://10.10.1.54","--ldap-search-dn","CN=stf,DC=ngle,DC=co,DC=kr","--ldap-bind-dn","DC=ngle,DC=co,DC=kr","--ldap-bind-credentials","ngle@2019","--ldap-search-field","mail"]'


sudo 권한으로 stf local을 실행합니다. --public-ip는 stf 서버의 내부 네트워크 IP를 넣습니다.

그리고 --auth-type 옵션의 값을 ldap으로 합니다. --auth-options 옵션의 값을 '[   ]' 안에 Key, Value 형식으로 넣습니다.


위 명령으로 stf를 실행합니다. 정상적으로 실행 되었다면 브라우저를 열고 stf로 접속합니다.

계정과 비밀번호 입력창이 LDAP Username으로 변경되었습니다.

저는 mail로 인증하도록 했으니 User로 등록한 계정의 Email과 비번으로 Log in 합니다.



이전에 등록한 두 대의 스마트폰이 보입니다.


LDAP과 연동이 잘 되는군요.


'Tools > STF' 카테고리의 다른 글

STF 실행 에러 (rethinkdb 관련)  (0) 2019.03.29
STF 백그라운드 실행 (nohup)  (0) 2019.03.27
STF 외부 접속 (Port Forwarding)  (0) 2019.03.27
Smartphone Test Farm - STF 설치 (on Ubuntu)  (2) 2019.03.25
Comments