使用IDServer3,OWIN,angular2,WebAPI等
我在IDSrv中设置了2个客户端,一个MVC和一个JS / Angular,我试图实现SSO。目前SSO可以在我通过MVC应用程序(混合流程)登录时工作,因为这将在浏览器中设置cookie,并且当我通过隐式流程导航到登录时将被选中。但是,如果我首先尝试通过JS应用程序(隐式流程)登录,则不会设置cookie,因此不会实现SSO。当我们通过隐式流和混合流登录时,如何配置IDSrv来设置cookie?
编辑: 换句话说,是否可以将用于WebAPI的承载令牌auth和用于MVC的cookie auth一起使用,并且仍然可以在两者之间实现SSO。
编辑2: 由于答案证实了我的理解,我将再次重述这个问题。在JS(角度2)客户端中使用隐式流,如何通过IDSrv中的auth端点进行身份验证时获取令牌和cookie?目前只返回一个令牌。
答案 0 :(得分:2)
是 - 因为idsrv和您的应用之间没有维护身份验证会话 - 但是在idsrv和您的浏览器之间。
每个应用程序必须设置自己的会话 - MVC通过cookie完成。在JS中通常使用会话存储等。
完成您的方案:
打开MVC应用
打开JS应用
每个客户端应用程序都需要以自己的方式登录用户(cookie与会话存储)。单点登录是因为存在与idsrv的额外会话(由idsrv自己的cookie维护)。