AWS Cognitoユーザープールグループにユーザーを追加するにはどうすればよいですか?

keishinzzz

AWS Cognitoを使用して、iOS APP(Swift)でユーザーのサインアップとサインインを実装しています。

ユーザーがサインアップしたときに、cognitoユーザープールに既に作成されている指定されたユーザープールグループにユーザーを追加したいと思います。

以下の迅速なコードを試しましたが、うまくいかないようです。

サインアップ後、[addToGroup]ボタンを押して、[GroupA]という名前のユーザープールグループに参加します。

@IBAction func addToGroupButton(_ sender: Any) {
        let request = AWSCognitoIdentityProviderAdminAddUserToGroupRequest()
        request?.groupName = "GroupA"
        request?.userPoolId = "ap-northeast-1_8H0k*****"
        request?.username = eMailAdd

        let identityProvider = AWSCognitoIdentityProvider()
        identityProvider.adminAddUser(toGroup: request!).continueWith { (task) -> Any? in
            DispatchQueue.main.async(execute: {
                if let error = task.error {
                    print("\(error.localizedDescription)")
                }
            })
        }
    }

ユーザーがサインアップするのに問題はなく、ユーザーがサインアップした情報を確認できます。ただし、ユーザー名はGroupAに表示されません。

誰かが私のコードの何が問題になっているのか教えてもらえますか?ありがとうございました!!

ページ

AWSCognitoIdentityProviderErrorNotAuthorizedのようなエラーが発生すると思います。これは「admin」API呼び出しであるため、ここで提案されているように「開発者の資格情報が必要です」[0]。

このAPI呼び出しが最初に機能するかどうかをテストするために、資格情報をハードコーディングすることをお勧めします

AWSStaticCredentialsProvider *credentialsProvider = [AWSStaticCredentialsProvider credentialsWithAccessKey:"your-access-key" secretKey:"your-secret-key"];
AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

実稼働環境で資格情報をハードコーディングしないでください。

2019年7月21日更新:

let staticCredentialProvider = AWSStaticCredentialsProvider.init(accessKey: "yourAccessKey", secretKey: "yourSecretKey")
let configuration = AWSServiceConfiguration.init(region: .APSoutheast2, credentialsProvider: staticCredentialProvider)
AWSServiceManager.default()?.defaultServiceConfiguration = configuration

let request = AWSCognitoIdentityProviderAdminAddUserToGroupRequest()
request?.groupName = "GroupA"
request?.userPoolId = "ap-southeast-2_xxxxxxxxx"
request?.username = "yourUserName"


    AWSCognitoIdentityProvider.default().adminAddUser(toGroup: request!).continueWith { (task) -> Any? in
        DispatchQueue.main.async(execute: {
            if let error = task.error {
                print("\(error.localizedDescription)")
            }
        })
    }

私はテストしました、上記のコードは私のテスト環境で機能しています。参考までにここにリストします。次のステップは、ハードコードされた資格情報をコードベースから削除しようとすることです。AWSStaticCredentialsProviderを使用する代わりに、CognitoIDプールを使用して一時認証情報を取得できます。私は十分な許可を得て、このフローは開発者の資格情報がなくても機能すると思います。

2019年7月26日更新:

// using Cognito userpool with identity pool, to provider credential to AWSServiceManager
let serviceConfiguration = AWSServiceConfiguration(region: .APSoutheast2, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "YourUserPoolClientId", clientSecret: "YourUserPoolClientSecret", poolId: "YourUserPoolId")
AWSCognitoIdentityUserPool.register(with: serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "RandomStringForIdentifyingYourPoolWithinThisApp")
let pool = AWSCognitoIdentityUserPool(forKey: "RandomStringForIdentifyingYourPoolWithinThisApp")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .APSoutheast2, identityPoolId: "YourIdentityPoolId", identityProviderManager:pool)

let configuration = AWSServiceConfiguration.init(region: .APSoutheast2, credentialsProvider: credentialsProvider)
AWSServiceManager.default()?.defaultServiceConfiguration = configuration

