2017-12-21 7 views
0

일반적으로 권한 부여 콜백 URL/redirect_url을 내 IdP에 등록해야합니다.내 IdP에서 모든 클라이언트 측 경로를 등록하지 않고 URL로 로그인 한 후 리디렉션 할 수 있습니다

하지만 그 redirect_url이 사용자가 인증되지 않은 상태에서 활성화하려고 시도한 경우 항상 내 IdP에서 1000 개의 가능한 모든 경로를 등록해야합니다.

그건 해결책이 될 수 없습니다!

그럼 어떻게해야합니까?

UPDATE 나는 자바 스크립트 기반 애플 리케이션을위한 암시 적 흐름을 사용합니다.

답변

0

어떤 흐름을 사용하고 있는지 알 수 없습니다. 나는 암묵적인 흐름을 가정 할 것이지만이 해결책은 적용될 수 있습니다.

대부분의 고객은 http://mypage/login-callback 경로를 사용하여이 문제를 해결합니다. 따라서이 경로는 redirect_uri으로 등록하면됩니다. OIDC 인증 끝점으로 리디렉션하기 전에 사용자가 요청한 경로를 "저장"합니다. 쿠키를 설정하거나 sessionstorage에 저장하십시오. login-callback으로 리디렉션되면 토큰을 추출하고 cookie/localstorage 키를 확인한 다음 다른 리디렉션을 수행하십시오. 여기

이 OIDC 클라이언트를 사용하여 임의의 각도 예제 :

async completeAuthenticationAsync() { 
    // complete login, get tokens etc... 
    this.user = await this.manager.signinRedirectCallback(); 
    this.emitState(); 
    // check for previously saved URI 
    var redirect = sessionStorage.getItem("auth:redirect"); 
    if(redirect){ 
     // redirect to route - this is using the angular router 
     sessionStorage.removeItem("auth:redirect") 
     this.router.navigate([redirect]); 
    } 
    else { 
     // redirect to start page 
     this.router.navigate([""]); 
    } 
} 

편집 : 당신이 offical 한 소스를 찾고 있습니다 당신은 신원 서버 4, 그들은 자신의 자바 스크립트 클라이언트의 예에서 이중 리디렉션을 태그 이후 : http://docs.identityserver.io/en/release/quickstarts/7_javascript_client.html

+0

좋아, 그들은 callback.html로 리디렉션하고 내부에서 다시 수행합니다. window.location = "index.html"; SPA를로드합니다. 구체적인 샘플 코드를 보내 주셔서 감사합니다. 나는 github에서 3 개의 Oidc 각 샘플을 연구했으며 모두 ***이었다. Danke schön : P – Pascal

+0

그 각 애플 리케이션에 대한 링크를 제게 주시겠습니까? – Pascal

+0

좋아, 멋지다. 나는 openid 마이그레이션에 대한 나의 oauth 작업에 많은 노력을 기울였다. 다시 도움을 청한다! – Pascal

관련 문제