我正在尝试新的适用于 Swift 的 AWS 开发工具包(开发者预览版),但不清楚如何使用 AWS 进行身份验证。
我可以将 AWS 访问密钥和密钥输入 Xcode,只要应用程序在 Xcode 中运行,身份验证就可以正常工作,但是当在 Xcode 外部的设备上运行时,它没有 AWS 访问密钥和密钥,因此无法使用。 t 通过 AWS 进行身份验证。
我还发现我可以使用以下代码将 AWS 访问密钥和密钥放入应用程序中:
let credentialIdentity = AWSCredentialIdentity(accessKey: “ACCESS_KEY, secret: “SECRET_KEY)
let credentialIdentityResolver = try StaticAWSCredentialIdentityResolver(credentialIdentity)
let lambdaClientConfiguration = try await LambdaClient.LambdaClientConfiguration(awsCredentialIdentityResolver: credentialIdentityResolver, region: "us-east-1")
let lambdaClient = LambdaClient(config: lambdaClientConfiguration)
这可行,但效果不佳,因为我不想在应用程序中拥有 AWS 访问权限和密钥。
通过 AWS SDK iOS,我使用了 Cognito 和以下代码:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: “IDENTITY_POOL_ID”)
AWSServiceManager.default().defaultServiceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentialsProvider)
AWS SDK for Swift 似乎不支持 Cognito 身份验证,这篇文章 https://github.com/awslabs/aws-sdk-swift/issues/1082 表示他们不打算支持它。
所以,我的问题是如何使用适用于 Swift 的 AWS 开发工具包进行身份验证,而无需在应用程序中使用 AWS 访问权限和密钥?
Cognito 已经支持; Cognito 凭证提供程序是一项不受支持的特定功能。它通过混合 Cognito 和 STS 功能来简化流程,使某些身份验证任务变得更加容易。但它实际上只是一个或两个特定 SDK 的功能,而不是标准 SDK 功能。
Cognito Identity 支持并且确实有效。示例代码即将推出。