2013-08-21 1 views
2

파트너가 내 응용 프로그램에서 호스팅되는 양식에 정보를 직접 캡처 할 수 있도록 파트너에게 공개하려는 보안 웹 응용 프로그램이 있습니다.제 3 자 ID 제공 업체의 단순한 활성 제휴

양식이 파트너 웹 애플리케이션에 포함 된 iframe에 표시됩니다. iframe의 URL은 내 애플리케이션을 가리키고 iframe을 렌더링하기 전에 파트너에게 발행 한 몇 가지 형태의 세션 토큰을 포함합니다.

내 앱에 사용자의 자격 증명을 저장하고 싶지 않습니다. 파트너가 사용자의 인증을 받고 호스팅중인 작업을 수행 할 수있는 권한이 있는지 확인하는 메커니즘이 필요합니다.

나는 SAML과 oAuth를 살펴 보았지만 두 가지 모두 신원 제공 업체가 구현하기에는 엄청나게 복잡한 것처럼 보입니다. 차라리 대부분의 복잡성을 구현하고 파트너에게 쉬운 통합 수단을 제공 할 것입니다. 주요 즉

가 ID 공급자에 대한 간단한 해결책을 찾는 것은 예

:

파트너가 사전 정의 된 엔드 포인트를 통해 내에서 세션 토큰을 요청한다 (그들은 그들의 사용자가 작업을 지정합니다 응답을 확인하려면 사용자의 사용자 이름 또는 ID 및 클라이언트 토큰을 수행해야합니다.

https://myapp.com/getsession/?username=bob&action=action1&token=CLIENT_SESSION_TOKEN

은 내가 SERVICE_SESSION_TOKEN을 반환합니다.

파트너는 응용 프로그램에서 다음 URL을 iframe 대응을 내장 :

https://myapp.com/action1/?username=bob&token=SERVICE_SESSION_TOKEN

내가 토큰을 확인하고 조치 1을 수행 할 수있는 권한을 가진 사용자에 대한 인증 된 세션을 만듭니다.

action1에 대한 양식을 반환하고 iframe에 렌더링됩니다.

사용자가 내가

https://partner.com/action1_callback/?username=bob&token=CLIENT_SESSION_TOKEN&result=RESULT

같은 프로토콜을 지원하는 표준이 있는가

에 iframe을 리디렉션하여이의 파트너를 알릴 수 있습니다 양식을 제출하면? oAuth와 SAML은 ID 제공을 매우 복잡하게 만듭니다.

답변

1

간단한 웹 토큰 (SWT)을 보았습니까?

Issuer=partner.com&ExpiresOn=1262304000&Username=Bob&ClientSessionToken=B2202256-76A6-4527-8439-E6C3F017F414&HMACSHA256=AT55%2B2jLQeuigpg0xm%2Fvn7tjpSGXBUfFe0UXb0%2F9opE%3D 

침해로부터 토큰을 확보 하나의 필수 매개 변수 HMACSHA256 있습니다 : 토큰은, 예를 들어 같은 간단한 형식을 가지고있다. IssuerExpiresOn 매개 변수를 사용하여 토큰 발급자를 식별하고 토큰 유효 기간을 제한하는 것이 좋습니다. 다른 매개 변수는 토큰에서 전달해야하는 정보에 따라 다릅니다.

+0

매우 유용한 덕분입니다. –