1

Identity 서버를 사용하고 IIS에서 호스팅하고 있습니다. 전화 http://localhost:44431/account/login?returnUrl=/connect/authorize/login?respone_type .... 2 단계 : 그 다음은 권한 부여 엔드 포인트 및 토큰Identity Server 끝점 OIDC

Probelm는 아래 호스팅 돌아 간다 1 http://localhost:44431

단계에서 직접 호스팅 때 잘 작동했다 localhost \ id :

그러나 IIS에서 기본 웹 사이트의 응용 프로그램을 localhost\id으로 배포 할 때. 작동을 멈 춥니 다. http://localhost/id/account/login?returnUrl=/connect/authorize/login?respone_type 호출 ....

>> 검사 요청 헤더 :

1 단계

enter image description here

>> 응답 헤더 :

enter image description here

>> 오픈 아이디 구성에서 http://localhost/id/.well-known/openid-configuration

"authorization_endpoint":"http://localhost/id/connect/authorize", 

2 단계 :/connect/authorize 엔드 포인트 호출 :

를 >> 검사 머리글 :

enter image description here

id 가상 디렉터리가 포함되어 있지 않으므로 실패했습니다. 그 과정에서 나는 이것을 고쳐야 만합니까?

답변

1

문제를 재현 할 수 없지만 IIS에서 IdentityServer4를 처음부터 호스팅했습니다. 설치를 위해 수행 한 단계는 다음과 같습니다.

  1. 복제 된 IdentityServer4.Samples. 시작 Quickstarts를/3_ImplicitFlowAuthentication 솔루션 : https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Quickstarts/3_ImplicitFlowAuthentication
  2. 은 AppPool을이 '없음 관리 코드'
  3. 실행 한 IdentityServer4 프로젝트 'DOTNET 게시'로 설정하고 출력을 이동하여 '/ 아이디'와 같은 경로로 IIS에서 응용 프로그램을 작성 은 IIS 응용 프로그램 루트의 폴더에
  4. 은/ID

    app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions 
    { 
        AuthenticationScheme = "oidc", 
        SignInScheme = "Cookies", 
        Authority = "http://localhost/id", 
        RequireHttpsMetadata = false, 
        ClientId = "mvc", 
        SaveTokens = true 
    }); 
    
  5. 로드에게 MvcClient 응용 프로그램을 로컬 호스트하고 '권한 부여'필터 경로로 이동합니다 가리 키도록 MvcClient 프로젝트에서 기관 URL을 변경.리디렉션 적절한 경로가 오픈 ID-구성 페이지로 이동하여 IdentityServer에 의해 출력되고 있는지 확인하기 위해 해당 가상 디렉터리

확인이 제대로 발생 http://localhost/id/.well-known/openid-configuration

당신은 IdentityServer4과 MVC 응용 프로그램을 실행하고 있습니까 같은 프로젝트에서? 그렇다면 OpenIdConnectOptions.Authority 속성에 상대 경로를 사용하고 있습니까? 이를 절대 경로로 변경하여 문제가 해결되는지 확인하십시오.

http://localhost/id/account/login?**returnUrl=/connect/authorize/login**?respone_type 

물론 올바른 경로가 있어야한다 :

http://localhost/id/account/login?**returnUrl=/id/connect/authorize/login**?respone_type 

희망이 당신의 요청 URL 리디렉션 URI에서/ID 경로를 포함하지 않기 때문에 나는,이 경우 수 있습니다 생각하고 있어요 도와 줘요! 알려주세요

+0

열기 ID 구성이 정상입니다. 동일한 프로젝트에서 MVC 응용 프로그램을 사용하지 않고 있습니다. 다른 응용 프로그램에서의 angular2 프로젝트입니다. 하지만 다른 응용 프로그램과 상관없이 URL에서 URL에 배치하여 URL에서 테스트하고 있습니다. 나는 새로운 사본을 설치해서 그것을 다시 재생 해 볼 것이다. – Coding

+1

URL을 직접 작성하고 계시나요? 그렇다면 하단의 제안을 통해 해결해야합니다. 동일한 도메인에 머물고 있다면 여전히/I 'd가 필요합니다. 도메인을 넘는 경우/id를 포함한 절대 경로 여야합니다. – kg743

+0

문제가 복잡해졌습니다. :) 나는 그것을 어떻게 놓쳤는가? 감사합니다 케빈 ... – Coding