gpt4 book ai didi

amazon-cognito - Cognito 用户池中的 SMS MFA 状态是通过调用 setPreferredMFA 设置的还是其他?

转载 作者:行者123 更新时间:2023-12-04 08:38:18 25 4
gpt4 key购买 nike

使用 setPreferredMFA 时,即使设置了 setPreferredMFA,Cognito 用户池中的 SMS MFA 状态也会被禁用。

SMS MFA 状态代表什么,当我启用或禁用它时它有什么作用?

谢谢

最佳答案

这只不过是 AWS 控制台/API 响应中的不一致。例子:让我们为用户启用 SMS MFA:

aws cognito-idp set-user-mfa-preference --sms-mfa-settings Enabled=true,PreferredMfa=true --access-token <value>

是的,在控制台中它仍然看起来好像没有启用 SMS MFA。但是这是错误的。让我们获取用户的数据:

aws cognito-idp get-user --access-token <value>
{
"Username": "your-email@example.com",
"UserAttributes": [
{
"Name": "sub",
"Value": "491a3eba-381f-4c87-a7d6-befa21e49e82"
},
{
"Name": "email_verified",
"Value": "true"
},
{
"Name": "phone_number_verified",
"Value": "true"
},
{
"Name": "phone_number",
"Value": "+1234567890"
},
{
"Name": "email",
"Value": "your-email@example.com"
}
],
"PreferredMfaSetting": "SMS_MFA",
"UserMFASettingList": [
"SMS_MFA"
]
}

您要查看的是 PreferredMfaSetting 属性。它告诉您您的用户为自己选择了什么。

如果您现在尝试像这样进行身份验证:

aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --client-id <value> --auth-parameters USERNAME=<value>,PASSWORD=<value>

您将收到如下回复:

{
"ChallengeName": "SMS_MFA",
"Session": "<session-value>",
"ChallengeParameters": {
"CODE_DELIVERY_DELIVERY_MEDIUM": "SMS",
"CODE_DELIVERY_DESTINATION": "+*********7890",
"USER_ID_FOR_SRP": "your-email@example.com"
}
}

好的,控制台中的这个东西在做什么?它实际上已被弃用。在此处查看 MFAOptions 的文档:https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html

因此,让我们通过控制台启用 SMS MFA,然后检查 GetUser 的输出:

{
"Username": "your-email@example.com",
"UserAttributes": [
{
"Name": "sub",
"Value": "491a3eba-381f-4c87-a7d6-befa21e49e82"
},
{
"Name": "email_verified",
"Value": "true"
},
{
"Name": "phone_number_verified",
"Value": "true"
},
{
"Name": "phone_number",
"Value": "+1234567890"
},
{
"Name": "email",
"Value": "your-email@example.com"
}
],
"MFAOptions": [
{
"DeliveryMedium": "SMS",
"AttributeName": "phone_number"
}
],
"PreferredMfaSetting": "SMS_MFA",
"UserMFASettingList": [
"SMS_MFA"
]
}

差不多就这些了。<​​/p>

关于amazon-cognito - Cognito 用户池中的 SMS MFA 状态是通过调用 setPreferredMFA 设置的还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64685783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com