Okta与JavaScript的集成
我的任务是将现有的JavaScript应用程序与Okta集成 此应用程序需要访问Amazon的AWS API网关上的某些资源。API网关生成的SDK需要一个访问密钥和一个秘密访问密钥,我们更愿意使用临时凭据 根据AWS文档,调用需要断言 我尝试了以下Okta资源,但无法确定如何使用JavaScript获取断言:Okta与JavaScript的集成,javascript,aws-api-gateway,okta,Javascript,Aws Api Gateway,Okta,我的任务是将现有的JavaScript应用程序与Okta集成 此应用程序需要访问Amazon的AWS API网关上的某些资源。API网关生成的SDK需要一个访问密钥和一个秘密访问密钥,我们更愿意使用临时凭据 根据AWS文档,调用需要断言 我尝试了以下Okta资源,但无法确定如何使用JavaScript获取断言: : 此设置允许登录AWS控制台 :使用小部件,我无法在返回的内容中找到断言 :未列出JavaScript API/SDK 我已经找到了一些返回临时访问键的Python实现,但还没有找
- : 此设置允许登录AWS控制台
- :使用小部件,我无法在返回的内容中找到断言
- :未列出JavaScript API/SDK
谢谢。下面是一个示例应用程序,展示了如何使用Okta登录小部件在JavaScript中将Okta与Amazon S3集成: 这个示例应用程序基于Amazon的示例应用程序,但是使用OpenID Connect而不是像Amazon的示例应用程序那样使用Facebook对Okta进行身份验证 请注意,Okta登录小部件(1.7.0)的当前版本包括与Amazon的JavaScript SDK冲突的
xhr
库。这将在Okta登录小部件的1.9.0版中修复,该小部件将删除xhr
。同时,okta oidc aws repo中的示例附带了禁用了xhr
的自定义版本的小部件
有关于使示例工作的完整细节
在高层,重要部分如下:
id\u令牌
交换为AWS IAM角色。这被称为“”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();
});