OpenID 프로그래밍 : 범용 로그인 처리 방법 배우기

폭로: 귀하의 지원은 사이트 운영을 유지하는 데 도움이됩니다! 이 페이지에서 권장하는 일부 서비스에 대한 추천 수수료가 발생합니다.


OpenID는 의도적으로 무료로 분산 된 인증 프로토콜입니다. Google Sign-In과 같은 보안 인증 시스템이 타사 웹 사이트 및 응용 프로그램에 액세스 할 때 사용자를 인증 할 수있는 방법을 제공합니다. OpenID 및 기타 분산 인증 시스템 덕분에 개인 블로그, 소규모 비즈니스 웹 사이트 및 모바일 앱은 업계 리더가 설계하고 구현 한 보안 인증 시스템을 사용할 수 있습니다.

OpenID의 역사

OpenID는 LiveJournal의 설립자 인 Brad Fitzpatrick이 Yadis (Yet Another Distributed Identity System)라는 새로운 분산 ID 시스템을 발표 한 2005 년 5 월에 탄생했습니다. 원래 발표는 Brad가 LiveJournal 사용자를 타사 웹 사이트에 인증하는 방법으로 Yadis를 구상했음을 분명히했습니다. 불과 며칠 후, opendis.net 도메인이 프로젝트에 사용되도록 선물되었을 때 Yadis의 이름이 OpenID로 변경되었습니다..

OpenID 1.0은 실제 유틸리티가 제한적인 개념적 프레임 워크입니다. 그러나 개발 과정이 빠르게 진행되면서 프로젝트가 시작된 지 약 1 년 후에 OpenID 2.0이 발표되었습니다. OpenID 2.0의 채택은 광범위하고 빠르게 이루어졌으며 2007 년 초에는 Symantec, Microsoft, AOL 및 Sun Microsystems가 출시되었습니다..

2014 년 OpenID Connect가 탄생했습니다. 이 차세대 OpenID는 OpenID 2.0과 비교할 때 두 가지 주목할만한 개선 사항을 제공합니다.

  • OAuth 2.0의 강력한 통신 및 인증 프로토콜을 기반으로 구축되었습니다..
  • 이전 버전보다 개발자에게 친숙하고 모바일 응용 프로그램과 통합하기가 더 쉽습니다..

OpenID를 사용하는 사람?

OpenID는 Google, Yahoo !, Microsoft 및 PayPal을 비롯한 많은 유명 웹 사이트에서 발행합니다. 이러한 사이트 중 하나에 등록하면 OpenID가 할당됩니다. 결과적으로, 모르는 경우에도 이미 1 개, 2 개 또는 소수의 OpenID가있을 수 있습니다..

전자 상거래 사이트, 블로그, 소셜 네트워크 등 모든 유형의 웹 사이트는 OpenID를 사용하여 사용자를 인증합니다. 실제로, 10 억 개 이상의 등록 된 OpenID와 사용자 인증을 위해 OpenID를 허용하는 100 만 개 이상의 웹 사이트 및 응용 프로그램이 있습니다..

OpenID는 어떻게 작동합니까?

OpenID 사용자 인증에는 세 가지 당사자가 있습니다.

  • 최종 사용자: 웹 사이트 또는 응용 프로그램에 대한 자신 (즉, 로그인)을 인증하려는 개인.
  • 신뢰 부분 (RP): 사용자 인증이 필요하고 OpenID 프로토콜을 사용하여 타사와 통신하여 최종 사용자를 인증하는 웹 사이트 또는 응용 프로그램.
  • 아이덴티티 공급자 (IDP): OpenID를 등록하고 OpenID 인증 서비스를 제공하는 Google과 같은 타사 서비스.

이 세 당사자를 정의하면 OpenID의 작동 방식은 다음과 같습니다.

  1. 최종 사용자는 IDP에 계정을 등록하여 OpenID를 요구합니다..
  2. IDP는 최종 사용자를위한 OpenID URL을 만듭니다. 이 URL은 최종 사용자에게 고유하며 URL 소유권을 주장하려면 최종 사용자가 IDP 시스템에 로그인해야합니다. 예를 들어 Google을 IDP로 사용하는 경우 OpenID URL의 역할을하는 Google+ URL을 대신하여 Google 계정에 로그인하여 해당 URL의 소유권을 확인해야합니다..
  3. 최종 사용자는 OpenID RP를 방문하고 Google과 같은 타사 IDP로 로그인하여 계정을 등록하는 옵션을 선택합니다.
  4. 최종 사용자가 타사 IDP로 리디렉션되고 로그인하여 OpenID URL의 소유권을 확인하라는 메시지가 표시됩니다..
  5. 최종 사용자가 IDP에 의해 성공적으로 인증되면, IDP는 최종 사용자의 고유 한 OpenID URL을 RP로 되돌려 보내며, RP는 새 사용자를 해당 URL에 등록합니다.

