인증을 위해 PHP 애플리케이션 (P)과 연결하고자하는 기존 Django 앱 (D)이 있습니다. 즉, 사용자가 D에 로그인하면 P의 서비스를 호출하여 암호를 확인합니다. 또한 로컬 사용자 계정으로 끝내야하며, D에 대한 속성을 저장해야합니다. 실제 보안 요구 사항은 매우 낮습니다. D가 P의 데이터베이스에 직접 액세스하는 것은 매우 어렵습니다.PHP에서 인증 API 구현하기
결코 모든 인증, 나는 이런 식의 생각을 구현 한 :
- D :
- D (P와 같은 알고리즘 사용) 사용자 이름 및 암호 연산 해시를 수집 : 전화 웹 서비스 (HTTP) P에서 사용자 이름과 해시를 전달하십시오.
- P : 사용자 이름을 조회하고, 존재하지 않으면 실패합니다.
- P : 그렇다면 전달 된 해시에 대해 저장된 해시를 확인하고 그렇지 않으면 실패합니다.
- P : 좋아, 그렇지 않으면 실패 반환, 사용자 (예를 들어, 이름, 일부 도메인 특정 물건)에 대한 다른 정보를 반환
- D : 확인을 작성하는 경우/사용자 레코드를
- D를 업데이트 : 확인하면, 그들을 로그인
을 따라서 몇 가지 질문 :.이 방법은 합리적인
- 인가? 어떤 공격이 (클라이언트에게 알리기 위해) 취약합니까?
- P : 인증 공급자에서 추가되는 기능은 무엇이라고합니까?
- 표준 프로토콜을 사용하거나 최소한 웹 서비스 호출 이름을 사용하여 이러한 작업을 수행하는 표준 방법이 있습니까?
- 6 단계는 합리적인 방법입니까? 이 방법으로 사용자 데이터베이스를 동기화 할 때 단점이 있습니까?
서버가 PHP 응용 프로그램과 동일한 로컬 네트워크에 Django 응용 프로그램을 호스팅하고 있습니까? 아니면 인터넷을 통해 인증하고 있습니까? –
같은 로컬 네트워크 (동일한 기관 내에서, 어쨌든). –