

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Cognito の認証と認可を、ウェブアプリケーションとモバイルアプリケーションに統合する
<a name="cognito-integrate-apps"></a>

Amazon Cognito の実装は、 AWS マネジメントコンソール または AWS SDK 管理ツールと、アプリケーション内の SDK ライブラリを組み合わせたものです。Amazon Cognito コンソールは、Amazon Cognito ユーザープールとアイデンティティプールを設定および管理するためのビジュアルインターフェイスです。

Amazon Cognito ユーザープールと最も簡単に統合するには、[マネージドログイン](cognito-terms.md#terms-managedlogin)を使用します。マネージドログインは、Amazon Cognito ユーザープールを迅速にテストおよびデプロイするための、即座に使用できるウェブベースのサインインアプリケーションです。マネージドログインによるユーザープール認証には、ホストされたサインインページにユーザーを誘導する OpenID Connect (OIDC) ライブラリが必要です。この一連のユーザーインタラクティブなリダイレクトウェブエンドポイントでは、サードパーティによるサインイン、多要素認証 (MFA)、認証フローの選択などの認証フローを Amazon Cognito が処理します。アプリケーションは、Amazon Cognito がレスポンスで返す認証結果だけを処理する必要があります。

また、 AWS SDK をアプリケーションに追加したり、認証インターフェイスをカスタムビルドしたり、ユーザーの認証と認可のために API オペレーションを呼び出すこともできます。 [AWS Amplify](https://docs.amplify.aws/)は、バックエンドで Amazon Cognito 認証を使用してフルスタックアプリケーションを構築 AWS のサービス するための です。

例えば、アプリケーションは、ユーザーのサインインのためにマネージドログインを呼び出し、次にアプリケーションコードからトークンエンドポイントを呼び出して、ユーザーの認可コードをトークンと交換する場合があります。この場合、アプリケーションはユーザーのトークンを解釈して保存し、認証と認可のための適切なコンテキストでトークンを提示する必要があります。Amplify は、これらのプロセス用の組み込み機能を備えたガイド付き統合ツールを追加します。

Amazon Cognito リソースをすべてコードで構築することもできます。ID プールには、ユーザープールと同じマネージド認証オプションはありません。アプリケーションで AWS 認証情報にアクセスするには、インポートされた SDK モジュールに ID プールオペレーションを実装します。独自にカスタム構築したアプリケーションコードの使用を開始するには、[AWS SDK](https://aws.amazon.com/developer/tools/) の Amazon Cognito [コード例](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html)を参照してください。OpenID Connect ID プロバイダーとして Amazon Cognito と統合するには、[OpenID Connect デベロッパーツール](https://openid.net/certified-open-id-developer-tools/)を使用します。

Amazon Cognito の認証と認可を使用する前に、アプリプラットフォームを選択し、サービスと統合するためのコードを準備します。 AWS SDKs「」を参照してください[AWS SDKsによる認証](#amazon-cognito-authentication-with-sdks)。 AWS CLI は Amazon Cognito およびその他のコマンドライン SDK であり AWS のサービス、Amazon Cognito API オペレーションとその構文に慣れるための貴重な場所です。

**注記**  
Amazon Cognito の一部のコンポーネントは、API でのみ設定できます。例えば、ユーザープールの[カスタム SMS または E メール送信者](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-sender-triggers.html)の Lambda トリガーは、[CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) または [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) API リクエスト内の [UserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolType.html) クラスの `LambdaConfig` プロパティを更新するリクエストでのみ設定できます。

Amazon Cognito ユーザープール API は、その名前空間を複数の API オペレーションクラスと共有します。1 つのクラスでは、ユーザープールとそのプロセス、ID プロバイダー、ユーザーを設定します。別のクラスでは、パブリッククライアントでユーザーがサインイン、サインアウト、プロファイルの管理を行うための認証されていないオペレーションを提供します。API オペレーションの最後のクラスでは、機密のサーバー側クライアントで、独自の  AWS  認証情報で認可したユーザーオペレーションを実行します。アプリケーションコードの実装を始める前に、目的のアプリケーションアーキテクチャを知っておく必要があります。詳細については、「[API、OIDC、マネージドログインページの認証についての理解](authentication-flows-public-server-side.md#user-pools-API-operations)」を参照してください。

**Topics**
+ [による認証 AWS Amplify](#cognito-integrate-apps-amplify)
+ [AWS SDKsによる認証](#amazon-cognito-authentication-with-sdks)
+ [Amazon Cognito による認証の仕組み](cognito-how-to-authenticate.md)
+ [AWS SDK でのこのサービスの使用](sdk-general-information-section.md)
+ [Amazon Verified Permissions による承認](amazon-cognito-authorization-with-avp.md)

## による認証 AWS Amplify
<a name="cognito-integrate-apps-amplify"></a>

AWS Amplify は、ウェブおよびモバイルアプリケーションを構築するための完全なソリューションです。Amplify を使用すると、Amplify ライブラリを使用して既存のリソースに接続したり、Amplify コマンドラインインターフェイス (CLI) を使用して新しいリソースを作成および設定したりできます。Amplify には、[Authenticator](https://ui.docs.amplify.aws/react/connected-components/authenticator) などの UI コンポーネントも接続されており、アプリケーションでのサインインやサインアップエクスペリエンスの設定とカスタマイズに使用できます。

フロントエンドアプリケーションで Amplify の認証機能を使用するには、プラットフォーム別の以下のドキュメントを参照してください。
+ [React 向けの Amplify 認証](https://docs.amplify.aws/react/start/)
+ [React Native 向けの Amplify 認証](https://docs.amplify.aws/react-native/start/)
+ [Swift 向けの Amplify 認証 (iOS)](https://docs.amplify.aws/swift/start/)
+ [Android 向けの Amplify 認証](https://docs.amplify.aws/android/start/)
+ [Flutter 向けの Amplify 認証](https://docs.amplify.aws/flutter/start/)

Amplify ライブラリはオープンソースで、[GitHub](https://github.com/aws-amplify) で利用できます。Amplify Auth が Amazon Cognito 認証をどのように実装するかの詳細については、以下のライブラリを参照してください。
+ [amplify-js](https://github.com/aws-amplify/amplify-js/tree/main/packages/auth)
+ [amplify-swift](https://github.com/aws-amplify/amplify-swift/tree/main/Amplify/Categories/Auth)
+ [amplify-flutter](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/auth)
+ [amplify-android](https://github.com/aws-amplify/amplify-android/tree/main/aws-auth-cognito)

### Amplify によるユーザーインターフェイス (UI) の作成
<a name="cognito-integrate-apps-amplify-ui"></a>

[ユーザープールのマネージドログイン](cognito-user-pools-managed-login.md)は、ウェブまたはモバイルアプリの認証フロントエンドの最も重要なニーズを満たすことができます。マネージドログインで対応できるパラメータを超えてユーザーインターフェイス (UI) をカスタマイズするには、アプリケーションをカスタム構築します。[Amplify UI](https://ui.docs.amplify.aws/) は、さまざまな言語でのカスタマイズ可能なフロントエンドコンポーネントのコレクションです。

![Amplify Authenticator アプリケーションの例を示すスクリーンショット。](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/amplify-authenticator-ui.png)


カスタム認証コンポーネントの使用を開始するには、Authenticator コンポーネントに関する以下のドキュメントを参照してください。
+ [Authenticator for Android](https://ui.docs.amplify.aws/android/connected-components/authenticator)
+ [Authenticator for Angular](https://ui.docs.amplify.aws/angular/connected-components/authenticator)
+ [Authenticator for Flutter](https://ui.docs.amplify.aws/flutter/connected-components/authenticator)
+ [Authenticator for React](https://ui.docs.amplify.aws/react/connected-components/authenticator)
+ [Authenticator for React Native](https://ui.docs.amplify.aws/react-native/connected-components/authenticator)
+ [Authenticator for Swift](https://ui.docs.amplify.aws/swift/connected-components/authenticator)
+ [Authenticator for Vue](https://ui.docs.amplify.aws/vue/connected-components/authenticator)

## AWS SDKsによる認証
<a name="amazon-cognito-authentication-with-sdks"></a>

安全なバックエンドを使用して Amazon Cognito とやり取りする独自の ID マイクロサービスを構築するには、選択した言語で AWS SDK を使用して Amazon Cognito ユーザープールと Amazon Cognito ID プール API に接続します。

各 API オペレーションの詳細については、「[Amazon Cognito ユーザープール API リファレンス](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_Operations.html)」と「[Amazon Cognito API リファレンス](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/Welcome.html)」を参照してください。これらのドキュメントには、サポートされているプラットフォームでさまざまな SDK を使用するためのリソースに関する、「[https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#API_InitiateAuth_SeeAlso](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#API_InitiateAuth_SeeAlso)」セクションが含まれています。
+ [AWS コマンドラインインターフェイス](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/index.html#cli-aws-cognito-idp)
+ [AWS SDK for .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CognitoIdentityProvider/TCognitoIdentityProviderClient.html)
+ [AWS SDK for C\+\+](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-cognito-idp/html/class_aws_1_1_cognito_identity_provider_1_1_cognito_identity_provider_client.html)
+ [AWS SDK for Go](https://docs.aws.amazon.com/sdk-for-go/api/service/cognitoidentityprovider/#CognitoIdentityProvider)
+ [AWS SDK for Java V2](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/cognitoidentityprovider/CognitoIdentityProviderClient.html)
+ [AWS SDK for JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html)
+ [AWS SDK for PHP V3](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CognitoIdentityProvider.CognitoIdentityProviderClient.html)
+ [AWS SDK for Python](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html)
+ [AWS SDK for Ruby V3](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CognitoIdentityProvider/Client.html)