2014-10-11 6 views
0

클라이언트 보안이 필요한 이유는 무엇입니까? 그렇지만 실제로 자바 스크립트 클라이언트 만 사용하는 것은 아닙니다.Live SDK 클라이언트 비밀 키 (선택 사항)

이것은 논리적이 아닙니다. 누군가 제게 설명해 주시겠습니까? 왜 REST 호출을 직접 할 때 비밀이 필요합니까?

자바 스크립트 API는 "클라이언트 비밀"필요하지 않습니다

WL.init({ 
    client_id: APP_CLIENT_ID, 
    redirect_uri: REDIRECT_URL, 
    scope: "wl.signin", 
    response_type: "token" 
}); 

을하지만 당신은 직접이 필요한 나머지 호출하게하려면 :

POST https://login.live.com/oauth20_token.srf 

Content-type: application/x-www-form-urlencoded 

client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&client_secret=CLIENT_SECRET&code=AUTHORIZATION_CODE&grant_type=authorization_code 

코드에서 : http://msdn.microsoft.com/en-us/library/hh243641.aspx

js API를 통한 연결이 serv에 직접 연결하는 것보다 적은 수의 보안 제약으로 만들어 질 수 있다면 클라이언트 보안이 보안 기능이라고 가정합니다. 얼음? 그래서 그것은 상황에 따라 "선택적으로 필요합니다"처럼 보이지만, 나에게 모순되게 만듭니다. 그러나 나는 뭔가를 놓쳤을 수 있습니다.

답변

0

아마 서버 측 코드가 당신에게 같은 이상의 액세스 제공하기 때문에 :

필수. 로그인하는 사용자가 의 동의 범위를 지정합니다. 단일 범위의 경우 scope : "wl.signin"형식을 사용하십시오. 여러 범위의 경우 scope : [ "wl.signin", "wl.basic"] 형식을 사용하십시오. 범위가 제공되지 않으면 WL.init의 범위 값이 사용됩니다. WL_init 또는 WL.login에 범위가 제공되지 않으면 WL.login에서 오류를 반환합니다. 참고 WL.login은 "wl.offline_access"범위를 요청할 수 있지만 서버 측 구현은 이고 WL.init 함수는 response_type 속성을 "code"로 설정해야합니다.

기본적으로 클라이언트 비밀은 더 높은 보안 등급을 제공하므로 다른 방법으로는 할 수없는 추가 정보에 액세스 할 수 있습니다.

참고 : 실제 sdk 대시 보드에서 앱을 데스크톱/모바일 앱으로 프로비저닝하면이 제한을 피할 수 있습니다.