OAUTH
Oauth는 무엇입니까?
웹, 모바일 및 데스크탑 응용 프로그램의 간단하고 표준적인 방법으로 보안 승인을 허용하는 개방형 프로토콜 - 문서에서
- OAUTH가 처음 설정 한 주된 이유는 사용자의 암호를 제공하지 않고도 응용 프로그램 액세스 사용자 데이터를 허용하는 것이 었습니다. 적절한 경우 : Gmail 연락처 등에 액세스하기 위해 모든 타사 앱이 이메일 + 비밀번호를 요청하는시기를 기억하십니까? 앱이 보류하고 비밀번호를 변경할 수있는 명백한 보안 위반. 일부 응용 프로그램은 사용자의 비밀번호를 평평한 텍스트 (명백한 보안 위험)에 저장합니다. 사용자가 액세스를 취소 할 수있는 유일한 방법은 비밀번호를 변경하는 것이 었습니다.
- OAUTH의 주요 특징은 사용자가 타사 앱에서 비밀번호를 입력 할 수있게하는 대신 OAUTH 서버 (기본 응용 프로그램)로 리디렉션되어 암호를 입력 한 다음 액세스를 원하는 제 3 자 앱으로 다시 리디렉션한다는 것입니다.
- 초기 사용 사례 이후 OAUTH의 다른 사용 사례는 자체 API에 퍼스트 파티 앱을 구축 한 조직 주변에있었습니다. 사례 : Google 서비스 (YouTube, Gmail 등)에 로그인하면 서비스에 직접 로그인하지 않습니다. Google의 Oauth Server (Accounts.google.com)로 리디렉션 된 후 인증 후 Google 서비스로 리디렉션됩니다.
- 혜택은 보안상의 이유로 암호 관리를 중앙 집중화하는 것입니다.
- 중앙 집중화의 또 다른 이점은 모든 사용자/서비스에 대한 인증을 쉽게 업그레이드 할 수 있다는 것입니다.
OAUTH 2
- OAUTH의 초기 구현을 안전하게 사용할 수없는 모바일 애플리케이션과 같은 일부 사용 사례가있었습니다.
- OAUTH 2의 목표는 모바일 애플리케이션을 위해 OAUTH 1을 구축하고 API 소비자에게 혼란 스러웠던 측면을 단순화하는 것이 었습니다.
- OAUTH 2의 문제는 웹과 엔터프라이즈의 프로토콜 기고자 사이에 갈등이 있다는 것이었다. 많은 경합 영역이 다른 문서에 제출되어 프로토콜에 많은 차이가 남았습니다 (결과적으로 핵심 문서에서 프레임 워크라고 함).
- 결과 Oauth 2의 웹 구현은 다른 초안의 정보를 합성해야하므로 복잡하고 혼란 스러울 수 있습니다.
- 구현 문제 :
- 표준에는 토큰 유형이 필요하지 않습니다
- 특정 보조금 유형이 필요하지 않습니다
- 토큰 문자열 크기에 대한 지침을 제공하지 않습니다
Oauth 2 응용 프로그램 작성
- 서비스 웹 사이트에서 개발자 계정을 만들고 앱 (이름, 웹 사이트, 로고 등)에 대한 기본 정보를 입력하십시오.
- 앱이 서비스와 상호 작용하는 데 사용할
client_id 및 client_secret (때로는)가 제공됩니다. - 하나 이상의 리디렉션 URL을 등록하는 데 중요합니다 (OAUTH 2 서비스가 응용 프로그램을 승인 한 후 사용자를 반환하는 경우).
- URL 리디렉션은 승인 코드를 가로 채지 못하고 세션을 가로 채는 공격자를 제공하려면 HTTPS 엔드 포인트 여야합니다.
- OAUTH 2는 다른 응용 프로그램 상태에 대해 다중 리디렉션 URL을 등록하는 대신 앱 상태를 인코딩하는 데 사용할 수있는 " 상태 "매개 변수를 제공합니다.
- 매개 변수는 사용자가 앱의 올바른 위치로 가져올 수있는 권한이있는 후 반환되는 문자열입니다. State String은 JWT와 같은 방법으로 암호화해야합니다.
- 초기에 생성 된 상태가 세션에 저장되며, 사용자가 승인하고 클라이언트 응용 프로그램으로 리디렉션 한 후 OAUTH 서버는 Access Token의 권한 부여 코드를 교환하기 전에 State String을 처음에 저장된 내용과 비교합니다.
내가 배운 다른 개념
컬
- 클라이언트 URL을 나타냅니다. URL은 개발자가 서버로 데이터를 전송하는 데 사용하는 명령 줄 도구입니다. URL (위치) 및 보내려고하려는 데이터를 지정하여 서버와 통신하겠습니다.
- 다른 프로토콜 (HTTP, HTTPS)을 지원하고 거의 모든 플랫폼에서 실행되므로 거의 모든 장치에서 통신을 테스트하는 데 이상적입니다.
- 이익:
- 휴대 성이 많고 거의 OS 및 장치와 비교할 수 있습니다
- 엔드 포인트 테스트에 유용합니다
- 장황 할 수 있으므로 디버깅에 도움이됩니다
- 좋은 오류 로깅
플라스크 나 Django와 같은 프레임 워크없이 웹에서 파이썬 스크립트를 실행
- 먼저 Python 스크립트를 CGI 스크립트로 설정해야합니다.
- CGI는 공통 게이트웨이 인터페이스를 나타냅니다. 응용 프로그램이 인터넷의 다른 응용 프로그램과 통신 할 수 있습니다.
- 먼저 Cig-Bin 폴더를 만들고 Python 스크립트를 거기에서 이동하십시오.
- 그런 다음 Python의 구축 내장
http.server 사용하여 간단한 HTTP 서버를 실행하십시오. - CGI 모드에서 HTTP 서버를 시작하기 위해 CGI -BIN이 포함 된 디렉토리에서
python -m http.server --cgi 실행하십시오. - CGI 스크립트를 실행하려면
http://localhost:8000/cgi-bin/your-script.py 로 이동하십시오. -
your-script.py 는 print("Content-type:text/htmlrnrn") 포함해야합니다.
Shebang (Hashbang)
- A
#! UNIX와 같은 운영 체제에서 실행 파일의 시작 부분에서. - 스크립트를 실행하는 데 사용해야하는 통역사 실행 파일의 경로를 지정합니다.
- 예를 들어 Python 스크립트가 시작될 때
#!/usr/bin/env python 과 같은 shebang은 시스템에 usr/bin/env python 에 위치한 Python 통역사를 사용하여 스크립트를 실행하도록 지시합니다.
자원
- OAUTH 문서
- Oauth 란 무엇이며 왜 중요한가요? - YouTube에서 OKTADEV
- OAUTH 2 서버
- IBM : 컬이란 무엇입니까?