// sign in a user
pool.getUser("UserNameOfAUserInYourPool").getSession("UserNameOfAUserInYourPool", password: "PasswordOfAUserInYourPool", validationData: nil).continueWith { (task) -> Any? in
    if let error = task.error {
        print("user sign in error: \(error.localizedDescription)")
    } else {
        print("user session is: \(String(describing: task.result))")
    }

    // add a user to GroupA
    let request = AWSCognitoIdentityProviderAdminAddUserToGroupRequest()
    request?.groupName = "GroupA"
    request?.userPoolId = "YourUserPoolId"
    request?.username = "UserNameOfAUserInYourPool"

    return AWSCognitoIdentityProvider.default().adminAddUser(toGroup: request!)
    }.continueWith { (task) -> Any? in
        if let error = task.error {
            print("cannot add user to group \(error.localizedDescription)")
        }
}

私が提案したように、これはハードコードされたAWS認証情報のないソリューションです。Cognito Identityプールは、ユーザーがCognitoユーザープール[3]にサインインした後、温度AWS認証情報を提供します。これにより、「adminAddToGroup」API呼び出しが有効になります。

上記のコードに加えて、AWSコンソールまたはAWSCLIを使用してCognitoIDプールをセットアップする必要もあります。詳細はスクリーンショットにあります。

configuration_identity_pool

また、認証されたユーザーが引き受ける認証IAMロールを作成する必要があります。これがポリシーの例です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cognito-idp:AdminRemoveUserFromGroup",
                "cognito-idp:AdminAddUserToGroup"
            ],
            "Resource": "Your_userpool_ARN"
        }
    ]
}

参照:[0] https://aws-amplify.github.io/aws-sdk-ios/docs/reference/Classes/AWSCognitoIdentityProvider.html#//api/name/adminAddUserToGroup:[2 ] https:// aws。 amazon.com/blogs/mobile/how-amazon-cognito-keeps-mobile-app-users-data-safe/ [3] https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito -integrating-user-pools-with-identity-pools.html

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS LambdaからCognitoユーザープールグループにユーザーを追加するにはどうすればよいですか?

分類Dev

特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

分類Dev

特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

分類Dev

特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

分類Dev

AWS CognitoユーザープールユーザーをDB(DynamoDBなど)に保存するにはどうすればよいですか?

分類Dev

Googleアカウントを認証してAWS Cognitoユーザープールに追加するにはどうすればよいですか?

分類Dev

AWSユーザープールをDynamoDbに接続するにはどうすればよいですか?

分類Dev

AWS Cognitoユーザープールの作成時にphone_number形式を変更するにはどうすればよいですか?

分類Dev

Cognitoユーザープール:aws cognito java sdkでaccessTokenの有効期限が切れた後、refreshTokenを使用して新しいaccessTokenを取得するにはどうすればよいですか?

分類Dev

AWS Cognito / Amplify-新しいユーザーのサインアップをユーザーグループに自動的に追加する

分類Dev

AWS-Cognito:ユーザープールの作成後にユーザープール名を編集することは可能ですか?

分類Dev

aws cognito response_code form saml redirectを使用してcognitoからユーザー情報を取得するにはどうすればよいですか?

分類Dev

AWS API Gatewayで単一のエンドポイントに複数のCognitoユーザープールを使用するにはどうすればよいですか?

分類Dev

AWS Cognito SDKを使用して、NodeJSを使用してRESTサービスからユーザーを認証するにはどうすればよいですか?

分類Dev

Aws Cognito:ユーザーがサインアップするときにユーザーをユーザーグループに割り当てる方法

分類Dev

AWS Cognitoユーザーのアクセストークンを生成するにはどうすればよいですか?

分類Dev

AWS Cognito Ruby SDKを使用して新しいユーザーを登録するにはどうすればよいですか?

分類Dev

AWS Lambda関数でCognito認証済みユーザー情報を取得するにはどうすればよいですか?

分類Dev

AWS Cognitoで登録ユーザーの管理者確認を要求するにはどうすればよいですか?

分類Dev

AWSのデータをユーザーから「隠す」にはどうすればよいですか?

分類Dev

AWS redshiftユーザー定義関数に文字列を渡すにはどうすればよいですか?

分類Dev

