0

OpenID Connect을 사용하여 Azure ID에 연결하면 성공적으로 Azure에서 인증하고 OpenID Azure AD 구성에 지정된 리디렉션 URI로 요청을 되돌릴 수 있습니다.Azure 광고 콜백이 AuthenticateExternalAsync 메소드로 진행되지 않습니다

app.UseOpenIdConnectAuthentication( new OpenIdConnectAuthenticationOptions { AuthenticationType = " TEST", Caption = "Test Azure AD", SignInAsAuthenticationType = signInAsType, ClientId = "<client ID>", Authority = "https://sts.windows.net/<tenantId>", ResponseType = OpenIdConnectResponseTypes.CodeIdToken, RedirectUri = "https://localhost:44392/External/Login", This is another webapi project, not identityserver host. AuthenticationMode = AuthenticationMode.Passive, });

성공적인 인증 후에 코드, IdToken와 https://localhost:44392/External/Login로 다시 리디렉션됩니다.

질문 :

  1. 은 그렇지 google-signin 달리 리디렉션에 AuthenticateExternalAsync 방법에서 중지합니까?

  2. 사용자 클레임을 받으려면 IdToken JWT를 디코딩해야합니까?

  3. 리디렉션 방법에서 Idaprv3에서 Access Token을 생성하여 다른 webapis를 인증하려면 어떻게해야합니까?
  4. 사용자가 로컬 로그인과 다중 외부 로그인 (Azure AD, Google 등)을 모두 가질 수 있습니까? 이 경우 SSO는 IDsrv3과 어떻게 작동합니까?

  5. 외부 로그인을 구현 한 IdSrv3 샘플이 있습니까? 선호하는 Azure 광고?

답변

1

저는이 과정을 통해 어려움을 겪었으므로 최선을 다해 답변 드리겠습니다. 내가 너의 질문을 오해하면 용서 해줘.

  1. AuthenticateExternalAsync

    호출해야합니다,하지만 당신은 오히려 당신의 응용 프로그램에보다 IDS (신원 서버)에 AzureAd 반환이 필요합니다. 흐름은 다음과 같습니다. app -> IDS -> AzureAd -> IDS (AuthenticateExternalAsync) -> App.

  2. AuthenticateExternalAsync에는 클레임이 포함되어있는 ExternalAuthenticationContext.ExternalIdentity이 있습니다. JWT 토큰을 디코딩 할 필요가 없습니다. 당신이 context.AuthenticateResult = new AuthenticateResult("UserId", name, claims);

  3. 예처럼, AuthenticateExternalAsync에 뭔가를 성공적으로 AuthenticatedResult를 반환하면

  4. IDS는이 문제를 처리합니다. SSO 목적을 위해 described으로 로그인하는 방법을 강요 할 수 있습니다. 그렇지 않으면 IDS가 첫 번째 로그인 이후에이를 처리 할 것이라고 생각합니다.

  5. (IDS 및 AzureAd 설정을 통해 실행) this이 유용하지만 새로운 Azure Portal보다는 오래된 Azure Portal을 사용합니다. 그들은 gallery에 샘플이없는 것 같습니다. 조금 :)

    을하는 데 도움이

희망

관련 문제