RP는 최종 사용자 암호를받지 않습니다. 결과적으로 RP는 사용자 비밀번호를 안전하게 저장하는 것에 대해 걱정할 필요가 없습니다. IDP는 인증을 처리 한 다음 최종 사용자의 OpenID URL을 사용하여 RP에 대한 최종 사용자의 신원을 확인합니다..

phpMyID로 자신 만의 OpenID URL 만들기

지금까지 우리는 잘 알려진 OpenID 제공 업체의 예를 사용했습니다. 그러나 OpenID는 의도적으로 무료입니다. 즉, 모든 사람, 심지어 당신도 OpenID를 등록하고 IDP의 역할을 할 수 있습니다. 웹 보안 전문가가 아니라면 공개 OpenID 등록을 설정하고 제공하는 것은 좋은 생각이 아닙니다. 그러나 개인 용도 및 교육을 위해 OpenID IDP를 설정하려는 경우 실제로 그렇게 어려운 것은 아닙니다..

phpMyID는 사용자가 자신의 개인 OpenID로 제어하는 ​​URL을 설정하는 데 사용할 수있는 간단한 스크립트입니다. 원래 프로젝트는 2008 년에 취소되었으며 PHP 5.4에서는 작동하지 않았습니다. 그러나 몇 가지 업데이트 및 보안 향상으로 PHP 5.4 및 5.6에서 프로젝트 속도가 향상되었으며 GitHub에서 얻을 수 있습니다..

phpMyID가 OpenID Connect 사양을 충족하지 않는다는 점은 주목할 가치가 있습니다. 그러나 OpenID 2.0 URL을 생성하는 데 사용할 수 있습니다.

phpMyID는 스크립트를 실행하는 PHP 버전, 사용자가 설정 한 비밀번호 보안 조치 및 호스트 된 서버를 보호하는 보안 조치만큼 안전합니다. 결과적으로, phpMyID를 사용하여 자신 만의 OpenID를 설정하는 것은 흥미로운 프로젝트이지만 안전을 위해 필요한 전문 지식이 없으면 궁극적으로 위험한 노력을 기울입니다. 다시 말해, phpMyID를 사용하여 OpenID에 대해 배우지 만 일반적인 사용자 인증에는 사용하지 마십시오.

자원

다음 프로젝트에 OpenID 인증을 통합하려는 경우 시작하는 데 도움이되는 많은 리소스가 있습니다..

OpenID 개요

구현에 뛰어 들기 전에 OpenID의 작동 방식을 확실하게 이해하고 싶을 것입니다. 다음 리소스는 필요한 고급 개요를 제공합니다.

  • OpenID Connect FAQ 및 Q&As : OpenID Foundation의 공식 FAQ입니다. OpenID에 대한 자세한 소개는이 페이지를 참조하십시오.
  • OpenID의 개발자 팁 설명 : OpenID를 처음 구현하는 경우 일반적인 팁을 피하기 위해이 팁을 읽으십시오..
  • Nat Sakimura의 OpenID Connect 요약 : OpenID의 구현에 약간의 위협이있는 경우이 짧은 기사는 파트너와 자격 증명 공급자가 상호 작용하는 방식에 대한 개요를 제공합니다..
  • Nat Sakimura의 세 가지 간단한 단계로 OpenID Connect 서버를 작성하십시오. 수행하는 것보다 배우는 더 좋은 방법은 없습니다. 이미 OAuth 2.0을 사용하고 있다면이 튜토리얼은 OAuth 2.0 인증을 기반으로 OpenID Connect 서버를 빠르게 설정하는 과정을 안내합니다..

기술 자료

