이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 dacsauth 명령입니다.
프로그램:
이름
dacsauth - 인증 확인
개요
닥사우트 [-m 인증 모듈 사양] [...] [-r 역할-모듈-사양] [...] [-D지령=가치]
[-aux]
[-fj 성] [-fn 페드네임] [-h | -도움] [-신분증] [-NS log_level]
[-p 암호]
[-pf 파일] [-즉각적인] [-q] [{-u | -사용자} 사용자 이름] [-v]
dacsauth 모듈
기술
이 프로그램은 DACS 모음곡.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 닥사우트 주어진 인증 자료가 인증을 만족하는지 여부를 테스트하는 유틸리티
요구 사항 및 프로세스의 종료 상태를 통해 결과를 나타냅니다. 와 비슷하다
dacs_인증(8)[1] 및 dacscred(1)[2].
닥사우트 스크립트 및 기타 프로그램이 DACS 인증
하부 구조. 성공적인 인증을 대략적인 형식으로 사용할 수 있습니다.
권한 부여; 올바른 비밀번호를 제공하는 사용자만
예를 들어 프로그램. 또는 성공 후 일부 유형의 자격 증명을 반환할 수 있습니다.
인증 또는 아마도 사용 dacs_auth_agent(8)[3] 돌아가다 DACS 신임장.
닥사우트 지정된 사용자와 관련된 역할 정보를 검색하는 데에도 사용할 수 있습니다.
닥사우트 아무것도 읽지 않는다 DACS 구성 파일. 테스트 수행에 필요한 모든 것
인수로 지정해야 합니다.
팁
If 닥사우트 내장 모듈을 사용하여 인증을 수행하거나 역할을 조회합니다. 아니
섬기는 사람 구성 요소 is 필수. 이것은 당신이 사용할 수 있음을 의미합니다 닥사우트 ~ 할 필요없이
Apache를 포함한 웹 서버에 액세스하거나 구성할 수도 있습니다.
옵션
다음 명령줄 플래그가 인식됩니다. 적어도 하나 -m 플래그(수행하기 위해
인증 테스트) 또는 적어도 하나 -r 플래그를 지정해야 합니다(역할을 구성하려면
ID에 대한 설명자 문자열을 stdout으로 인쇄합니다. 두 플래그의 조합은 다음과 같습니다.
이 경우 역할 설명자 문자열은 인증 테스트를 통과한 경우에만 출력됩니다.
성공했습니다.
-D지령=가치
이는 설정과 동일합니다. 지령, 장군 DACS 구성 지시문
가치. 참조 dacs.conf(5)[4].
-aux
에서 제공하는 다음 문자열 -p, -pf및 -즉각적인 플래그는
보조자 인증 인수. 민감한 정보를 전달하는 안전한 방법을 제공합니다.
프로그램에 PIN과 같은 보조 정보를 제공합니다. 암호를 얻기 위한 플래그,
있는 경우 명령줄에서 이 플래그 앞에 있어야 합니다.
-fj 성
성, 관할 구역 이름으로 구문상 유효해야 합니다. 필요한 경우
하지만 제공되지 않으면 호스트의 도메인 이름에서 파생된 값이 사용됩니다.
-fn 페드네임
페드네임, 페더레이션 이름으로 구문상 유효해야 합니다. 필요한 경우
하지만 제공되지 않으면 호스트의 도메인 이름에서 파생된 값이 사용됩니다.
-h
-도움
도움말 메시지를 표시하고 종료합니다.
-신분증
성공하면 인증된 DACS 표준 출력에 대한 ID.
-NS log_level
디버깅 출력 레벨을 다음으로 설정하십시오. log_level (참조 닥스(1)[5]). 기본 레벨은
경고합니다.
-m 인증 모듈 사양
필요한 인증 테스트의 각 유형은 인증 모듈 사양
바로 뒤따르는 -m 깃발. 각 인증 모듈 사양 본질적으로
의 대체 표현 인증 절[6] 및 해당 지시어는 다음에서 사용합니다.
dacs_인증(8)[1]. Auth 절이 a에 나타나는 순서와 마찬가지로 DACS
구성 파일, -m 표시되는 플래그가 중요할 수 있습니다.
에 따라 제어 키워드. 처리하는 동안 연속적으로 -m 구성 요소는
자동으로 할당된 이름, auth_module_1, auth_module_2 등, 주로
오류 보고 목적.
An 인증 모듈 사양 다음 구문이 있습니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 모듈 내장 모듈의 이름이나 유효한 약어로 시작합니다.
또는 외부 인증 모듈의 (절대) URL(
전에, URL[7] 지시어). 다음은 인식된 인증 스타일 키워드로 나타나야 합니다.
지정자(에 해당하는 STYLE[8] 지시어). 다음으로 제어 키워드는 다음과 같습니다.
와 동일한 것 통제[9] Auth 절의 지시어. 후 제어
키워드, 아래에 설명된 플래그는 어떤 순서로든 뒤따를 수 있습니다.
An 인증 모듈 사양 첫 번째 유효하지 않은 플래그(또는 플래그의 끝)가
만났다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -O 플래그는 OPTION[10] 지시.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -NS 플래그 다음에는 읽을 파일의 이름인 인수가 옵니다.
옵션, 한 줄에 하나씩 형식 name=가치. 빈 줄과 다음으로 시작하는 줄
'#'은 무시됩니다. 이 줄은 "-O"로 시작하지 않으며 따옴표는 단순히
복사되고 해석되지 않습니다. 그만큼 -NS 플래그를 사용하여 암호를 입력하지 않도록 할 수 있습니다.
명령줄을 사용하여 그렇지 않은 식을 더 쉽게 작성할 수 있습니다.
예를 들어 쉘에 의한 해석을 방지하기 위해 조심스럽게 이스케이프해야 합니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -expr 플래그는 특급[11] 지시. 그만큼 -vfs 플래그는 다음과 같이 사용됩니다.
구성 Vfs[12] 이 모듈에 필요한 지시문.
-모듈
기본 제공 인증 모듈 및 역할 모듈 목록을 한 줄에 하나씩 표시하고
그런 다음 종료합니다. 표준 모듈 이름이 인쇄되고 XNUMX개 이상의 동등한 항목이 뒤따릅니다.
약어. 인증 모듈의 경우 인증 스타일이 표시됩니다. 목록에
사용 가능한 모듈을 보려면 다음 명령을 실행하십시오.
% dacsauth -모듈
사용 가능한(활성화된) 기본 제공 인증 및 역할 모듈 집합이 결정됩니다.
언제 DACS 지어졌습니다.
-p 암호
사용할 암호를 지정합니다( PASSWORD 인수
dacs_인증).
보안
명령줄에 지정된 암호는 동일한 시스템의 다른 사용자에게 표시될 수 있습니다.
시스템.
-pf 파일
에서 사용할 암호 읽기 파일 (동등한 PASSWORD 인수
dacs_인증). 만약 파일 "-"이면 표준 입력에서 암호를 읽습니다.
묻지 않고.
-즉각적인
암호를 묻고 stdin에서 읽습니다( PASSWORD 인수
dacs_인증). 암호는 에코되지 않습니다.
-q
디버깅 출력 레벨을 줄여 더 조용해집니다.
-r 역할 모듈 사양
역할 사용자 이름 이 플래그를 제공하여 결정할 수 있습니다.
다음 역할-모듈-사양. 그만큼 -r 플래그가 반복될 수 있으며 결과 역할
결합됩니다. 각 역할-모듈-사양 본질적으로
다음에서 사용하는 역할 절 dacs_인증(8)[13]. 연속 -r 구성 요소는
주로 오류 보고를 위해 할당된 이름, roles_module_1, roles_module_2 등
목적.
A 역할-모듈-사양 다음 구문이 있습니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 모듈 구성 요소는 Roles 절의 URL[14] 지시어 및
사용 가능한 기본 제공 역할 모듈의 이름, 유효한 해당 약어,
또는 외부 역할 모듈의 (절대) URL입니다.
플래그는 다음을 따를 수 있습니다. 모듈 어떤 순서로 구성 요소. ㅏ 역할-모듈-사양 끝날 때
첫 번째 유효하지 않은 플래그(또는 플래그의 끝)가 발견되었습니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -O 플래그는 OPTION[10] 지시.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -NS 플래그 다음에는 읽을 파일의 이름인 인수가 옵니다.
옵션, 한 줄에 하나씩 형식 name=가치. 빈 줄과 다음으로 시작하는 줄
'#'은 무시됩니다. 이 줄은 "-O"로 시작하지 않으며 따옴표는 단순히
복사되고 해석되지 않습니다. 그만큼 -NS 플래그를 사용하여 암호를 입력하지 않도록 할 수 있습니다.
명령줄을 사용하여 그렇지 않은 식을 더 쉽게 작성할 수 있습니다.
예를 들어 쉘에 의한 해석을 방지하기 위해 조심스럽게 이스케이프해야 합니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -expr 플래그는 특급[11] 지시. 그만큼 -vfs 플래그는 다음과 같이 사용됩니다.
구성 Vfs[12]에 의해 요구되는 지시문 모듈.
-u 사용자 이름
-사용자 사용자 이름
인증할 사용자 이름( 사용자 이름 인수
dacs_인증). 이 사용자 이름은 유효한
연맹 및 관할권 (참조 -fn[15] 및 -fj[16] 플래그).
-v
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 -v 플래그는 디버깅 출력 레벨을 디버그 또는 (반복되는 경우) 트레이스로 범프합니다.
사용 예
보안
If 닥사우트 내장 모듈을 사용하여 인증을 수행하려면 setuid 또는
필요한 암호 파일에 액세스할 수 있는 충분한 권한을 얻기 위한 setgid(동일한
기본 제공 역할 모듈의 경우 참입니다). 외부 모듈을 사용하는 경우 해당 모듈은
액세스할 수 있는 충분한 권한으로 실행해야 함 DACS 암호화 키,
특히 federation_keys 및 가능한 경우 DACS 또는 시스템 암호 파일; 외부
그러면 모듈은 자신이 가지고 있는 모든 파일에 액세스할 수 있는 충분한 권한으로 실행해야 합니다.
필요합니다.
페더레이션에 맞는 federation_keys를 사용해야 합니다. 참조
두 개 이상의 연합에 있는 인증 모듈은 아마도 작동하지 않을 것입니다.
닥사우트 따라서 일반적으로 호출하는 사용자의 UID로 실행하면 안 됩니다.
(루트가 아닌 경우) 정보에 액세스할 수 없기 때문입니다.
그것은 필요합니다. 이것은 또한 사용자가 "속임수"(예:
디버거로 모듈 실행).
이 예는 "test"라는 암호로 "bobo" 사용자를 인증합니다. DACS 비밀번호 파일
/usr/local/dacs/conf/passwd:
% dacsauth -m passwd passwd 필요
-vfs "[passwds]dacs-kwv-fs:/usr/local/dacs/conf/passwd" -q -u bobo -p 테스트
명령의 종료 상태가 XNUMX이면 인증 테스트가 성공한 것입니다.
실패한.
다음 예제는 Unix 암호 파일에 대해 "bobo" 인증을 시도합니다. 그만큼
프로그램이 암호를 묻습니다.
% dacsauth -m 유닉스 암호 필요 -u bobo -prompt
다음 예에서는 닥사우트 NTLM을 통해 "bobo" 인증 시도
winders.example.com:
% dacsauth -m ntlm passwd suff -OSAMBA_SERVER="winders.example.com" -prompt -u bobo
이 예제는 외부 인증 모듈이 있다는 점을 제외하면 이전 예제와 유사합니다.
가 사용되고 파일에서 암호를 읽습니다. 외부 모듈로 인해 추가
구성을 제공해야 합니다. 특히 federation_keys의 위치와
연방 및 관할 구역 이름을 지정해야 합니다.
% dacsauth -m https://example.example.com/cgi-bin/dacs/local_ntlm_authenticate \
충분한 암호 -OSAMBA_SERVER="winders.example.com" \
-fn 예 -fj FEDROOT -u bobo -pf mypass \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/example/federation_keys"
에 대해 인증하려면 구글[17] 계정 [이메일 보호], 다음을 사용할 수 있습니다.
% dacsauth -m http passwd suff \
-OAUTH_URL="https://www.google.com/accounts/ClientLogin" \
-OUSERNAME_PARAMETER=이메일 -OPASSWORD_PARAMETER=비밀번호 \
-Oservice=xapi -Osource=DSS-DACS-1.4 -prompt -u [이메일 보호]
다음 예에서는 인증 여부를 결정하기 위해 식을 평가합니다.
성공해야 합니다. 사용자("bobo")에게 암호를 묻는 메시지가 표시됩니다. 문자열 "foo"가 다음과 같은 경우에만
주어진 인증이 성공합니다. 보다 현실적인 예는 다른 프로그램을 호출하여 다음을 수행할 수 있습니다.
예를 들어 결정을 내리는 데 도움이 됩니다.
% dacsauth -m expr expr suffi \
-expr '${Args::PASSWORD} eq "foo" ? ${Args::USERNAME} : ""' -사용자 bobo -프롬프트
Apache에 대한 인증 htdigest 암호 파일은 다음에서 수행됩니다.
예를 들어 stdin에서 암호를 읽습니다.
% 에코 "테스트" | dacsauth -m 아파치 다이제스트 충분 \
-OAUTH_MODULE=mod_auth_digest \
-OAUTH_FILE=/usr/local/apache2/conf/passwords.digest \
-OAUTH_REALM="DACS 다이제스트 인증 영역" \
-u 보보 -pf -
PAM 모듈을 통한 인증은 다른 모듈과 다르게 작동합니다.
사용하기 복잡 - 때문에 닥사우트 무엇에 따라 여러 번 실행해야 할 수도 있습니다.
PAM이 요구하는 정보. 예/아니오 결정을 반환하는 대신 닥사우트 인쇄할 수 있습니다
stdout에 대한 자세한 정보를 묻는 메시지가 표시됩니다. 에 제시된 운영 세부 사항을 검토하십시오.
dacs_인증(8)[18] 및 팜드(8)[19] 이 모듈을 사용하려고 시도하기 전에.
다음 예제는 명령줄에서 모듈을 사용하는 방법을 보여줍니다. 일단 기본
아이디어를 이해하고 수행하기 위해 대본을 작성하는 방법이 명백해야 합니다.
필요한 반복. 경로와 같은 예제의 세부 사항을 조정해야 할 수 있습니다.
당신의 환경. 이 예에서 사용자 이름은 처음에 지정되지 않습니다.
닥사우트 알려진 경우 실행될 수 있지만 실행됩니다.
% dacsauth -m pam 프롬프트 충분 \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OPAMD_HOST=localhost -OPAMD_PORT=dacs-pamd -fj 예 -fn 테스트
AUTH_PROMPT_VAR1="로그인:"
AUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"
% dacsauth -m pam 프롬프트 충분 \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OAUTH_PROMPT_VAR1="보보" \
-OAUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"-fj EXAMPLE -fn TEST
AUTH_PROMPT_VAR2="비밀번호:"
AUTH_TRANSID="10.0.0.124:52188:88417:5ffb0015f21ea546"
% dacsauth -m pam 프롬프트 충분 \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OAUTH_PROMPT_VAR2="암호" \
-OAUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"-fj EXAMPLE -fn TEST
처음 닥사우트 예제에서 실행되면 사용자 이름에 대한 프롬프트를 반환합니다.
("로그인:") 트랜잭션 변수와 연결됨 AUTH_PROMPT_VAR1 및
트랜잭션 식별자(AUTH_TRANSID). 후자는 다음으로 전달되어야 합니다.
의 처형 닥사우트. 의 두 번째 실행 닥사우트 사용자 이름("bobo")을 전달하고
트랜잭션 변수와 연결된 다른 프롬프트("비밀번호:")를 반환합니다.
AUTH_PROMPT_VAR2. 세 번째 실행은 암호("apassword")를 전달하지만 프롬프트가 표시되지 않습니다.
반환되어 세션이 완료되고 프로그램의 종료 상태가 반영됨을 나타냅니다.
인증결과.
팁
포장 제조를 위해 닥사우트 특정 역할에 따라 역할을 검색하려면 비밀번호가 필요합니다.
사용중인 모듈. 예를 들어 암호가 필요하지 않은 경우 local_unix_roles[20] 또는
local_roles[21] 역할을 얻기 위해 local_ldap_roles[22] 아마도
디렉터리에 바인딩하고 역할을 얻기 위한 암호입니다.
이 예는 내장 함수를 호출하여 사용자 "bobo"의 역할 문자열을 인쇄합니다.
local_unix_roles[20] 모듈:
% dacsauth -r 유닉스 -u 보보
bobo,휠,www,사용자
다음 예제는 외부 역할 모듈이 사용된다는 점을 제외하면 이전 예제와 유사합니다.
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_unix_roles \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn 예 -u 보보
bobo,휠,www,사용자
외부 역할 모듈은 실행 중인 호스트가 아닌 다른 호스트에서 실행될 수 있습니다.
닥사우트. 제공 닥사우트 설치되었으며 일치하는 federation_keys 파일이 있습니다.
로컬 호스트에서 사용할 수 있는 경우 로컬 호스트는 DACS 관할권이 있거나
other DACS 구성.
다음 예제는 역할 현[23] 사용자 "bobo"에 대해
(외부)를 사용하여 일반 이름 "Bobo Baggins"로 디렉토리 local_ldap_roles[22]
모듈 및 "직접" 바인딩 방법:
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_ldap_roles \
-Of /usr/local/dacs/ldap_roles_options_direct -u "Bobo Baggins" \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn 예 -fj FEDROOT -프롬프트
DnsAdmins, Print_Operators, Domain_Admins, 관리자
명령줄에 쉽고 정확하게 배치하기에는 플래그가 너무 많기 때문에
이를 수행하는 데 필요한 옵션은 -NS 깃발.
이것은 또한 프로그램에 암호를 전달하는 보다 안전한 방법을 제공합니다. 액세스를 보장
파일에 적절하게 제한됩니다. 파일
/usr/local/dacs/ldap_roles_options_direct에는 다음과 같은 구성이 포함될 수 있습니다.
LDAP_BIND_METHOD=직접
LDAP_ADMIN_URL*="ldap://winders.example.com/CN=" . 인코딩(url,${Args::DACS_USERNAME}) . ",CN=사용자,DC=예제,DC=com"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" ? strtr(ldap(rdn_attrvalue, \
ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
다음 예제는 "indirect" 바인딩을 사용한다는 점을 제외하면 이전 예제와 유사합니다.
방법이므로 사용자의 일반 이름을 지정할 필요가 없습니다.
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_ldap_roles \
- /usr/local/dacs/ldap_roles_options_indirect -u bobo \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn 예 -fj FEDROOT -p bobospassword
DnsAdmins, Print_Operators, Domain_Admins, 관리자
파일 /usr/local/dacs/ldap_roles_options_indirect에는 다음과 같은 구성이 포함될 수 있습니다.
이:
LDAP_BIND_METHOD=간접
LDAP_ADMIN_URL=ldap://winders.example.com/CN=관리자,CN=사용자,DC=예,DC=com
# 사용자에서 검색...
LDAP_SEARCH_ROOT_DN=CN=사용자,DC=예,DC=com
LDAP_ADMIN_PASSWORD=theSecretAdminPassword
LDAP_SEARCH_FILTER*="(sAMAccountName=${Args::DACS_USERNAME})"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" ? strtr(ldap(rdn_attrvalue, \
ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
사용하고 싶다고 가정 닥사우트 와 유사한 방식으로 LDAP를 통해 사용자를 인증하기 위해
이 dacs.conf 구성:
URL "http://example.example.com/cgi-bin/dacs/local_ldap_authenticate"
STYLE "비밀번호, 역할 추가"
컨트롤 "필수"
LDAP_BIND_METHOD "직접"
LDAP_USERNAME_URL* '"ldap://winders.example.com/cn=" . 인코딩(url, ${Args::USERNAME}) . ",cn=사용자,dc=예,dc=로컬"'
LDAP_USERNAME_EXPR* '"${LDAP::sAMAccountName}"'
LDAP_ROLES_SELECTOR* '"${LDAP::attrname}" eq "memberOf" \
? strtr(ldap(rdn_attrvalue, ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""'
이와 같은 파일(예: /usr/local/dacs/ldap_auth_options_direct)에는
다음 지시문:
LDAP_BIND_METHOD=직접
LDAP_USERNAME_URL*="ldap://winders.example.com/cn=" . 인코딩(url, ${Args::USERNAME}) . ",cn=사용자,dc=예,dc=로컬"
LDAP_USERNAME_EXPR*="${LDAP::sAMAccountName}"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" \
? strtr(ldap(rdn_attrvalue, ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
그런 다음 다음과 같은 명령을 사용하여 인증을 수행할 수 있습니다.
% dacsauth -fj FEDROOT -m http://example.example.com/cgi-bin/dacs/local_ldap_authenticate 암호 서프 \
- /usr/local/dacs/ldap_auth_options_direct 중 \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn 예 -u bobo -prompt
진단
프로그램은 인증에 성공하면 0을 종료하고 인증에 실패하면 1을 종료합니다.
에러 발생됨.
onworks.net 서비스를 사용하여 온라인에서 dacsauth 사용