翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Cognito 認証情報プロバイダー
注記
このトピックの情報は、.NET に基づくプロジェクトに固有のものです。 Framework および AWS SDK for .NET バージョン 3.3 以前。
Amazon.CognitoIdentity.CognitoAWSCredentials
AWSSDK.CognitoIdentityWord
CognitoAWSCredentials
の設定での最初のステップは「ID プール」を作成することです。(アイデンティティプールとは、お客様のアカウントに固有のユーザー ID 情報のストアです。) 情報はクライアントプラットフォーム、デバイス、およびオペレーティングシステム間で取得可能です。これにより、ユーザーが電話でアプリの使用を開始して、後でタブレットに切り替えた場合でも、保持されたアプリ情報はそのユーザーに対して引き続き利用可能になります。Amazon Cognito コンソールから新しい ID プールを作成できます。コンソールを使用している場合は、必要なその他の情報も提供します。
-
アカウント番号 - 123456789012 などの、アカウントに一意な 12 桁の数字。
-
認証されていないロール ARN - 認証されていないユーザーが引き受けるロール。たとえば、このロールは、データへの読み取り専用アクセス許可を提供できます。
-
認証されたロール ARN - 認証されたユーザーが引き受けるロール。このロールは、データへのより広範なアクセス許可を提供できます。
CognitoAWSCredentials のセットアップ
次のコード例では、認証されていないユーザーとして Amazon S3 を呼び出すことを可能にする CognitoAWSCredentials
のセットアップ方法を示しています。これにより、ユーザーを認証するのに必要な最小量のデータだけで呼び出すことができます。ユーザーアクセス許可はロールによって制御されるため、必要に応じてアクセスを設定することもできます。
CognitoAWSCredentials credentials = new CognitoAWSCredentials( accountId, // Account number identityPoolId, // Identity pool ID unAuthRoleArn, // Role for unauthenticated users null, // Role for authenticated users, not set region); using (var s3Client = new AmazonS3Client(credentials)) { s3Client.ListBuckets(); }
認証されていないユーザー AWS として を使用する
次のコード例は、認証されていないユーザー AWS として を使用し始め、Facebook を介して認証し、Facebook 認証情報を使用するように認証情報を更新する方法を示しています。この方法を使用すると、認証されたロールを通じて、認証されたユーザーにさまざまな機能を付与できるようになります。たとえば、ユーザーが匿名でコンテンツを表示することを許可するものの、1 つ以上の設定済みプロバイダーでログオンしている場合に投稿を許可する電話アプリケーションがあります。
CognitoAWSCredentials credentials = new CognitoAWSCredentials( accountId, identityPoolId, unAuthRoleArn, // Role for unauthenticated users authRoleArn, // Role for authenticated users region); using (var s3Client = new AmazonS3Client(credentials)) { // Initial use will be unauthenticated s3Client.ListBuckets(); // Authenticate user through Facebook string facebookToken = GetFacebookAuthToken(); // Add Facebook login to credentials. This clears the current AWS credentials // and retrieves new AWS credentials using the authenticated role. credentials.AddLogin("graph.facebook.com", facebookAccessToken); // This call is performed with the authenticated role and credentials s3Client.ListBuckets(); }
CognitoAWSCredentials
オブジェクトは、 AWS SDK for .NETの一部である AmazonCognitoSyncClient
で使用した場合、さらに多くの機能を提供します。AmazonCognitoSyncClient
と CognitoAWSCredentials
の両方を使用している場合は、AmazonCognitoSyncClient
を使用して呼び出しを行うときに IdentityPoolId
と IdentityId
のプロパティを指定する必要はありません。これらのプロパティは CognitoAWSCredentials
から自動的に入力されます。次のコード例では、これとともに、IdentityId
の CognitoAWSCredentials
が変更されるたびに通知するイベントを示します。IdentityId
は、たとえば、認証されていないユーザーから認証されたユーザーに変更する際など、場合によって変更されます。
CognitoAWSCredentials credentials = GetCognitoAWSCredentials(); // Log identity changes credentials.IdentityChangedEvent += (sender, args) => { Console.WriteLine("Identity changed: [{0}] => [{1}]", args.OldIdentityId, args.NewIdentityId); }; using (var syncClient = new AmazonCognitoSyncClient(credentials)) { var result = syncClient.ListRecords(new ListRecordsRequest { DatasetName = datasetName // No need to specify these properties //IdentityId = "...", //IdentityPoolId = "..." }); }