当前位置: 首页 > 知识库问答 >
问题:

AWS Cognito-具有联合身份提供程序的用户池

鲁丰
2023-03-14

我是AWS的新手,正在学习Cognito池。

我计划使用与Cognito联合身份池连接的Cognito用户池。我不想使用带有托管用户界面功能的登录或任何其他登录用户界面登录。

以下情况是否属实/可能:-

  • 从后端使用用户名和密码调用一些Cognoto API时,它可以自动调用配置的用户池联合身份提供程序来验证用户,然后生成JWT令牌。如果是,请您为我指点/指导。

我真的很感激任何帮助。提前谢谢。

共有1个答案

程阳平
2023-03-14

从后端调用一些带有用户名和密码的Cognito API时,它可以自动调用配置的用户池联合身份提供程序来验证用户,然后生成JWT令牌。如果是的话,请参考/指导我。

这是有可能的。可以使用以下两个引用的组合。

从Cognito用户池接收JWT令牌

    var authenticationData = {
        Username : 'username',
        Password : 'password',
    };
    var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
    var poolData = { UserPoolId : 'us-east-1_xxxxx',
        ClientId : 'xxxxxxxxxxxxxxxx'
    };
    var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
    var userData = {
        Username : 'username',
        Pool : userPool
    };
    var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
            console.log('access token + ' + result.getAccessToken().getJwtToken());
            /*Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer*/
            console.log('idToken + ' + result.idToken.jwtToken);
        },

        onFailure: function(err) {
            alert(err);
        },

    });

通过SDK将JWT令牌传递到Cognito联邦身份池,并交换AWS临时访问凭据,以执行针对AWS预配的任何操作。

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId: 'us-east-1:xxxxxxx-xxxx-xxxx-xxxx-xxxxxx',
   Logins: {
      'cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxx': result.idToken.jwtToken
   }
});

AWS用户池中不存在标识提供程序中存在的用户。在AWS用户池中不存在用户的情况下,是否可以使用配置的标识提供程序对用户进行身份验证?如果是,则验证后是否会在AWS用户池中创建用户?

这只有在您的外部身份提供商支持SAML联盟时才可能。

 类似资料:
  • 我已经创建了身份提供程序,并且从浏览器中它工作正常。 参考:密钥斗篷身份提供程序后代理登录抛出错误 从浏览器,我可以使用外部IDP登录,如果外部IDP用户不在keycloak中,它会在keyclock中创建,这绝对没问题,并重定向到仪表板。 但我的问题是,我们如何用keycloak rest api实现这个流程? 是否有任何api用于使用外部IDP登录,并将获得外部IDP的令牌以及密钥斗篷的令牌?

  • 问题内容: 使用Passport.js是否可以为同一路由指定多个身份验证提供程序? 例如(在护照指南中),我可以在以下示例路线中使用本地策略以及Facebook和Twitter策略吗? 问题答案: Passport的中间件的构建方式使您可以在一个呼叫中使用多种策略。 但是,它是用OR顺序定义的。也就是说,只有在所有策略均未成功返回的情况下,它才会失败。 这是您将如何使用它: 换句话说,使用它的方法

  • 在我的Angular 2应用程序中,我希望允许用户通过电子邮件/密码、谷歌和Facebook提供商进行连接。 在第一次登录时,我了解到一个用户条目是在firebase数据库中创建的。例如。如果用户使用另一个提供程序登录,我理解firebase将阻止此操作,特别是如果电子邮件已经被使用并且在规则中设置为unique。 所以我的问题是:如果我们检测到电子邮件是相同的,那么我们如何能够自动的,对用户来说

  • 我无法理解服务提供者的入站身份验证配置和身份提供者的联合身份验证器配置之间的区别。 我添加了新的服务提供者并配置了SAML入站身份验证配置 我使用dashboard添加了一个新用户 我在tomcat上部署了一个web应用程序(travelocity),作为向IS服务器请求SAML身份验证的服务提供商 当我单击travelocity的SAML登录链接时,它将转发到IS服务器的登录页面 我插入用户/密

  • 我正在尝试使用Spring Security authentication设置一个身份验证服务器,并且需要有多个身份验证提供程序来提供客户端\u凭据。 我已经进行了相当多的搜索,但尚未找到如何配置Spring Security以将我的自定义身份验证提供程序添加到客户端凭据身份验证提供程序列表中。我找到的每种方法都导致客户端凭据身份验证的相同2个提供程序。匿名和道身份验证提供程序。 如果您能帮助我了