소개 및 개요를 넘어 구현을 시작할 준비가 되었으면 여기에 액세스해야 할 기술 사양 및 라이브러리가 있습니다..

  • 라이브러리, 제품 및 도구 :이 OpenID 라이브러리, 제품 및 도구 목록은 OpenID Foundation에서 유지 관리합니다. 프로젝트를위한 개발 프레임 워크 또는 언어를 이미 염두에두고 있다면이 목록에서 환경을위한 도구, 제품 또는 라이브러리를 찾을 가능성이 매우 높습니다. 사용 가능한 리소스에는 JavaScript, Java, PHP, Python, Ruby, C #, C 및 기타 여러 언어로 작성된 라이브러리와 Amazon Web Services, Microsoft Azure, Ping Identity 및 기타 여러 제공 업체의 OpenID 제품이 포함됩니다..
  • OpenID Connect 시작 :이 OpenID Connect 공식 홈페이지에는 OpenID 사양에 대한 링크가 포함되어 있습니다. 사용 가능한 문서로는 OpenID Connect Core 사양, 기본 클라이언트 구현 자 안내서, 암시 적 클라이언트 구현 자 안내서 등이 있습니다..
  • OpenID 제공자 리소스 : 일부 OpenID 제공자는 광범위한 문서를 제공하므로 개발자는 사용자 인증을 위해 OpenID 시스템을 사용할 수 있습니다.
    • Google Identity Platform : OpenID Connect
    • PayPal 개발자 : PayPal과의 통합 로그인
    • 야후 개발자 네트워크 : OpenID Connect
    • Microsoft Azure : OpenID Connect 및 Azure Active Directory를 사용하여 웹 응용 프로그램에 대한 액세스 권한 부여

서적

OpenID를 소개하고 인증 구현을 설명하는 잘 검토 된 서적도 제공됩니다.

  • OAuth 2.0 : Matthias Biehl의 API Security (2015) 시작 : 고급 소재를 다루는 기초를 제공하는 OAuth 2.0 및 OpenID Connect에 대한 간단한 소개.
  • 고급 API 보안 : Prabath Siriwardena의 OAuth 2.0, OpenID Connect, JWS 및 JWE (2014)로 API 보안 : OAuth 2.0 및 OpenID를 포함하여 오늘날 가장 널리 사용되는 인증 표준을 다루는 API 인증에 대한 철저한 소개입니다. 250 페이지가 넘으면 빠른 읽기가 아닙니다..
  • Ryan Boyd의 OAuth 2.0 (2012) 시작 : 사용자 인증을위한 OAuth 2.0 구현에 대한 간단한 소개. 이 결과 중심의 텍스트는 OAuth 2.0을 소개하고 인증 시스템을 구축 할 필요없이 OpenID Connect가 인증을 가능하게하는 방법을 설명합니다..

다음 단계

OpenID Connect는 독립형 인증 프로토콜이 아닙니다. 이를 사용하려면 모든 OpenID Connect 시스템이 그 위에 구축되어 있으므로 OAuth 2.0에 대한 실무 지식이 필요합니다. OpenID Connect를 시작하기위한 학습 곡선은 가파 릅니다. 배울 것이 많습니다. 일단 숙달하면 비교적 안전한 사용자 인증을 웹 사이트 나 응용 프로그램에 통합 할 수 있습니다..

추가 자료 및 자료

코딩 및 개발과 관련된 더 많은 가이드, 자습서 및 인포 그래픽이 있습니다.

  • OAuth 소개 및 리소스 : 사용자를 대신하여 두 개의 응용 프로그램을 허용하는 밀접한 관련 시스템.
  • OpenSSL 소개, 자습서 및 리소스 : SSL을 사용하여 보안 웹 페이지 만들기 시작.
  • Swift 소개 및 자료 :이 언어는 최신 C 유사 언어 중 하나입니다. 프로그래밍의 미래? 여기서 알아보십시오!

어떤 코드를 배워야합니까?

코딩해야 할 프로그래밍 언어에 대해 혼란 스러우십니까? 인포 그래픽, 어떤 코드를 배워야합니까?를 확인하십시오. 언어의 다양한 측면에 대해서만 논의 할뿐만 아니라 “생활을 위해 Java를 얼마나 많은 돈을 벌 수 있을까요?”

어떤 코드를 배워야합니까?
어떤 코드를 배워야합니까?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me