Google의 인증/인가 API = SAML2.0

링크; http://code.google.com/enterprise/documentation/authn_authz_spi.html

The authentication sequence between the user/appliance/AC goes like this:

  • A user enters a search query into a browser.
  • The appliance checks for an existing user session. If it finds a session running, the appliance supplies the search results and the sequence is complete. If no session exists, an <AuthnRequest> element is sent to the AC via the HTTP Redirect binding.
  • The HTTP Redirect binding redirects the browser to the AC with a SAML message sent as a URL query with a "SAMLRequest" string parameter.
  • The AC authenticates the search user. It can perform this authentication in any way, including showing an HTML form, or checking an already established session cookie, or using NTLM, and so on.
  • The AC then sends a <Response> element containing an <Assertion> element containing an <AuthnStatement> to the appliance, using the HTTP Artifact binding. The <AuthnStatement> contains the identity of the search user.
  • The AC redirects the browser to the appliance at a URL provided by the administrator in the Admin Console.

The AC runs a SOAP message service, which accepts queries from the appliance, and returns an element as a child of the SOAP element. This connection is made over a mutually authenticated HTTPS connection, ensuring origin integrity, data integrity, and confidentiality. To dereference the artifact and actually obtain the SAML response message, the appliance uses the SAML SOAP binding to send an <ArtifactResolve> message to the AC. This message contains the artifact. The response message from the AC is an <ArtifactResponse> message, which contains a <Response> element, which contains an <AuthnStatement>, which contains the identity of the search user.

네.. 일본의 블로거(http://blogs.sun.com/roller/page/shita?entry=google_meets_saml)를 통해서 안 사실인데, Google의 인증 API가 SAML 2.0을 기반으로 한다는 놀라운 내용입니다. 저는 지금까지의 예상으로, Google이 독자적인 인증 API를 만들거나, 혹은 Gtalk에서 사용하는 XMPP 프로토콜의 인증 부분을 연동해서 사용할 것이라고 보았습니다.

하지만, 이 링크의 내용을 보면 SAML2.0을 사용하는군요. 그리고 인가 API로는 SAML2.0의 AuthzDecisionQuery를 사용합니다.

메시지 통신은 SAML2.0에서 사용하는 기존의 Redirect Binding 또는 Artifact Binding이 보입니다. 그리고 SOAP over Http도 쓰는군요.



tag; ,

by S_H_Kim | 2006/06/12 01:15 | CardSpace | 트랙백 | 핑백(1) | 덧글(5)

Linked at Korean Identity .. at 2008/03/18 23:10

... 0/u-prove-intentions/[17] http://wiki.eclipse.org/index.php/Idemix_and_Higgins [18] http://ayo79.egloos.com/2485675 ... more

Commented by 이삼구 at 2006/06/12 22:38
자세히는 확인해보지는 않았지만, 이건 Google Enterprise 제품군을 위한 API같네요.Service Provider를 위한 인터페이스라고 되어 있군요. 영어가 짦아서... ^^;
Commented by S_H_Kim at 2006/06/13 09:18
enterprise 제품군에서 사용하는 보안 API가 맞네요. 그렇다면 개인 사용자를 위한 보안 API는 아직 안 나온 것이고, 제 예상대로 구글의 독자적인 API나 XMPP를 활용한 API가 나올 수도 있겠네요^^
Commented by 이삼구 at 2006/06/13 12:04
혹시 도움이 되실지 몰라서 URL 남깁니다.
http://blog.repl.net/index.php/gaia_protocol_and_google_account/2006/02/10/
아마 조만간 인증 프로토콜을 공개할 것으로 보입니다만, 워낙 치밀한 준비가 필요한 부분이라서 확신은 없군요. 이미 GMail for domain에서 구글 계정이 아닌 외부 이메일로 인증이 가능하게 되어 있습니다.
Commented by S_H_Kim at 2006/06/13 12:27
아하. 예전에 이삼구글님 블로그에서 봤던 포스트네요^^ 많은 도움이 되었습니다. XMPP 방식을 활용할 가능성이 아주 높은 것 같네요. 근데 왜 enterprise와 사용자 인증 API에서 채택하는 방식이 이렇게 다를까요? 요즘 생각하고 있는 논문 아이템이 바로 'ajax 버전의 경량화된 saml'입니다. 만일 사용자 인증 API에서 saml을 도입하려면 ajax 기술이 요구되리라고 판단했거든요. 인증 관련하여 구글의 최근 동향은 나오지 않았나요?
Commented by 이삼구 at 2006/06/13 15:37
아쉽게도 1월에 나온 Google Talk and Open Communications (http://www.google.com/talk/developer.html#service) 말고는 아직도 소식이 없네요.
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

◀ 이전 페이지다음 페이지 ▶