使用AWS Cognito的公共REST API身份验证和授权

时间:2019-08-15 13:35:15

标签: rest jwt amazon-cognito

我正在开发一个可供客户访问的REST API,我想使用AWS Cognito来处理身份验证和授权。

但是,我想从客户中提取AWS Cognito,这样,如果我从AWS Cognito更改为其他服务,则他们不必更改其代码(只需更改API密钥)即可。

不幸的是,在许多阅读了AWS的文档之后,我找不到以下答案:

  

我如何给我的客户一个永不过期的“ personal access token”,让他们可以用来对脚本和后端服务进行身份验证,类似于可以在GitHub上进行身份验证?

到目前为止,我创建了一个REST端点,客户端可以在其中发布他们的usernamepassword,并且我代表他们与AWS Cognito对话,以进行身份​​验证: / p>

var request = new AdminInitiateAuthRequest
{
    UserPoolId = "MyUserPoolId",
    ClientId = "MyUserPoolAppClientId",
    AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH,
};

request.AuthParameters.Add("USERNAME", "myuser@mydomain.com");
request.AuthParameters.Add("PASSWORD", "123456"); // Relax, this is demo code

string accessToken = string.Empty;
var response = await _identityProvider.AdminInitiateAuthAsync(request);
var authResult = response.AuthenticationResult;

这一切都有效,authResult给了我3个令牌(我认为)是在30天后过期(我最多可以配置3650天)。

这给了我3个令牌(访问,ID,刷新)。我觉得将这3个令牌提供给调用者将是一个糟糕的选择,因为它是Cognito特有的...

如何为我的客户提供一个API密钥,然后我可以使用该密钥对Cognito进行身份验证?

0 个答案:

没有答案