2016-01-05 127 views
2

有任何AWS IAM命令可以通过它,我们可以通过传递他/她的用户名&密码组合进行身份验证或验证用户?Aws iam命令,使用用户名和密码验证/验证用户?

如:使用此命令

aws iam get-user --user-name [email protected] 

返回

{ 
    "User": { 
     "UserId": "AIDAJR3****VOYB2***NE", 
     "Path": "/", 
     "UserName": "[email protected]", 
     "Arn": "arn:aws:iam::349578444322:user/[email protected]", 
     "CreateDate": "2015-12-07T15:46:20Z" 
    } 
} 

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

回答

5

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

问:是否有认证API来验证用户登录?

号有验证用户登录任何编程方法。

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

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

就这样说,我可以想到几种替代方案,当然不是您或解决方案的解决方案。

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

  2. 使用Amazon Cognito身份验证使用不同的供应商http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

  3. 。利用亚马逊的目录服务 - 管理Active Directory中。它更像是一个Microsoft Active Directory作为一个服务,你可以利用为您定制的Web应用程序提供身份验证,而正常运行时间和运行状况由AWS

    照顾
+0

我已经添加了一个链接到文档,确认你的答案,这是不可能的。一段时间的反思表明,这样的API,如果存在的话,将是一个可怕的想法,无论如何,因为请求验证的系统将以明文形式拥有密码。 –

+1

@ Michael-sqlbot:的确,我当然同意这将是一个可怕的想法。谢谢你提高答案 –

+0

NaveenVijay&Michael谢谢你的回答。 – Qazi

0

你应该能够运行IE或其他浏览器模拟器硒等以编程方式登录的样本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#