0

Identity Server4를 사용하고 있습니다. Identity Server4에 미리 정의 된 클라이언트 등록의 허용 범위에 "api1"이 있습니까?

가 나는 퀵 스타트를 따라 내가 3 개 웹 응용 프로그램 1. MVC 웹 응용 프로그램 2. JS 웹이 앱은 3. API 나 또한 ASP.Net 정체성을 구성

응용 프로그램은 지속적이 있어야 어디 시나리오를 복제 사용자 및 클라이언트 저장소

JS Web App의 허용 된 범위 값에서 생성 된 토큰에이 범위 값이 없다는 것을 예상하여 범위 "api1"을 제거했습니다.

하지만 로그인하려고 할 때 페이지를 볼 수는 없지만 파이프 라인에서 예외가 발생하는 경우도 있습니다.

필자가 이전에 이해 한 바는 허용 된 범위는 리소스를 제공하는 동안 권한 용도로 리소스 앱이 사용할 수있는 일련의 문자열입니다.

아무도 내가 왜 문제에 직면하는지 또는 어떤 점을 놓치고 있는지 설명 할 수 있습니까?

JS 웹 클라이언트에 "api1"범위를 다시 추가하면 로그인 페이지를 볼 수 있습니다. 로그에 대한

enter image description here

+0

로그 이미지를 사용하여 로그 – Lutando

+0

을 업데이트 할 수 있습니까? –

답변

0

감사합니다. 자바 스크립트 클라이언트에서 허용 범위에서 api1 범위를 제거하면 해당 범위에 대한 클라이언트 액세스가 제거되었습니다. 응용 프로그램 자체가 api1을 요청하고 있지만 그렇게 할 수있는 권한이 없습니다. 따라서 클라이언트 측에서 javacript 클라이언트 구성을 편집하여 api1을 요청하지 않아야합니다.

난 당신이 빠른 시작 가이드를 다음에 대해 말을 꺼려고하지만 당신은 당신의 클라이언트 및 구성을 정의한 경우,이 같은 보일 수 있습니다 :

var config = { 
    authority: "http://localhost:5000", 
    client_id: "js", 
    redirect_uri: "http://localhost:5003/callback.html", 
    response_type: "id_token token", 
    scope:"openid profile api1", <--- REMOVE API1 HERE 
    post_logout_redirect_uri : "http://localhost:5003/index.html", 
}; 
var mgr = new Oidc.UserManager(config); 

는 고객이 대부분의 경우 (명시 적으로이 기억을)가 범위 요구 사항을 표현하면 자원 범위 요구 사항에 실패하면 요청이 실패합니다. 그래서 당신은 js 클라이언트가 스코프를 허용하지 못하게했으나 여전히 액세스 할 수없는 범위를 요청하고있었습니다.

+0

예. 문제입니다 ... 답변을 주셔서 감사합니다 .. 신원 확인 서버가 일반적인 스코프를 고려해야합니까? 그런 식으로 구성 할 수 있습니까? –

+0

당신은 js 클라이언트가 무엇이 될지 모를지라도 (기본값으로) 모든 범위를 얻을 수 있는지 알고 싶습니까? – Lutando

+0

정확히 ..하지만 그것은 요청했을 때 예외를 throw해서는 안됩니다. 주장의 범위를 무시 jst 충분한 권리가 있어야합니까? 어쨌든 리소스 응용 프로그램은 액세스를 제공하는 데 필요한 범위를 찾습니다. –