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の説明
データ・フローは、次のステップで構成されています。
-
ユーザーは、保護されたURLをリクエストします。
-
Oracle Identity Cloud Serviceに「サインイン」ページが表示されます。
-
ユーザーは自分のログイン資格証明を送信します。
-
Oracle Identity Cloud Serviceは、Webブラウザを介してWebアプリケーションに認可コードを発行します。
-
Webアプリケーションは、SDKを使用して認可コードをユーザー・アクセス・トークンと交換します。
-
Webアプリケーションには、ユーザーのコンテンツが表示されます。
クライアント資格証明権限付与タイプ
図client-credentials-grant-type.pngの説明
データ・フローは、次のステップで構成されています。
-
ユーザーは、保護されたURLをリクエストします。
-
リクエストはWebアプリケーションに転送されます。
-
Webアプリケーションは、SDKを使用して、検証のためにクライアントIDおよびシークレットをOracle Identity Cloud Serviceに送信します。
-
Oracle Identity Cloud Serviceは、Webアプリケーションへのアクセス・トークンを発行します。
-
Webアプリケーションには、ユーザーのコンテンツが表示されます。
WebアプリケーションがOracle Identity Cloud ServiceのREST APIにアクセスする必要がある場合は、クライアント資格証明付与タイプを使用することもできます。Oracle Identity Cloud Serviceによって発行されたユーザー・アクセス・トークンは、ユーザー情報を保持しません。
リソース所有者権限タイプ
図resource-owner-grant-type.pngの説明
データ・フローは、次のステップで構成されています。
-
ユーザーは、保護されたURLをリクエストします。
-
「サインイン」ページが表示されます。
-
ユーザーは自分のログイン資格証明を送信します。
-
アプリケーションは、SDKを使用して、ユーザーの資格証明、およびアプリケーションのクライアントIDとシークレットを検証のためにOracle Identity Cloud Serviceに送信します。
-
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製品、ソリューションおよびサービスを参照してください。