【问题标题】:Okta integration with JavaScriptOkta 与 JavaScript 的集成
【发布时间】:2016-09-04 18:17:06
【问题描述】:

我的任务是将现有的 JavaScript 应用程序与 Okta 集成。

此应用程序需要访问 Amazon 的 AWS API Gateway 上的某些资源。 API-Gateway 生成的 SDK 需要一个访问密钥和一个秘密访问密钥,我们希望使用临时凭证。

根据 AWS 文档,需要断言才能调用 AWS's AssumeRoleWithSAML in order to retrieve temporary credentials

我尝试了以下 Okta 资源,但无法确定如何使用 JavaScript 获取断言:

我找到了一些返回临时访问密钥的 Python 实现,但没有找到任何描述 Okta 的 JavaScript 方法的示例或文档。

谢谢。

【问题讨论】:

    标签: javascript aws-api-gateway okta


    【解决方案1】:

    这是一个示例应用程序,展示了如何使用 Okta 登录小部件在 JavaScript 中将 Okta 与 Amazon S3 集成:https://github.com/okta/okta-oidc-aws

    此示例应用程序基于 Amazon 的 JavaScript in the Browser 示例应用程序,但使用 OpenID Connect 而非 Facebook 对 Okta 进行身份验证,就像 Amazon 的示例应用程序所做的那样。

    请注意,当前版本的 Okta 登录小部件 (1.7.0) 包含与 Amazon 的 JavaScript SDK 冲突的 xhr 库。这将在 Okta 登录小部件的 1.9.0 版中得到修复,该小部件删除了 xhr。与此同时,okta-oidc-aws 存储库中的示例附带了一个自定义版本的小部件,该小部件禁用了 xhr

    GitHub repository for the okta-oidc-aws sample 包含有关使示例正常工作的完整详细信息。

    在高层次上,重要的部分如下:

    1. 从 Okta 获取 OpenID Connect id_token
    2. 使用 WebIdentityCredentials class 将 Okta id_token 交换为 AWS IAM 角色。这称为“Web Identity Federation”。

    执行此操作的代码如下,直接从示例中的sample.html 文件复制:

    AWS.config.credentials = new AWS.WebIdentityCredentials({
        RoleArn: AWS_ROLE_ARN,
        WebIdentityToken: res.idToken
    });
    AWS.config.credentials.get(function(err) {
        if (err) {
            console.log("Error creating AWS Web Identity: " + err);
            return;
        }
        bucket = new AWS.S3({
            params: {
                Bucket: AWS_S3_BUCKET_NAME
            }
        });
        oktaLoginContainer.style.display = 'none';
        uploadDialog.style.display = 'block';
        listObjs();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2023-03-18
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多