Aws iam 命令,Authenticate/validate 具有用户名和密码的用户?
Aws iam command, Authenticate/validate User with username and password?
是否有可用的 AWS IAM 命令,我们可以通过传递 his/her 用户名和密码组合来验证或验证用户?
例如:使用这个命令
aws iam get-user --user-name test@domain.com
它returns
{
"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"
}
}
我想要什么,我创建了一个网络应用程序,用户将在其中输入 his/her AWS 用户名和密码以登录该应用程序,那么,是否有任何命令或 API 可用于 validate/authenticate 用户 ?
目前,我认为这是不可能的。
Q: Is there an authentication API to verify user logins?
No. There is no programmatic way to verify user logins.
AWS 管理控制台是唯一接受用户名和密码组合以提供对 AWS 资源的访问权限的应用程序 [+ 移动应用程序]。所有其他路由都涉及 IAM 角色或 IAM 用户或 STS 以获得访问 AWS 资源的身份验证 - 您不能利用或 AWS 依赖您的自定义 Web 应用程序的身份验证。
话虽如此,我可以想到几个替代方案,当然不是您或 work-around 的解决方案。
Sign-In 使用 Amazon.com API http://login.amazon.com/manageApps
使用不同提供商的 Amazon Cognito 身份验证http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/
使用 Amazon Directory Services - Managed Active Directory。它更像是 Microsoft Active Directory 即服务,您可以利用它为您的自定义 web-application 提供身份验证,而正常运行时间和运行状况由 AWS
负责
您应该能够 运行 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#
做类似的事情
是否有可用的 AWS IAM 命令,我们可以通过传递 his/her 用户名和密码组合来验证或验证用户?
例如:使用这个命令
aws iam get-user --user-name test@domain.com
它returns
{
"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"
}
}
我想要什么,我创建了一个网络应用程序,用户将在其中输入 his/her AWS 用户名和密码以登录该应用程序,那么,是否有任何命令或 API 可用于 validate/authenticate 用户 ?
目前,我认为这是不可能的。
Q: Is there an authentication API to verify user logins?
No. There is no programmatic way to verify user logins.
AWS 管理控制台是唯一接受用户名和密码组合以提供对 AWS 资源的访问权限的应用程序 [+ 移动应用程序]。所有其他路由都涉及 IAM 角色或 IAM 用户或 STS 以获得访问 AWS 资源的身份验证 - 您不能利用或 AWS 依赖您的自定义 Web 应用程序的身份验证。
话虽如此,我可以想到几个替代方案,当然不是您或 work-around 的解决方案。
Sign-In 使用 Amazon.com API http://login.amazon.com/manageApps
使用不同提供商的 Amazon Cognito 身份验证http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/
使用 Amazon Directory Services - Managed Active Directory。它更像是 Microsoft Active Directory 即服务,您可以利用它为您的自定义 web-application 提供身份验证,而正常运行时间和运行状况由 AWS
负责
您应该能够 运行 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#
做类似的事情