2010-06-10 2 views
13

PHP로 OpenID 소비자를 개발 중이며 환상적인 LightOpenID 라이브러리 (http://gitorious.org/lightopenid)를 사용 중입니다. 예제 클라이언트 스크립트에서 찾은 내 코드를 기반으로 소비자를 성공적으로 만들었습니다. 그러나 나는 걸림돌을 가로 지르다 : Google은 openid.identityopenid.claimed_id"http://specs.openid.net/auth/2.0/identifier_select" (here 참조)으로 설정해야합니다. 그렇게하면 작동하지만 다른 제공자 (예 : AOL)는 그렇지 않습니다.Google은 "identifier_select"가 필요한 유일한 OpenID 공급자입니까?

여기 내 질문은 :

  1. 구글 코너 케이스 - 그것은 identifier_select이 요구되는 유일한 오픈 ID 공급자입니다, 오픈 ID 사양에 반대?
  2. LightOpenID 라이브러리에 단점이 있습니까?
  3. OpenID의 작동 방식을 이해하고 있습니까?
  4. identifier_select을 필요로하는 유일한 제공 업체가 Google이 아닌 경우 여기에 한정된 수의 하드 코드가 있습니까? 아니면 OpenID 사양을 통해이를 결정할 수있는 방법이 있습니까?

저는 OpenID 내부에 익숙하지 않으므로, 이것이 바보 같은 질문 인 경우 놀랄 일이 아닙니다. 나는 인터넷을 수색 한 후에이 주제에 대한 어떤 정보도 찾을 수 없었다.

+1

을 다운로드하십시오. 멍청한 질문이 아닌 경우에도 충분한 정보, 관련 링크, 잘 정리 된 질문 및 실제로이 정보를 찾았다는 메모를 제공하십시오. –

답변

6

Google은 사양을 모순하지 않습니다. OpenID 2.0 사양은 identifier_select 플로우를 절대적으로 허용하여 실제로 "수행 할 수있는 기능"을 수행하는 유일한 주목할만한 OP (Google이 알고있는) 인 "directed identity"를 가능하게합니다.

그렇습니다. 완전하고 올바르게 구현 된 OpenID RP 라이브러리는 자동으로 Google (및 기타 OP와 같이)이 identifier_select를 필요로한다는 것을 자동으로 인식합니다. 식별자 검색 단계의 일부이므로 여기에서 확인하십시오. 사용중인 라이브러리에 대해 미안하지만, OpenID 구현이 불완전하기 때문에 슬픔을 느끼는 것처럼 들립니다.

그리고 AOL 을 지원합니다. identifier_select.

+1

라이브러리 (LightOpenID)를 확장해야하는 것처럼 보입니다. 널리 사용되는 두 개의 PHP OpenID 라이브러리 (Zend 구성 요소와 JanRain의 PHP-OpenID)는 필자가 필요로하는 것보다 더 많은 유연성을 제공하며 LightOpenID처럼 인터페이스가 좋지 않습니다. 행운을 빌어! – Skrat

+0

대다수는 myopenid와 yahoo를 포함한 지시 된 신원을 지원한다고 생각합니다. – Artefacto

+0

Artefacto, 나는 당신이 identifier_select와의 직접적인 정체성을 혼동하고 있다고 생각합니다. Identifier_select는 사용자가 자신의 식별자를 알 필요가없는 OP 식별자로 시작한 OpenID 환경입니다. "지정 신원"은 OP가 사용자가 로그인하는 각 RP에 대해 쌍으로 고유 한 식별자를 제공하는 곳입니다. 예를 들어 야후는 identifier_select를 지원하지만, 지시되지 않은 ID는 지원하지 않습니다. –

0

OP 구동 ID 선택 모드에서 인증하는 데 사용됩니다. 그것은 일반적이지는 않지만 코너 케이스는 아닙니다. 내가 사용하는 모든 OP 제공자 중에서, 나는 구글과 야후가 이것을 요구한다는 것을 알았다.

이것은 OpenID 2.0의 Directed Identity를 지원하는 데 필요합니다. 기본적으로 다른 웹 사이트에 대해 다른 OpenID를 얻습니다. 프라이버시 옹호자들에 의해이 모델로 이동할 것을 촉구합니다. 그래서 당신은 이것을 조만간 지원해야한다고 생각합니다.

+0

사용자를 리디렉션하기 전에 공급자가 직접 ID를 필요로하는지 검색 할 수있는 방법이 있습니까? Yahoo와 Google에 대한 지원을 하드 코딩 할 수 있지만 좀 더 유연한 솔루션을 찾고자합니다. 아마도 OpenID 사양에는 뭔가 빠졌습니다. 명백한 것입니다. – Skrat

+0

OpenID 1.0과 달리 OpenID 2.0 공급자를 위해 몇 가지 프로비저닝 작업을 수행해야합니다. 예를 들어, 사용자가 OpenID 2.0 URL이 무엇인지 알지 못하기 때문에 NASCAR 로고로 사이트를 고쳐야합니다. 이를 위해 사이트 구성에 플래그를 추가하기 만하면됩니다. –

7

LightOpenID 작성자는 여기입니다.

  1. 은 스펙을 수 있습니다, 그래서 아마 하나 (다른 답변이 야후를 언급)
  2. 아니, 거기 –입니다 LightOpenID이 지원되지 않습니다. (라이브러리의 example-google.php 참조).
  3. 검색 URL을 알고 있어야하므로 공급자를 알아야합니다. 또는 사용자에게 신원을 https://www.google.com/accounts/o8/id으로 입력하도록 알려주십시오.

이 대답은이 질문에 대한 질문 후 푸시 된 최신 라이브러리에 대한 것입니다.여전히이 문제로 어려움을 겪고있는 사람이라면 newest version

+0

Mewp, 며칠 전에 푸시 한 라이브러리를 업데이트 해 주셔서 감사합니다. 이제 "identifier_select"의 사용은 자동 (즉, 검색 프로세스에 내장 됨)입니다. 즉, LightOpenID의 사용은 모든 공급자에 대해 동일한 방식으로 작동합니다. 다시 한 번 훌륭한 작업을 계속하십시오. 나는 당신의 도서관을 좋아한다. 깨끗한 (읽기 쉬운) 코드는 드물다. – Skrat

+0

저는 OpenID 유혹에 빠졌습니다. 나는 단지 당신의 수업을 절대적으로 사랑한다고 말하고 싶었습니다. 나는 아직도 OpenID 컨셉에 대해 아주 초록색이다. 나는 그것에 대해 밤새도록 독서를 보냈지 만 여전히 AX와 SREG를 이해할 수는 없다. 그러나 내일은 또 다른 날이다! 또한 코드를 포크하고 내 OSS 프로젝트 (http://sf.net/projects/phunction/)의 일부로 릴리스하려고했는데 MIT 라이센스도 있습니까? –

+0

@ Alix Axel : 귀하의 프로젝트는 MIT 라이센스이므로, 귀하는 라이센스가 그것을 허용한다는 것을 분명히 알고 있습니다. 다른 말로하면 : 물론 당신이 그것을 쓴다고 주장하지 않는 한 할 수 있습니다. 또한 SREG/AX가 어떻게 작동하는지 깊이 알 필요가 없습니다. 이는 사용자에 대한 추가 정보를 가져 오는 방법 일 뿐이므로이를 필요에 따라 또는 필수로 표시 할 수 있습니다. AX 필드 이름은 http://www.axschema.org/types/에서 확인할 수 있습니다. 추가 질문이 있으면 메시지 만 보내주십시오. – Mewp