2012-05-15 2 views
1

SSL을 통해 수은 서버를 설정했습니다. 아파치 설정 파일에서 나는 mysql 데이터베이스를 사용하여 인증을 설정했다.mercurial ssl 액세스 허용 끌어 오기 밀어 넣기 인증 필요

누구나 자격 증명없이 저장소에서 가져올 수 있지만 인증 된 사용자에게 밀어 넣기 권한을 제한하고 싶습니다. 그것이 지금 행해지는 방법은 모두가 끌어 당기거나 밀기 위해 인증되었거나 아무도 인증되지 않습니다.

<Location /hg/repo> 
    AuthType Basic 
    AuthName "Repository Access" 
    AuthBasicAuthoritative Off 
    AuthUserFile /dev/null 
    AuthMySQL     On 
    AuthMySQL_Authoritative  On 
    AuthMySQL_Host    localhost 
    AuthMySQL_DB     repo 
    AuthMySQL_User    repo 
    AuthMySQL_Password_Table  users_auth_external 
    AuthMySQL_Group_Table  users_auth_external 
    AuthMySQL_Username_Field  username 
    AuthMySQL_Password_Field  passwd 
    AuthMySQL_Group_Field  groups 
    AuthMySQL_Encryption_Types SHA1Sum 
    Require group    pink-image 
    <LimitExcept GET> 
     Require valid-user 
    </LimitExcept> 
</Location> 

HG는 관계없이 LimitExcept 스위치는 SSL 풀에 대한 인증이 필요합니다

내 아파치 구성이 있습니다.

저장소로 푸시하기위한 인증을 제한하는 방법이 있습니까?

누군가가 개발자 인 경우 간단한 HTTP 액세스로 충분하지 않습니다. 개발자가 https를 통해 코드를 체크 아웃하기 때문입니다.

개발자 중 일부가 방화벽에서 금지 한 ssh 포트를 가지고 있기 때문에 SSH 액세스를 할 수 없습니다.

hg가 https 자격 증명을 기억한다면 솔루션 중 하나가 될 것입니다.

질문을 읽어 주셔서 감사합니다.

답변

2
One of the solutions would be if hg would remember the https credentials. 

푸시 앤 풀의 자격 증명을 기억할 수 있습니다. 당신은 설정 파일 중 하나에 세부 사항을 추가 괜찮다면 (사용자의 설정 또는 두 저장소 클론의 hgrc)이이 설정 파일에 암호를 넣어 의미

하는 당신이 그렇지 않을 수도 hg help configauth 섹션에서 봐 암호를 더 안전하게 저장하는 대신 Mercurial Keyring Extension을 사용할 수 있습니다.

0

자동 자격 증명으로 충분하지 않습니다. 저장소는 웹 인터페이스를 통해 액세스 할 수 있어야합니다. 그러나 동일한 설정 파일이 웹 인터페이스를 사용할 수 없게 만드는 브라우저의 인증 대화 상자를 팝업합니다.

3

인증은 예외 규칙에 래핑되어야합니다.

<Location /hg/repo> 
    <LimitExcept GET> 
     AuthType Basic 
     AuthName "Repository Access" 
     AuthBasicAuthoritative Off 
     AuthUserFile /dev/null 
     AuthMySQL     On 
     AuthMySQL_Authoritative  On 
     AuthMySQL_Host    localhost 
     AuthMySQL_DB     repo 
     AuthMySQL_User    repo 
     AuthMySQL_Password_Table  users_auth_external 
     AuthMySQL_Group_Table  users_auth_external 
     AuthMySQL_Username_Field  username 
     AuthMySQL_Password_Field  passwd 
     AuthMySQL_Group_Field  groups 
     AuthMySQL_Encryption_Types SHA1Sum 
     Require group    pink-image  
    </LimitExcept> 
</Location> 
+0

올바른 방법입니다. 추가주의 사항으로,'Require' 옵션 ('Require group','Require valid-user' 등) 만 LimitExcept 절 내에 캡슐화해야합니다. 이렇게하면 액세스 제어 (즉, 특정 사용자/그룹이 읽히거나 다른 사용자/그룹이 읽기/쓰기를 얻음)와 관련하여 세분화가 가능합니다. –

관련 문제