0

我正在使用 Amplify iOS SDK 构建一个通过 AWS Cognito 进行身份验证的 iOS 应用程序。

我浏览了本教程(https://docs.amplify.aws/lib/auth/signin/q/platform/ios/),如果用户直接通过 Cognito 注册并登录,它工作正常。当用户注册时,用户名和密码存储在 Cognito 的用户池中,稍后他们可以使用该凭据登录。

问题是我的公司使用第三方身份提供者 - 带有 SAML 的 Oracle Access Manager (OAM)。用户通过 OAM 注册。目前我的应用程序不知道如何与 OAM 交谈。流程应该是用户输入用户名和密码 -> Cognito 将他们发送到 OAM 进行身份验证 -> OAM 响应 Cognito -> Cognito 向应用程序提供访问令牌。目前我可以登录通过 Cognito 用户池注册的用户,但是对于使用 OAM 的用户,结果是错误的用户名/密码,这意味着 Cognito 使用自己的用户池而不是 OAM 来检查用户。我希望 Cognito 知道与 OAM 交谈并获得身份验证结果。这可以在 amplifyconfiguration.json 文件中完成吗?我认为配置文件中可能缺少一些身份验证信息。

这是配置文件,现在“auth”属性中基本上没有任何内容,我认为可能会写一些东西来指定 Cognito 应该寻找哪个身份提供者。

{
"UserAgent": "aws-amplify-cli/2.0",
"Version": "1.0",
"auth": {
    "plugins": {
        "awsCognitoAuthPlugin": {
            "UserAgent": "aws-amplify/cli",
            "Version": "0.1.0",
            "IdentityManager": {
                "Default": {}
            },
            "CognitoUserPool": {
                "Default": {
                    "PoolId": "[POOL-ID]",
                    "AppClientId": "[APP-ID]",
                    "AppClientSecret": "[APP-SECRET]",
                    "Region": "us-east-2"
                }
            },
            "Auth": {
                "Default": {
                    "authenticationFlowType": "USER_SRP_AUTH"
                }

            }
        }
    }
}

}

4

0 回答 0