Aws iam命令,使用用户名和密码验证/验证用户?

时间:2016-01-05 07:34:05

标签: php authentication amazon-web-services amazon-iam aws-cli

是否有任何 AWS IAM 命令可供我们通过传递他/她的用户名&来验证或验证用户。密码组合?

例如:使用此命令

aws iam get-user --user-name test@domain.com

它返回

{
    "User": {
        "UserId": "AIDAJR3****VOYB2***NE",
        "Path": "/",
        "UserName": "test@domain.com",
        "Arn": "arn:aws:iam::349578444322:user/test@domain.com",
        "CreateDate": "2015-12-07T15:46:20Z"
    }
}

我想要的是,我创建了一个Web APP,用户将在其中输入他/她的AWS用户名&用于登录APP的密码,那么,是否有可用于验证/验证用户的命令或API?

2 个答案:

答案 0 :(得分:5)

目前,我认为这是不可能的。

  

问:是否有用于验证用户登录的身份验证API?

     

没有。没有以编程方式验证用户登录。

     

https://aws.amazon.com/iam/faqs/#login_anchor

AWS管理控制台是唯一接受用户名和密码的应用程序[+移动应用程序]。密码组合,提供对AWS资源的访问。所有其他路由都涉及IAM角色或IAM用户或STS以进行身份​​验证以访问AWS资源 - 您无法利用或AWS依赖于您的自定义Web应用程序的身份验证

话虽如此,我可以想到几种替代方案,当然不是解决方案或解决方案。

  1. 使用Amazon.com API http://login.amazon.com/manageApps

  2. 登录
  3. 使用不同的提供商http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

  4. 使用Amazon Cognito身份验证
  5. 使用亚马逊目录服务 - 托管Active Directory。它更像是Microsoft Active Directory即服务,您可以使用它来为您的自定义Web应用程序提供身份验证,同时AWS负责正常运行时间和运行状况

答案 1 :(得分:0)

您应该可以运行IE或其他浏览器模拟器(如selenium)以编程方式登录。示例PowerShell脚本可以执行此操作:

$account = "aws account name"
$username = "username";
$password = "somepassword";
$Url = "https://$account"+ ".signin.aws.amazon.com/console";



$ie = New-Object -com internetexplorer.application;
$ie.visible = $false;
$ie.navigate($loginUrl);
while ($ie.Busy -eq $true) { Start-Sleep -Seconds 3; } 

#login
($ie.document.getElementsByName("account") | select -First 1).value = $account;
($ie.document.getElementsByName("username") |select -first 1).value = $username;
($ie.document.getElementsByName("password") |select -first 1).value = $password;
($ie.document.getElementsByClassName("css3button") |select -first 1).click();
while ($ie.Busy -eq $true) { Start-Sleep -Seconds 3; }    

到目前为止,此代码不会告诉我们登录是否成功,但您可以构建检查和正则表达式以获取信息。你可以用JS或C#

做类似的事情