为了账号安全,请及时绑定邮箱和手机立即绑定

Cognito SRP 身份验证 JAVA SDK

Cognito SRP 身份验证 JAVA SDK

慕的地6264312 2021-08-25 15:24:47
我正在尝试使用 Cognito 对 Java 应用程序进行身份验证。我在 python 中使用了运行良好的保证库。但我现在想在java中做同样的事情。我用我的 Python 函数对保证库进行身份验证def SRPauthentication(organizationAdmin,                     password,                     pool_id,                     client_id,                     client):    aws = AWSSRP(username=organizationAdmin,                 password=password,                 pool_id=pool_id,                 client_id=client_id,                 client=client)    tokens = aws.authenticate_user()    authorization_token= tokens['AuthenticationResult']['IdToken']    return authorization_token 有了这个,我可以轻松访问一些安全的 API。现在我想用 Java 做同样的事情,但我有问题。到目前为止,这是我的解决方案是这种方法:  public static void GetCreds()      {          AWSCognitoIdentityProvider identityProvider = AWSCognitoIdentityProviderClientBuilder.defaultClient();          AdminInitiateAuthRequest adminInitiateAuthRequest = new AdminInitiateAuthRequest().                  withAuthFlow(AuthFlowType.USER_SRP_AUTH).                  withClientId("234234234234").withUserPoolId("eu-central-1_sdfsdfdsf")                  .addAuthParametersEntry("USERNAME", "UserK").                   addAuthParametersEntry("PASSWORD","#######);      }当我运行它时,我得到一个异常:Exception in thread "main" `com.amazonaws.services.cognitoidp.model.AWSCognitoIdentityProviderException: User: arn:aws:iam::XXXXXXXXXXXXXXXXX:user/khan is not authorized to perform: cognito-idp:AdminInitiateAuth on resource: arn:aws:cognito-idp:eu-central-1:XXXXXXXX:userpool/eu-central-1_XXXXXXX with an explicit deny (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: AccessDeniedException; Request ID: 21be0b8e-adec-11e8-ad45-234234234)`它说我无权执行此类指令。所以我想我在做一些普遍错误的事情。因为它与我的 python 代码一起工作,并且在 Java 中它可以从凭据中识别我的用户名。Cognito 调用实际上应该独立于我的 aws 凭据/用户帐户,对吗?如何使用 Java 对 Cognito 进行身份验证以获取令牌以访问安全的 aws 服务?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 330 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信