我试图弄清楚如何使用WSO2 Identity Server设置我的SSO应用程序。我的用例是我使用WSO2IS通过OAuth / OpenId Connect保护了2个应用程序。如果我已登录到应用程序1,则启动应用程序2应该会自动登录。流程应该是什么?
目前,我已经创建了2个服务提供商,每个应用程序一个。使用OAuth / OpenId Connect配置每个服务提供商入站身份验证配置。我还需要做什么?
我跟着https://docs.wso2.com/display/IS530/Configuring+OAuth2-OpenID+Connect+Single-Sign-On。我成功被重定向到IS进行登录,每个应用程序都能够获得访问令牌和JWT。但是,我被要求单独登录每个应用程序---当我访问应用程序2时没有自动登录。
谢谢!
当我登录到应用程序1时输出WSO2IS,然后在同一浏览器和选项卡中跟随应用程序2。
<<<申请1>>>
[2017-07-27 21:30:17,117] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 验证client_id的客户信息请求:L7c7Zqf9QpDKjyEtOQ74R__RSy0a和callback_uri http://[hostname]:[8080]/xxxx/ [2017-07-27 21:30:17,124] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 为给定的客户端ID找到注册的应用程序:L7c7Zqf9QpDKjyEtOQ74R__RSy0a,应用程序名称:Application1,回调URL:{{3} } [2017-07-27 21:30:30,506] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 为用户收到的授权请求:testuser@carbon.super,客户ID:L7c7Zqf9QpDKjyEtOQ74R__RSy0a,授权响应类型:代码,请求的回调URI:http://[hostname]:[8080]/xxxx/,请求的范围:电子邮件openid配置文件 [2017-07-27 21:30:30,507] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 在threadlocal中添加了OAuthAuthzReqMessageContext [2017-07-27 21:30:30,508] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.CodeResponseTypeHandler} - 向用户发出授权码:testuser@carbon.super,使用重定向网址:{{ 3}},范围:电子邮件openid个人资料,有效期:300000 [2017-07-27 21:30:30,510] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 清除OAuthAuthzReqMessageContext [2017-07-27 21:30:30,756] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 为客户端ID L7c7Zqf9QpDKjyEtOQ74R__RSy0a收到的访问令牌请求,用户ID为null,范围:[]和授权类型:authorization_code [2017-07-27 21:30:30,756] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 可以使用客户端ID和密码进行身份验证。客户ID:L7c7Zqf9QpDKjyEtOQ74R__RSy0a [2017-07-27 21:30:30,756] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 授权类型:authorization_code严格的客户端验证设置为:null [2017-07-27 21:30:30,757] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 从数据库中提取客户端凭据。 [2017-07-27 21:30:30,757] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 使用客户端ID成功验证客户端:L7c7Zqf9QpDKjyEtOQ74R__RSy0a [2017-07-27 21:30:30,757] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AuthorizationCodeGrantHandler} - 客户端ID缓存中无法使用授权码信息:L7c7Zqf9QpDKjyEtOQ74R__RSy0a [2017-07-27 21:30:30,758] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AuthorizationCodeGrantHandler} - 找到授权码,客户:L7c7Zqf9QpDKjyEtOQ74R__RSy0a,授权用户:testuser@carbon.super ,范围:电子邮件openid个人资料 [2017-07-27 21:30:30,758] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 为threadlocal添加了OAuthTokenReqMessageContext [2017-07-27 21:30:30,759] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AbstractAuthorizationGrantHandler} - 无限生命周期访问令牌c6d1b10e-cd51-379a-9162-4f5228aaa5dc在缓存中找到 [2017-07-27 21:30:30,759] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 清除OAuthTokenReqMessageContext [2017-07-27 21:30:30,759] DEBUG {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - 发给客户端ID的访问令牌:L7c7Zqf9QpDKjyEtOQ74R__RSy0a用户名:testuser@carbon.super和范围:email openid profile
<<<应用2>>>
[2017-07-27 21:30:42,014] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 验证client_id的客户信息请求:fwM8a593OUxufW2ZaBXYx9f1mREa和callback_uri http://[hostname]:[8080]/xxxx/ [2017-07-27 21:30:42,016] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 为给定的客户端ID找到已注册的应用程序:fwM8a593OUxufW2ZaBXYx9f1mREa,应用程序名称:Application2,回调URL:{{3} } [2017-07-27 21:30:55,454] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 为用户收到的授权请求:testuser@carbon.super,客户ID:fwM8a593OUxufW2ZaBXYx9f1mREa,授权响应类型:代码,请求的回调URI:http://[hostname]:[8080]/xxxx/,请求的范围:电子邮件openid配置文件 [2017-07-27 21:30:55,455] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 在threadlocal中添加了OAuthAuthzReqMessageContext [2017-07-27 21:30:55,457] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.CodeResponseTypeHandler} - 向用户发出授权码:testuser@carbon.super,使用重定向url:{{ 3}},范围:电子邮件openid个人资料,有效期:300000 [2017-07-27 21:30:55,458] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 清除OAuthAuthzReqMessageContext [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - 收到客户ID的访问令牌请求fwM8a593OUxufW2ZaBXYx9f1mREa,用户ID为null,范围:[]和授权类型:authorization_code [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 可以使用客户端ID和密码进行身份验证。客户ID:fwM8a593OUxufW2ZaBXYx9f1mREa [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.clientauth.AbstractClientAuthHandler} - 授权类型:authorization_code严格的客户端验证设置为:null [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 从数据库中提取客户端凭据。 [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 使用客户端ID成功验证客户端:fwM8a593OUxufW2ZaBXYx9f1mREa [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AuthorizationCodeGrantHandler} - 客户端ID缓存中无法使用授权码信息:fwM8a593OUxufW2ZaBXYx9f1mREa [2017-07-27 21:30:55,739] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AuthorizationCodeGrantHandler} - 找到授权码,客户:fwM8a593OUxufW2ZaBXYx9f1mREa,授权用户:testuser@carbon.super ,范围:电子邮件openid个人资料 [2017-07-27 21:30:55,740] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 为threadlocal添加了OAuthTokenReqMessageContext [2017-07-27 21:30:55,740] DEBUG {org.wso2.carbon.identity.oauth2.token.handlers.grant.AbstractAuthorizationGrantHandler} - 在缓存中找到的无限生存访问令牌a01c94d9-c889-3a38-a67e-38a7f0350aa0 [2017-07-27 21:30:55,740] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - 清除OAuthTokenReqMessageContext [2017-07-27 21:30:55,740] DEBUG {org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer} - 发给客户端ID的访问令牌:fwM8a593OUxufW2ZaBXYx9f1mREa用户名:testuser@carbon.super和范围:email openid profile
答案 0 :(得分:1)
下一步是设置客户端应用程序,该应用程序将尝试使用OpenID Connect对使用WSO2的用户进行身份验证。请按照以下步骤操作:
https://docs.wso2.com/display/IS530/OpenIDConnect
完成后,创建应用程序的副本并在不同的端口上运行并使用SSO和SLO。一个例子是:
https://docs.wso2.com/display/IS530/Configuring+OpenID+Connect+Single+Logout
您可以通过阅读Enabling Authentication Session Persistence了解WSO2 IS如何维护SSO会话的机制。