首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用SAML SSO / OAuth2.0保护API

用SAML SSO / OAuth2.0保护API
EN

Stack Overflow用户
提问于 2020-11-06 15:29:30
回答 1查看 585关注 0票数 1

好吧,所以我很难理解我的设置在这里有一个合适的流程。

目标

我希望我的SPA应用程序有一个适当的SSO流,它可以将用户身份验证到API中。

上下文

我有一个React应用程序,它打算使用一个Okta,它为SSO流提供SAML (首选)和OIDC。我已经将我的静态源封装在一个为它们服务的web服务器中,该服务器有一个中间件来检查cookie,如果不存在,我会重定向到IDP (Okta)进行登录。现在一切都很好。

目前,我的API位于同一台服务器上,我打算将它转移到一个独立的服务器上,以独立于网站进行扩展。我的API还必须允许其他机器客户端(服务)调用它,因此我实现了一个使用客户端ID和机密作为身份验证措施的服务帐户流。

通常,我的预期流如下所示:

用户导航到我的网站(未经授权),-> website,->重定向到IDP,->断言回调流,->生成JWT会话cookie,-> Web应用程序使-> ->服务器auth中间件验证cookie /承载令牌。

这个问题.

关于如何生成JWT访问令牌的详细信息是我陷入困境的地方。目前,我的not服务器接收SAML断言并生成一个JWT,这与服务帐户(bleh)的JWT声明逻辑不同。我正在考虑实现Auth服务,而不是集中令牌生成流。

对于Auth服务,我研究了OAuth2.0,它似乎正是我所需要的正确方法。尽管如此,我找不到关于SAML断言-> OAuth2.0所遵循的模式的多少信息。我看到了一个IETF草案样本2无记名赠款类型,但它似乎死在水里。对于自定义实现的OAuth2.0授予类型的普遍共识,我也不确定。

合适的流量是什么样子的?我想到了几个场景:

  1. SAML服务提供者与AuthService.在缺少SSO会话时,我的应用程序重定向到我的Auth服务,然后重定向到我的IDP。IDP使用断言调用我的SP ( auth服务器),auth服务生成一个令牌,然后我的auth服务通过在响应头中放置一个cookie重定向回webserver。

  1. SAML SP作为webserver,因为webserver是唯一需要使用SSO的系统,所以我可以将SAML流保持在这个过程中。当我的webserver接收到SAML断言回调后,我的服务器使用断言声明调用端点服务,然后我的auth服务在JSON响应中返回访问令牌。

  1. Something else,就像OAuth2.0授权代码一样,web应用程序使用PKCE进行授权。或用于SSO.

的OIDC而不是SAML。

EN

回答 1

Stack Overflow用户

发布于 2020-12-05 08:43:16

OIDC听起来是正确的选择,因为它涉及到API。与为企业SSO构建的SAML相比,OAuth旨在保护API。

您可以使用OIDC集成SPA和Okta。Okta为不同的平台提供SDK,使您更容易做到这一点。你可以在这里找到SDK‘:https://developer.okta.com/code/angular/okta_angular_auth_js/

当您在OIDC流之后从Okta获得ID令牌和访问令牌之后,您可以使用访问令牌访问外部API,您的API资源服务器或API网关可以验证访问令牌。同样,Okta提供SDK来验证访问令牌:https://developer.okta.com/code/dotnet/jwt-validation/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64717409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档