我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/Login
Code IdToken。
问题 :
它是否AuthenticateExternalAsync
不像其他方法那样停留在重定向方法上google-signin
?
我是否必须解码IdToken
JWT才能获得用户要求?
Access Token
从IdSrv3生成以授权其他Webapi?用户可以同时具有本地登录名和多个外部登录名(Azure AD,Google等)。在这种情况下,SSO是如何工作的IDsrv3
?
是否有IdSrv3
实施外部登录的示例?最好是Azure AD?
我只是在这个过程中苦苦挣扎,所以我会尽力回答,以帮助您/其他人。如果我误解了你的问题,请原谅我。
AuthenticateExternalAsync
应该被调用,但是您需要让AzureAd返回IDS(身份服务器)而不是您的App。您的流程应类似于:应用-> IDS-> AzureAd-> IDS(AuthenticateExternalAsync)->应用。
在AuthenticateExternalAsync
你得到的ExternalAuthenticationContext.ExternalIdentity
,其中包含的权利要求-无需解码JWT令牌。
返回成功AuthenticatedResult
后AuthenticateExternalAsync
,IDS会处理此问题,例如context.AuthenticateResult = new AuthenticateResult("UserId", name, claims);
是的。您可以强制在日志的方法描述为SSO目的,否则我想象IDS会处理这件事后第一次登录。
我发现这很有用(通过设置IDS和AzureAd运行),但是它确实使用了旧的Azure门户,而不是新的。他们的画廊里似乎没有样品。
希望那有所帮助 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句