gpt4 book ai didi

saml-2.0 - Okta Kentor.AuthServices IdentityServer3 IDP 启动的 SSO 正在触发 SP 启动的 SSO - 错误或设计?

转载 作者:行者123 更新时间:2023-12-02 19:19:51 26 4
gpt4 key购买 nike

使用 IdentityServer3、Kentor.AuthServices 0.19(带有 OWIN 中间件)和标准 MVC 4 WebApi 2 应用程序,我们按照 https://github.com/KentorIT/authservices/blob/master/doc/IdentityServer3Okta.md 中的说明进行操作。看来我们成功实现了 IDP 发起的登录。

但是,当我们仔细研究这一点并使用 KentorStubIdp(我们首先注意到系统提示我们提供 SAML 响应)时,我们发现了以下内容

  1. IDP 到达我们的端点,例如身份服务器/okta/acs,状态 303
  2. 成功重定向到应用程序中的重定向端点,该端点经过编码以返回到 Identityserver 授权端点的重定向,因此
    var client = new AuthorizeRequest(new Uri(identityServerUrl + "connect/authorize"));
    var returnUrlForIdp = client.CreateAuthorizeUrl(
    "{client_identifier}",
    "id_token token",
    scopesForAuth,
    hostUrl,
    state,
    nonce,
    acrValues: string.Format("idp:{0}", idp),
    responseMode: "form_post"
    );
    return Redirect(returnUrlForIdp);
  3. 这会导致 302 到identityserver/connect/authorise。看起来这包含了它需要的所有登录信息,我本来希望直接进入应用程序,但我们得到的是 302 到 Identityserver/login?signin=xxx ,它给出了 401 似乎会触发...
  4. 对登录端点的后续调用将获得 303 重定向回 IDP,这标志着 SP 发起的登录最终成功的开始。这意味着它返回到identityserver/okta/acs,然后是/callback端点,然后是/connect/authorise,然后用户登录。

除了第一次和第二次调用/connect/authorise 之外,我找不到任何有意义的区别

  1. 成功尝试之前会调用身份服务器/回调
  2. idsvr 和 idsvr.session 的 Cookie 似乎未在第一次调用时设置,而是在第二次调用中设置

此外,Kentor 配置设置似乎是有序的 - 例如 AllowUnsolicitedAuthnResponse = true
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive尽管最后一个似乎没有任何效果

此时,我只是想弄清楚 a) 这是否是它在幕后工作的方式,b) 如果不是,我应该把注意力集中在哪里来诊断问题。

如果 IDP 发起的请求缺少信息,是否存在一组特定情况会触发 authservices 发起 SP 发起的 SAML 请求?

非常感谢任何建议。

最佳答案

通过 SAML2 + OIDC 使用 Idp 发起的登录有点棘手,因为 OIDC 不支持它。这意味着 IdSrv3 也不是真正为该场景构建的。

您需要的概要是:

  1. Idp 向 IdSrv3/AuthServices 发送未经请求的响应。
  2. AuthServices 验证响应
  3. IdSrv3 在 IdSrv3 上建立登录 session 。
  4. 用户被重定向到客户端应用程序的登录初始化 URL
  5. 客户端应用向 IdSrv3 发起 OIDC 登录。
  6. IdSrv3 使用 3 中建立的 session 进行单点登录。
  7. 用户被重定向回客户端应用。

看起来步骤 2 有效,但步骤 3 未正确完成。这意味着在步骤 6 中没有 session ,因此用户会一直重定向到 Idp 以获取现有 session 。这可行,但有点难看。如果您稍后想要进行单点登录,则 session 计数不匹配可能会导致问题。

关于saml-2.0 - Okta Kentor.AuthServices IdentityServer3 IDP 启动的 SSO 正在触发 SP 启动的 SSO - 错误或设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com