如果我的用户已经在 okta 上,Authn/Authz 如何在 AWS 中工作
How Authn/Authz work in AWS if I already have my users on okta
如果我的问题没有完全理解,请原谅我,因为我是 AWS 和云世界的新手。我们的组织目前使用 Okta 作为一些用户的身份存储,我们还有另一组用户使用我们内部开发的 OIDC/OAuth 兼容 IDP 进行身份验证。 Okta 可以根据电子邮件域区分用户。
今天,我们的 Web 应用程序将 OIDC 授权代码流与 Okta 一起用于身份验证,并且 okta 内部知道将调用联合到适当的外部 IDP 以进行身份验证。所有这一切都很好。
现在我们计划在 AWS 的云上托管我们的一个 Web 应用程序和 REST API,我们想知道我们如何利用 AWS 中当前的 okta 设置来实现这一切。请注意,我们不希望我们的用户体验从今天开始改变,因为他们的登陆登录页面是 okta。另请注意,我们希望我们的用户自动配置为基于此身份验证访问我们在 AWS 中的服务。这意味着我们不会使用 IAM 在 AWS 中显式创建用户,而是他们应该根据身份验证自动访问我们的 UI 和 API。
有人可以帮忙吗?
谢谢
我不认为我完全理解您对 AWS 的要求。最简单的方法是仅将 AWS 用作您的应用程序的托管平台,同时让您的用户通过 Okta 进行身份验证。最简单的场景,如果用户不对您的 AWS 执行任何操作(管理或使用受 AWS 策略保护的对象)。
如果你需要后者,那么你需要创建一个与Okta集成的Cognito池。然后 AWS 内部的所有访问都将基于 Cognito 池权限。
Okta 可以轻松地与 AWS 上的服务交互。关键是能够将 Okta 生成的 JWT 传递给你的服务代码,这样你就可以验证它并知道谁在登录。目前还不清楚你的环境到底是什么样子,但我这样做的方式是“懒惰的”创建”。我将我的用户存储在我的 AWS RDS 中,但按需创建它们。因此,当用户进来时,我验证令牌并从令牌中获取“子”(主题)。这成为我的数据库中的一个键,以指示用户是谁。 Okta 已将此值分配给每个用户。
收到用户令牌时,我会根据主题检查我是否已经拥有该用户。如果是这样就好了。如果它们是新的,那么我将使用令牌中的数据在数据库中创建它们 and/or 来自 Okta 的 /userinfo
端点。
如果我的问题没有完全理解,请原谅我,因为我是 AWS 和云世界的新手。我们的组织目前使用 Okta 作为一些用户的身份存储,我们还有另一组用户使用我们内部开发的 OIDC/OAuth 兼容 IDP 进行身份验证。 Okta 可以根据电子邮件域区分用户。
今天,我们的 Web 应用程序将 OIDC 授权代码流与 Okta 一起用于身份验证,并且 okta 内部知道将调用联合到适当的外部 IDP 以进行身份验证。所有这一切都很好。
现在我们计划在 AWS 的云上托管我们的一个 Web 应用程序和 REST API,我们想知道我们如何利用 AWS 中当前的 okta 设置来实现这一切。请注意,我们不希望我们的用户体验从今天开始改变,因为他们的登陆登录页面是 okta。另请注意,我们希望我们的用户自动配置为基于此身份验证访问我们在 AWS 中的服务。这意味着我们不会使用 IAM 在 AWS 中显式创建用户,而是他们应该根据身份验证自动访问我们的 UI 和 API。
有人可以帮忙吗?
谢谢
我不认为我完全理解您对 AWS 的要求。最简单的方法是仅将 AWS 用作您的应用程序的托管平台,同时让您的用户通过 Okta 进行身份验证。最简单的场景,如果用户不对您的 AWS 执行任何操作(管理或使用受 AWS 策略保护的对象)。
如果你需要后者,那么你需要创建一个与Okta集成的Cognito池。然后 AWS 内部的所有访问都将基于 Cognito 池权限。
Okta 可以轻松地与 AWS 上的服务交互。关键是能够将 Okta 生成的 JWT 传递给你的服务代码,这样你就可以验证它并知道谁在登录。目前还不清楚你的环境到底是什么样子,但我这样做的方式是“懒惰的”创建”。我将我的用户存储在我的 AWS RDS 中,但按需创建它们。因此,当用户进来时,我验证令牌并从令牌中获取“子”(主题)。这成为我的数据库中的一个键,以指示用户是谁。 Okta 已将此值分配给每个用户。
收到用户令牌时,我会根据主题检查我是否已经拥有该用户。如果是这样就好了。如果它们是新的,那么我将使用令牌中的数据在数据库中创建它们 and/or 来自 Okta 的 /userinfo
端点。