【问题标题】:SAML / OAUTH redirect URL clarificationSAML / OAUTH 重定向 URL 说明
【发布时间】:2017-02-26 07:50:19
【问题描述】:

我正在使用 SAML/OAuth 开发 SSO 应用程序,我不确定我是否完全理解重定向/回调 url 的含义。所以我们以 SAML 为例。

我有一个典型的 SAML 配置:

IDPLoginURL : "https://myidp/login",
Issuer: "myhost",
RedirectURL: ?
Certificate: "MII....."

我总是看到重定向 url 指向资源服务器或服务提供商的图表和描述。但是我在服务上有不同的端点,现在我很困惑。

我在 myhost 上有用于访问需要 saml 令牌的资源的端点:

GET myhost/service1
GET myhost/service2

我现在不需要两个不同的重定向网址吗?

我正在使用:https://github.com/steffow/meteor-accounts-saml

有人可以在这里给我澄清一下吗?

【问题讨论】:

    标签: authentication oauth-2.0 single-sign-on saml-2.0


    【解决方案1】:

    重定向 URL 用作您的应用程序接收身份验证过程结果的一种方式。您的应用程序将此身份验证委托给第三方,然后通过调用您配置的重定向 URL 来传达结果。

    如何处理这个重定向是特定于应用程序的,例如,一个常规的服务器端 Web 应用程序可以在收到用户登录的确认后启动一个登录会话。通常,这个会话将通过基于信息的会话 cookie 来创建。已发送身份提供者(使用 SAML、OpenID Connect 或事件 OAuth 2.0)。以下请求将发送创建的 cookie,应用程序将纯粹基于它授权这些请求,而无需身份提供者参与。

    在您的场景中,似乎您有一个需要访问令牌才能授予访问权限的 Web API,然后我想会有一个或多个 客户端应用程序想要调用此 API 公开的端点。这将是一个教科书式 OAuth 2.0 场景,其中重定向 URL 将是希望访问您的 API 的客户端应用程序。调用重定向 URI 后,应用程序将存储访问令牌,以便它可以单独调用每个端点,但始终使用相同的令牌。

    您的困惑可能来自于您可能检查了一些并非针对您的确切场景的图表。假设应用程序想要调用受保护的 API 的场景,您可以查看此图:

    (来源:SPA + API Scenario

    在这种情况下,重定向 URL 将是 SPA 应用程序的 URL,它会在离开 Auth0(身份提供者/授权服务器)并进入 SPA 应用程序的交互过程中被调用。

    【讨论】:

    • 这是否也适用于 SAML 2.0?
    • 它可以,但请记住,通常 SAML 是一种身份验证协议,而 OAuth 2.0 更具体的是授权。来自 SAML 的令牌证明用户就是他所说的那个人,来自 OAuth 2.0 的访问令牌证明他可以访问给定的资源。您可以依靠身份令牌来授予对 API 的访问权限,并且它可以正常工作,OAuth 2.0 会更合适(而且设置起来可能更耗时)。
    猜你喜欢
    • 2015-08-28
    • 1970-01-01
    • 2014-05-19
    • 2014-06-11
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多