AWS PHP SDK-如何为联合用户生成用于登录的终端节点?

问题描述

有人可以帮助我使用 AWS STS getFederationToken API为联盟用户生成登录端点吗?

以下是我的代码-

<?php
require 'aws-autoloader.php';
use Aws\Sts\StsClient; 
use Aws\Sts\Exception\StsException;

$credentials = new Aws\Credentials\Credentials('MYKEY','MYSECRET');

$client = new StsClient([
    'region' => 'ap-south-1','version' => '2011-06-15','credentials' => $credentials
]);


try {
    
    $result = $client->getFederationToken(array(
    // Name is required
    'Name' => 'sv','Policy' => '{
  "Version": "2012-10-17","Statement": [
    {
      "Action": [
    "sns:*"
      ],"Effect": "Allow","Resource": "*"
    }
  ]
}','DurationSeconds' => 28000,));

    //echo '<pre>'; print_r($result);die;
   

$json_data = json_encode(['sessionId' => '$result["Credentials"]["AccessKeyId"]','sessionKey' => '$result["Credentials"]["SecretAccessKey"]','sessionToken' => '$result["Credentials"]["SessionToken"]'
]);

$issuer = urlencode("https://signin.aws.amazon.com/");

$destination = urlencode("https://console.aws.amazon.com/sns");

$sign_in_url = "https://signin.aws.amazon.com/federation?Action=getSigninToken&SessionType=json&Session=".urlencode($json_data);

$ch = curl_init();

// Will return the response,if false it print the response
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
// Set the url
curl_setopt($ch,CURLOPT_URL,$sign_in_url);
// Execute
$result=curl_exec($ch);

// Closing
curl_close($ch);

// Print the return data
$res = json_decode($result,true);

$sign_in_token = $res['SigninToken'];

$login_url = "https://signin.aws.amazon.com/federation?Action=login&Issuer=".$issuer."&Destination=".$destination."&SigninToken=".$sign_in_token;

echo $login_url;

} catch (StsException $e) {
    // output error message if fails
    print_r($e->getMessage());
}

正在产生以下链接-

https://signin.aws.amazon.com/federation?Action=login&Issuer=https%3A%2F%2F637313748738.signin.aws.amazon.com%2F&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2Fsns&SigninToken=CQTyMmOL8tnbJPAShBeAg8VhrWUz2Np9P00bkH096kjZkIhaPWZX_iiiUuEkX6dw11eZTDKpxEO2ev5PtdojVjOLrAg_ugJe9ITledsTzaJO51ccPlYb0lSdntE3Jo8YESqynHPDyCiuueoc2vec-YZ7hOfllHrqhCnNsmPkKPy_51oWSLHVH6_GQp_n2QLwu-H6T5EfcHV9nY7i5slkzd64M6z7XrLkqvB_smH6cUhXizq37x0yIzcdD0OBTqLAyyRBoKoZ-GRmtTXy6V7A2KS-C0jARgfA9hiaclyFQ9lgZM_LwV8mBTFk9WdUB-l0-QMvlmSJ5Y7LFWKvSC1BgqvLpCbj9cFlri2bQ3yT1pCarOInlUkqayjXYkrzQh1wpmwxexPXJey9IB7jCDi53c1wNwGYR2u2CMXSyAGeBt2XGpL-5_oYN3djWbEYfupFuS4Ert069XEIk-HKtIulnckJwjiaMDijR1Fj1bXkMiMYobZxSWUX7KsaBQ4RzApwr5wzMleWSF_SfC_ppfHifRHXzHXi

但是当我尝试单击此链接时,它说- 您的登录链接中的凭据无效。请与您的管理员联系。

Please see attached image

上面的代码有什么问题?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...