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