SDKを使用したアプリケーションの認証について学習

Oracle Identity Cloud Serviceは、アプリケーションにアイデンティティ管理、シングル・サインオン(SSO)およびアイデンティティ・ガバナンスを提供します。また、Oracle Cloudのセキュリティ・プラットフォームも提供しているため、アプリケーションへの安全かつ容易なアクセス、開発およびデプロイが可能です。

Oracle Identity Cloud Serviceは、アイデンティティ・プロバイダとして機能し、認証メカニズムを一元化し、すべてのパスワード管理職責を処理し、アプリケーションのSSOを提供できます。また、マルチファクタ認証(MFA)を有効にし、修正アクションを強制するポリシー(ユーザーによるアプリケーションへのアクセスを許可または拒否するなど)を実装することで、アプリケーションのセキュリティを強化できます。

Oracle Identity Cloud Service認証メカニズムを使用するアプリケーションを開発する場合は、SDKを使用します。Oracle Identity Cloud ServiceのSDKは、業界標準のプロトコルおよびレイヤー(OAuth 2.0やOpenID Connect 1.0など)に基づいています。SDKを使用すると、Oracle Identity Cloud Serviceでユーザーを認証するために必要なすべてのREST APIエンドポイント・コールをカプセル化することで、作業が容易になります。

Oracle Identity Cloud Service SDKでは、OAuth 2.0およびOpenID Connect 1.0の次のフローがサポートされています:

  • 3-leggedフロー: ユーザーはOracle Identity Cloud Serviceと直接対話します。ユーザーがサインインすると、Oracle Identity Cloud Serviceは、SDKによってユーザー・アクセス・トークンと交換される認可コードを発行します。このアクセス・トークンは、アプリケーション内の保護されたリソースへのユーザー・アクセス権を付与するために使用されます。3-leggedフローでは、認可コード付与タイプが使用されます。

    Oracleでは、認証のためにWebアプリケーションをOracle Identity Cloud Serviceと統合するために、3-leggedフローを使用することをお薦めします。また、認可コード付与タイプを使用すると、再認証を必要とせずに、Oracle Identity Cloud Serviceによって保護されている他のアプリケーションにアクセスできます。

  • 2-leggedフロー: ユーザーはOracle Identity Cloud Serviceと直接対話しません。かわりに、すべての通信は、信頼できるアプリケーションとOracle Identity Cloud Serviceの間で行われます。これらのアプリケーションは、アプリケーション内の保護されたリソースへのアクセス権をユーザーに付与するために、Oracle Identity Cloud Serviceからユーザー・アクセス・トークンをリクエストおよび受信します。2-leggedフローでは、クライアント資格証明またはリソース所有者付与タイプが使用されます。

アーキテクチャ

次のアーキテクチャ図は、SDKライブラリを使用して、OAuth 2.0およびOpenID Connect 1.0の2-leggedおよび3-legged認証フローを実行するWebアプリケーションを示しています。3-leggedフローは認可コード付与タイプを使用し、2-leggedフローはクライアント資格証明およびリソース所有者付与タイプを使用します。

認可コード権限タイプ

authorization-code-grant-type.pngの説明が続きます
図authorization-code-grant-type.pngの説明

データ・フローは、次のステップで構成されています。

  1. ユーザーは、保護されたURLをリクエストします。

  2. Oracle Identity Cloud Serviceに「サインイン」ページが表示されます。

  3. ユーザーは自分のログイン資格証明を送信します。

  4. Oracle Identity Cloud Serviceは、Webブラウザを介してWebアプリケーションに認可コードを発行します。

  5. Webアプリケーションは、SDKを使用して認可コードをユーザー・アクセス・トークンと交換します。

  6. Webアプリケーションには、ユーザーのコンテンツが表示されます。

クライアント資格証明権限付与タイプ

client-credentials-grant-type.pngの説明が続きます
図client-credentials-grant-type.pngの説明

データ・フローは、次のステップで構成されています。

  1. ユーザーは、保護されたURLをリクエストします。

  2. リクエストはWebアプリケーションに転送されます。

  3. Webアプリケーションは、SDKを使用して、検証のためにクライアントIDおよびシークレットをOracle Identity Cloud Serviceに送信します。

  4. Oracle Identity Cloud Serviceは、Webアプリケーションへのアクセス・トークンを発行します。

  5. Webアプリケーションには、ユーザーのコンテンツが表示されます。

WebアプリケーションがOracle Identity Cloud ServiceのREST APIにアクセスする必要がある場合は、クライアント資格証明付与タイプを使用することもできます。Oracle Identity Cloud Serviceによって発行されたユーザー・アクセス・トークンは、ユーザー情報を保持しません。

リソース所有者権限タイプ

resource-owner-grant-type.pngの説明が続きます
図resource-owner-grant-type.pngの説明

データ・フローは、次のステップで構成されています。

  1. ユーザーは、保護されたURLをリクエストします。

  2. 「サインイン」ページが表示されます。

  3. ユーザーは自分のログイン資格証明を送信します。

  4. アプリケーションは、SDKを使用して、ユーザーの資格証明、およびアプリケーションのクライアントIDとシークレットを検証のためにOracle Identity Cloud Serviceに送信します。

  5. Oracle Identity Cloud Serviceは、アプリケーションにユーザー・アクセス・トークンを発行します。

  6. ユーザーのコンテンツが表示されます。

リソース所有者権限付与タイプは3-legged認可コード権限付与タイプに似ていますが、アプリケーションはユーザーの資格証明を収集し、アプリケーションのクライアントIDおよびクライアント・シークレットとともに使用して、Oracle Identity Cloud Serviceからユーザー・アクセス・トークンをリクエストします。

ノート:

リソース所有者権限付与タイプでは、アプリケーションはOracle Identity Cloud Serviceによって提供されるSSOプロセスに参加できません。アプリケーションでOracle Identity Cloud Service認証メカニズムを使用する場合は、3-legged認可コード付与タイプを使用します。

必須サービスおよびロールについて

このソリューションには、Oracle Identity Cloud Serviceが必要です。

これらは必要なロールです。

ロール 必須...
Security administrator Oracle Identity Cloud Serviceコンソールの「ダウンロード」ページにアクセスします。このページでは、Java SDKをダウンロードできます。
Application administrator Oracle Identity Cloud Serviceでアプリケーションを管理します。これには、Oracle Identity Cloud ServiceへのサンプルJavaアプリケーションの登録が含まれます。

必要なものを取得するには、Oracle製品、ソリューションおよびサービスを参照してください。