首页 文章

Okta与JavaScript集成

提问于
浏览
2

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

此应用程序需要访问Amazon AWS API Gateway上的某些资源 . API-Gateway生成的SDK需要访问密钥和秘密访问密钥,我们更愿意使用临时凭证 .

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

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

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

谢谢 .

1 回答

  • 0

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

    此示例应用程序基于Amazon的JavaScript in the Browser示例应用程序,但使用OpenID Connect而不是使用Facebook对Okta进行身份验证,就像Amazon的示例应用程序一样 .

    请注意,当前版本的Okta Sign-In Widget(1.7.0)包含与Amazon的JavaScript SDK冲突的xhr库 . 这将在Okta Sign-In Widget的1.9.0版本中修复,该版本删除了xhr . 与此同时,okta-oidc-aws repo中的示例附带了xhr禁用的小部件的自定义版本 .

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

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

    执行此操作的代码如下所示,并直接从示例中的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();
    });
    

相关问题