SSO認証ポリシーの構成
エンタープライズ・アプリケーション用に作成したリソースごとに認証ポリシーを作成します。
- 「統合アプリケーション」リスト・ページで、変更するエンタープライズ・アプリケーションを選択します。リスト・ページの検索に関するヘルプが必要な場合は、アプリケーションのリストを参照してください。
-
「アプリケーションの詳細」ページで、「SSO構成」を選択し、「SSO構成の編集」を選択します。「認証ポリシー」セクションで、必要に応じて「オーディエンス検証」、「CORSを許可」または「セキュアなCookieが必要」を確認します。
- オーディエンス検証: セキュリティー上の理由から、「オーディエンス検証」チェックボックスが選択されていることを確認します。オーディエンス検証チェック・ボックスは、トークンがアプリケーション・ゲートウェイの既知の発行者(この場合はIAM)によって発行されたことを確認するために使用されます。「オーディエンス検証」の選択を解除した場合、アプリケーション・ゲートウェイはトークンのオーディエンスを検証しないため、アプリケーションが攻撃に対して脆弱になります。
- CORSを許可: あるアイデンティティ・ドメインの稼働するアプリケーションが別のアイデンティティ・ドメインのデータを取得できるように、Cross-Origin Resource Sharing (CORS)を有効にする場合に選択します。
- セキュアなCookieが必要: アプリケーション・ゲートウェイがSSLモード(HTTP)で構成されている場合は、「セキュアなCookieが必要」が選択されていることを確認します。このフラグは、セキュアでないHTTP通信で使用されるCookieを回避するために、セキュアなヘッダーを設定します。アプリケーション・ゲートウェイが非SSLモード(HTTP)で構成されている場合は、「セキュアなCookieが必要」の選択を解除します。
- 「管理対象リソースの追加」を選択します。
- 「管理対象リソースの追加」ウィンドウで、「リソース」セクションで作成したリソースのリストから認証ポリシーを構成するソースを選択するか、管理対象リソースを追加します。
-
次の表を使用して、選択したリソースの認証メソッドを定義します:
認証方法
説明
基本認証
「Basic認証」メソッドは、HTTP Basic認証を実行します。リクエストに
Authentication Basicヘッダーが含まれていない場合、ユーザーのブラウザでは資格証明の入力が求められます。ヘッダーで送信される資格証明は、IAMで検証される
AuthenticationBasic内にあります。Basic認証+ログアウト
このメソッドは、アプリケーションのログアウト・プロセスを表すアプリケーションのリソース(URL)を保護するために使用されます。
アプリケーション・ゲートウェイがこのリソースに対するリクエストをインターセプトすると、HTTPログアウト・プロセスが開始されます。このプロセスは、「Basic認証Auth+Session」認証メソッドによって作成されたHTTPセッションのCookieを削除します。
ログアウト・プロセスが終了すると、アプリケーション・ゲートウェイは、リクエストされたアプリケーションのリソースにユーザー・ブラウザを転送します。
HTTPログアウト・プロセスでは、現在のブラウザ・セッションでブラウザによってキャッシュされた資格証明がクリアされないため、ユーザーはその後のリクエストで再度入力を求められないことがあります。
Basic認証+セッション
「Basic認証」と同様に機能します。資格証明が検証されると、HTTPセッションCookie (
ORA_OCIS_CG_BA_SESSION)が作成されます。フォームまたはアクセス・トークン
この認証メソッドでは、アプリケーション・ゲートウェイは資格証明の収集および検証をIAMに委任します。
リクエストに
Authorization Bearerヘッダーが存在する場合、認証はリソース・サーバー・フローに似ています。user-agentヘッダーが存在する場合、ユーザー・ブラウザ・フローが実行されます。ユーザー・ブラウザ・フローは、資格証明の収集および検証のためにユーザー・ブラウザをIAMにリダイレクトし、OAuthセッションCookie (
ORA_OCIS_CG_SESSION_*)を作成します。リクエストに
Authorization sessionヘッダーが存在し、OAuthセッションCookieが見つからないか無効な場合、通常のOAuthログイン・フローは抑制され、401HTTPエラー・コードがWWW-Authenticate: Bearer error="invalid_session"ヘッダーとともに返されます。これは、不要なログインをトリガーする可能性があるアプリケーションによって、リクエストにuser-agentヘッダーが含まれるが、Authorization Bearerヘッダーは含まれておらず、独自に再認証を処理できる場合に使用されます。フォーム+ログアウト
このメソッドは、アプリケーションのログアウト・プロセスを表すアプリケーションのリソース(URL)を保護するために使用されます。
アプリケーション・ゲートウェイは、リクエストをアプリケーションURLに転送するかわりに、ユーザー・ブラウザをIAM OAuthログアウト・エンドポイント(
/oauth2/v1/userlogout)にリダイレクトするために、このリソースのURLをアプリケーションが公開する必要はありません。「リソースの追加」ウィンドウの「ログアウト後URL」は、ユーザーのサインアウト後にアプリケーション・ゲートウェイによってユーザー・ブラウザがリダイレクトされるURLです。アプリケーションの「ログアウト後URL」ページで使用する「ログアウト後の状態」パラメータ値を指定することもできます。
複数トークン
リクエストの
Authorizationヘッダーのコンテンツに基づいて認証を実行します:- リクエストに
Authorization Basicヘッダーが含まれている場合、アプリケーション・ゲートウェイはこの認証を「Basic認証」として処理します。 - リクエストに
Authorization BearerまたはAuthorization Sessionヘッダーが含まれている場合、アプリケーション・ゲートウェイは、この認証を「フォームまたはアクセス・トークン」として処理します。 - Authorizationヘッダーが見つからないか、その他の値が含まれている場合、
401 UnauthoizedHTTPエラーが返されます。
Multitoken+Fallthrough
複数トークンと同じですが、
AuthorizationヘッダーはBasic、Bearerまたはsessionでない場合は、401 UnauthoizedHTTPエラーを表示するかわりに、アプリケーション・ゲートウェイで認証方式が「Basic認証」のように機能します。無名
- 有効なOAuthセッションCookieが存在する場合、認証ポリシーで構成されたヘッダーがリクエストに追加され、そのリクエストがアプリケーションに転送されます。
- OAuthセッションCookieが見つからないか期限切れの場合、「パブリック」認証メソッドと同様に機能します。この場合、値が
anonymousのREMOTE_USERヘッダーがリクエストに追加されます。
どちらのオプションでも、認証ポリシーで構成されたヘッダーがリクエストに追加されますが、認証が実行されません。
パブリック
認証は実行されません。リクエストは、そのままアプリケーションに転送されます。
サポートされていない
このメソッドは、常に
500 Not SupportedHTTPエラー・コードを返します。たとえば、このメソッドを使用して、アプリケーションでは使用可能だが、ユーザーからのアクセスを望まない保護されたURLへのアクセスを無効にできます。
- リクエストに
-
前述のステップで選択した認証メソッドは、すべてのHTTPメソッド(
GET、HEAD、DELETE、PUT、OPTIONS、CONNECT、POSTまたはPATCH)に対して有効です。HTTPメソッドに対して異なる認証メソッド(たとえば、GETHTTPメソッドに対して「フォームまたはアクセス・トークン」認証メソッド、POSTHTTPメソッドに対して「複数トークンの」認証メソッド)を指定する場合、「認証メソッド・オーバーライド」メニューを使用してそれを実行できます。HTTPメソッドを選択し、必要な認証メソッドを選択します。複数のHTTPメソッドをオーバーライドする必要がある場合は、このステップを複数回繰り返します。 -
アプリケーション・ゲートウェイでアプリケーションに転送できるようにリクエストにヘッダー変数を追加する場合は、「ヘッダー」のプラス記号「+」アイコンをクリックし、名前を指定して、ユーザー属性のリストからヘッダー変数の値を選択するか、固定値を入力するかまたは式を指定します。複数のヘッダー変数を追加するには、「ヘッダー」の「+」アイコンを複数回選択します。
たとえば、アプリケーションがIAMにサインインしたユーザーのIDを認識できるように、すべてのリクエストに
USERLOGGEDINという名前のヘッダー変数が存在する必要があるとします。ヘッダー変数を1つ追加して、「名前」フィールドにUSERLOGGEDINと入力して、リストから「ユーザー名」を選択するか、「値」に$subject.user.userNameと入力する必要があります。ノート
メニューからユーザー属性を選択するか、IAMのSCIMユーザー・スキーマの任意の属性を使用して式をヘッダー変数値として使用できます。認証ポリシーでサポートされるヘッダー値式を参照してください。
- 「管理対象リソースの追加」を選択します。
- 「Save changes」を選択します。