Azure AD回调不会使用AuthenticateExternalAsync方法

文基

OpenID Connect用于连接到Azure ID,我可以在Azure中成功进行身份验证,并将请求返回到OpenID Azure AD配置中指定的重定向uri。

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, });

成功进行身份验证后,它将重定向回https://localhost:44392/External/LoginCode IdToken。

问题 :

  1. 它是否AuthenticateExternalAsync不像其他方法那样停留在重定向方法上google-signin

  2. 我是否必须解码IdTokenJWT才能获得用户要求?

  3. 在重定向方法中,如何Access Token从IdSrv3生成以授权其他Webapi?
  4. 用户可以同时具有本地登录名和多个外部登录名(Azure AD,Google等)。在这种情况下,SSO是如何工作的IDsrv3

  5. 是否有IdSrv3实施外部登录的示例?最好是Azure AD?

亚历克斯

我只是在这个过程中苦苦挣扎,所以我会尽力回答,以帮助您/其他人。如果我误解了你的问题,请原谅我。

  1. AuthenticateExternalAsync应该被调用,但是您需要让AzureAd返回IDS(身份服务器)而不是您的App。您的流程应类似于:应用-> IDS-> AzureAd-> IDS(AuthenticateExternalAsync)->应用。

  2. AuthenticateExternalAsync你得到的ExternalAuthenticationContext.ExternalIdentity,其中包含的权利要求-无需解码JWT令牌。

  3. 返回成功AuthenticatedResultAuthenticateExternalAsyncIDS会处理此问题,例如context.AuthenticateResult = new AuthenticateResult("UserId", name, claims);

  4. 是的。您可以强制在日志的方法描述为SSO目的,否则我想象IDS会处理这件事后第一次登录。

  5. 我发现很有用(通过设置IDS和AzureAd运行),但是它确实使用了旧的Azure门户,而不是新的。他们的画廊里似乎没有样品

希望那有所帮助 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章