AWS Cognitoを使用して、Facebookなどのサードパーティを通じて新規ユーザーの登録とサインアップを許可するにはどうすればよいですか?

分類Dev

AWS Cognitoユーザープールがブルートフォース攻撃からどのように防御するか

分類Dev

AWS Cognitoユーザーをユーザープール間で移行できますか?

分類Dev

AWSでIAMユーザーごとに使用されるリソース/コストの概要を取得するにはどうすればよいですか?

分類Dev

AWS CDKで疑似パラメータのユーザーデータを取得するにはどうすればよいですか?

分類Dev

AWSノードクライアントのユーザーエージェントを変更するにはどうすればよいですか?

分類Dev

AWS SDKから、現在ログインしているユーザー名(またはIAMユーザー)を取得するにはどうすればよいですか?

分類Dev

Cognitoユーザープール/ AWSリソースを更新する

Related 関連記事

  1. 1

    AWS LambdaからCognitoユーザープールグループにユーザーを追加するにはどうすればよいですか?

  2. 2

    特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

  3. 3

    特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

  4. 4

    特定のユーザーのAWS Cognitoユーザープールでユーザー属性を編集するにはどうすればよいですか?

  5. 5

    AWS CognitoユーザープールユーザーをDB(DynamoDBなど)に保存するにはどうすればよいですか?

  6. 6

    Googleアカウントを認証してAWS Cognitoユーザープールに追加するにはどうすればよいですか?

  7. 7

    AWSユーザープールをDynamoDbに接続するにはどうすればよいですか?

  8. 8

    AWS Cognitoユーザープールの作成時にphone_number形式を変更するにはどうすればよいですか?

  9. 9

    Cognitoユーザープール:aws cognito java sdkでaccessTokenの有効期限が切れた後、refreshTokenを使用して新しいaccessTokenを取得するにはどうすればよいですか?

  10. 10

    AWS Cognito / Amplify-新しいユーザーのサインアップをユーザーグループに自動的に追加する

  11. 11

    AWS-Cognito:ユーザープールの作成後にユーザープール名を編集することは可能ですか?

  12. 12

    aws cognito response_code form saml redirectを使用してcognitoからユーザー情報を取得するにはどうすればよいですか?

  13. 13

    AWS API Gatewayで単一のエンドポイントに複数のCognitoユーザープールを使用するにはどうすればよいですか?

  14. 14

    AWS Cognito SDKを使用して、NodeJSを使用してRESTサービスからユーザーを認証するにはどうすればよいですか?

  15. 15

    Aws Cognito:ユーザーがサインアップするときにユーザーをユーザーグループに割り当てる方法

  16. 16

    AWS Cognitoユーザーのアクセストークンを生成するにはどうすればよいですか?

  17. 17

    AWS Cognito Ruby SDKを使用して新しいユーザーを登録するにはどうすればよいですか?

  18. 18

    AWS Lambda関数でCognito認証済みユーザー情報を取得するにはどうすればよいですか?

  19. 19

    AWS Cognitoで登録ユーザーの管理者確認を要求するにはどうすればよいですか?

  20. 20

    AWSのデータをユーザーから「隠す」にはどうすればよいですか?

  21. 21

    AWS redshiftユーザー定義関数に文字列を渡すにはどうすればよいですか?

  22. 22

    AWS Cognitoを使用して、Facebookなどのサードパーティを通じて新規ユーザーの登録とサインアップを許可するにはどうすればよいですか?

  23. 23

    AWS Cognitoユーザープールがブルートフォース攻撃からどのように防御するか

  24. 24

    AWS Cognitoユーザーをユーザープール間で移行できますか?

  25. 25

    AWSでIAMユーザーごとに使用されるリソース/コストの概要を取得するにはどうすればよいですか?

  26. 26

    AWS CDKで疑似パラメータのユーザーデータを取得するにはどうすればよいですか?

  27. 27

    AWSノードクライアントのユーザーエージェントを変更するにはどうすればよいですか?

  28. 28

    AWS SDKから、現在ログインしているユーザー名(またはIAMユーザー)を取得するにはどうすればよいですか?

  29. 29

    Cognitoユーザープール/ AWSリソースを更新する

ホットタグ

アーカイブ