Oracle® Fusion Middleware Oracle Access Management管理者ガイド 11g リリース2 (11.1.2.3) for All Platforms E61950-08 |
|
前 |
次 |
表55-2を参照してください
この節では、以下のトピックについて説明します。
保護対象にするアプリケーションは、Oracle Platform Security Services (OPSS)のPS5用Opatchを適用したOracle Fusion Middleware 11.1.1パッチ・セット5 (PS5)またはOracle Fusion Middleware PS6以降で作成したWebLogic Serverドメインにデプロイする必要があります。
アプリケーションが実行されているWebLogic Serverドメインは、Access Manager Identity Asserterコンポーネントによって保護されている必要があり、そのコンポーネントによって、Access Managerから受け取ったIDアサーションが検証され、アイデンティティ・コンテキスト・ランタイムの作成プロセスが開始されます。Access Manager Identity Asserterは、トークン・タイプOAM_IDENTITY_ASSERTIONを検出するように構成する必要があります。また、アイデンティティ・コンテキスト・ランタイムと直接連動する保護されているアプリケーションは、OPSS属性サービスと連動するためのソース・コード権限を付与されている必要があります。
関連項目:
Access Manager Identity Asserterの構成およびソース・コード権限の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』を参照してください。
OAMは、アイデンティティ・コンテキストの主なパブリッシャおよびプロパゲータとして、関係コンポーネントからアイデンティティ・コンテキスト・データを収集するための中心的な構成ポイントとして機能します。
次の項では、アイデンティティ・コンテキスト管理の背後にあるアーキテクチャの主要な要素について説明します。
Web層とアプリケーション層の間にエンドツーエンド・セキュリティを適切に施行するために、Access Manager認可ポリシーにアサートされた属性を定義することをお薦めします。IDアサーション(SAMLセッション・トークン)は、Webリソースを保護するWebゲートとアプリケーション・サーバー・コンテナとの間の信頼の確保に加えて、SAML属性としてアイデンティティ・コンテキスト・データを公開するためにも使用されます。
IDアサーションは、有効化されている必要があり、アイデンティティ・コンテキスト内に特定の属性を想定しているビジネス・ロジックの必要に応じてアサートされた属性が移入されている必要があります。それは、OAMポリシー・レスポンス・タブ内で構成され、認証と認可の両方のポリシーに対して定義できます。
関連項目:
Access Manager IDアサーションおよびアサートされた属性(表25-25)。
リソースをAccess Manager認証スキームFederationSchemeで保護すると、Access Managerはサービス・プロバイダのように動作し、フェデレーション・パートナによって提供されるSAMLアサーションを受け取るようになります。
フェデレーション・シングル・サインオン(SSO)操作の後、次の属性が、認証済アイデンティティのAccess Managerセッションに存在するようになります。
$session.attr.fed.partner
(パートナ名を含む)
$session.attr.fed.nameidvalue
(SAML名前ID値を含む)
$session.attr.fed.nameidformat
(SAML名前IDフォーマットを含む)
SAML属性ごとに1つの$session.attr.fed.attr.
nameエントリ(パートナから受け取るSAMLアサーションに含まれる)
これらのフェデレーション属性は、アサートされた属性としてoracle:idm:claims:fed:attributes
を選択し、その値をattr-name=$session.attr.fed.attr.
nameに設定することでIDアサーションの構成に使用できます。attr-nameは、アイデンティティ・コンテキスト属性に指定されている名前、nameは、パートナのSAMLアサーション内のSAML属性の名前です。
たとえば、partner-role=$session.attr.fed.attr.role
の値でoracle:idm:claims:fed:attributes
を定義すると、managerという値を持つアイデンティティ・コンテキスト属性oracle:idm:claims:fed:attributes:partner-role
が作成されます($session.attr.fed.attr.role
に、SAML属性roleに対してパートナのSAMLアサーションで指定されているmanagerが含まれていると想定します)。
Access Managerセッション属性は、アサートされた属性としてoracle:idm:claims:session:attributes
を選択し、その値をattr-name=$session.attr.nameに設定することでIDアサーションの構成に使用できます。attr-nameは、アイデンティティ・コンテキスト属性に指定されている名前、nameは、Access Managerセッション属性の名前です。
たとえば、authn-strength=$session.attr.authnlevel
の値でoracle:idm:claims:session:attributes
を定義すると、ログイン・プロセス中に使用される認証スキームによって定義されている値を持つアイデンティティ・コンテキスト属性oracle:idm:claims:session:attributes:authn-strength
が作成されます。
アイデンティティ・ストア属性は、アサートされた属性としてoracle:idm:claims:ids:attributes
を選択し、その値をattr-name=$user.attr
.nameに設定することでAccess Manager IDアサーションの構成に使用できます。attr-nameは、アイデンティティ・コンテキスト属性に指定されている名前、nameは、アイデンティティ・ストア属性の名前です。
たとえば、first-name=$user.attr.fname
の値でoracle:idm:claims:ids:attributes
を定義すると、アイデンティティ・ストアに保持されているそのユーザーのfname
属性の値を持つアイデンティティ・コンテキスト属性oracle:idm:claims:ids:attributes:first-name
が作成されます。
Oracle Access ManagerとOracle Adaptive Access Manager (OAAM)との間の統合の一部として、OAAMはリスクベースのアイデンティティ・コンテキスト属性を公開および伝播します。
この場合、OAAM属性は、ユーザー認証フロー(OAAM側)の終わりにDAPトークンでOAMに渡されます。DAPトークンは、表55-1のoracle:idm:claims:riskネームスペースによって定義される属性を搬送します。その後、OAMによってこれらの属性が$session.risk.attrネームスペースにプッシュされます。次の項では、OAAMとOAMの構成について説明します。
Oracle Adaptive Access Managerをインストールおよび設定できます。
この項では、OAAMのインストールおよびセットアップについて説明します。
Oracle Adaptive Access Managerをセットアップするには
OAAMとの統合のためにAccess Managerを構成できます。
OAAM認証スキームを使用したユーザーの認証を強制するTAPSchemeを使用して、次のステップを実行します。
ノート:
OAAM AdvancedまたはOAAM Basicを使用しないでください。
OAAMと統合するようにAccess Managerを構成するには
OAAMによって公開されるアイデンティティ・コンテキスト・データを検証できます。
検証するには、次のようにします。
oracle:idm:claims:risk:newdevice
は、新しいデバイスからのログイン後はtrueになり、それ以外の場合はfalseになります。
oracle:idm:claims:risk:level
は、いくつかの失敗したログインに続く成功したログインの後に高い値になります。これについてテストするには、いくつかの失敗するログインの後に、成功するログインを実行してみます。
oracle:idm:claims:risk:safeforuser
は、チャレンジ質問にユーザーが適切に回答した後、trueになります。
oracle:idm:claims:risk:fingerprint
には、ユーザーのデバイスのフィンガープリントが含まれます。デフォルトでは、HTTPヘッダー・データから構築されたフィンガープリントが使用されますが、それが使用できない場合は、Flashから構築されたフィンガープリント・データが使用されます。様々なフィンガープリントについてテストするには、様々なデバイスを試してみます。
Oracle Web Service Security Manager (OWSSM)でアイデンティティ・コンテキストを伝播できるようにすることが可能です。
アイデンティティ・コンテキストに対応するようにWeb Service Security Managerを構成するには:
Oracle Entitlements Server (OES)とのランタイムの統合は完全に自動化されています。
アプリケーションによってPEP APIが起動され、認可コールが行われると、PEP APIによってアイデンティティ・コンテキスト・ランタイム全体が、条件(アイデンティティ・コンテキストを定義するポリシー・オブジェクト)が評価されるOES PDPに自動的に伝播されます。
ノート:
認可コールを行うときは、newPepRequest()
メソッドに渡される最後の引数が、nullではなく、少なくともこの例で示すように空のhashmapであることを確認します。
PepRequestFactory requestFactory =
PepRequestFactoryImpl.getPepRequestFactory();
PepRequest request = requestFactory.newPepRequest (subject,
action, resource, new HashMap<String, Object>()
);
PepResponse response = request.decide();
boolean isAuthorized = response.allowed();
条件は、セキュリティ管理者がOES管理コンソールを使用して、アイデンティティ・コンテキスト・スキーマに基づいて作成します。次の組込み関数を使用して、アイデンティティ・コンテキスト属性を使用する条件を指定します。
ASSERT_IDENTITY_CONTEXT
GET_STRING_IDENTITY_CONTEXT
GET_INTEGER_IDENTITY_CONTEXT
GET_BOOLEAN_IDENTITY_CONTEXT
カスタムOES関数は、既知のリクエスト属性として完全なアイデンティティ・コンテキスト・ランタイム情報を受け取ります。このデータ構造は、アイデンティティ・コンテキストAPIを使用してアイデンティティ・コンテキスト・ランタイムに変換できます。次の例は、受け取ったパラメータからコンテキストを作成するカスタムOES関数を示しています。
アイデンティティ・コンテキストを作成するカスタム関数:
public OpssString GET_STRING_IDENTITY_CONTEXT_V2 ( RequestHandle requestHandle, Object[] args, Subject subject, Map roles, Resource resource, ContextHandler contextHandler) throws RuntimeException { // Obtain string representation of the runtime ID Context from the request handle. Context runtimeCtx = null; try { AttributeElement ctxAttr = requestHandle.getAttribute (Constants.IDM_IDC_API_ID, false); if (ctxAttr != null) { String ctxStr = (String) ctxAttr.getValue(); runtimeCtx = new Context(ctxStr); } else { throw new RuntimeException ("Unable to acquire ID Context from request handle"); } } catch (Exception e) { throw new RuntimeException (e.toString()); } … // start using Context which now contains the same exact Identity Context Runtime as was present in the application that made the PEP API call … }
アイデンティティ・コンテキスト・サービスの一部として、Oracle Enterprise Single Sign-on (OESSO)は、クライアントベースのアイデンティティ・コンテキスト属性を公開および伝播できます。
完全な統合が構成されると、クライアント固有のアイデンティティ・コンテキスト属性(「アイデンティティ・コンテキスト・ディクショナリ」を参照)が、アクセス・リクエストで送信されたユーザー資格証明とともにセッション開始リクエストでOESSOによってOAMに送信されます。
リクエストの受信後に、OESSOによって、SSLで保護されているOAM REST API (OESSO管理者によって事前に構成され、OESSOクライアント配布の一部として含まれている)に対するコールが実行されます。このAPIによって、OAM_ID CookieがOESSOに返されます。その後、OESSOによって、有効なOAM_ID Cookieがクライアント・ブラウザ(Internet ExplorerおよびFirefox)に伝播され、それによってOESSOリソースの保護が可能になり、OAM埋込み資格証明コレクタによって保護されるリソースでシングル・サインオン(SSO)が有効になります。(これには、分散型資格証明コレクタによって保護されるリソースは含まれません。)その後、OESSOによって、OAM埋込み資格証明コレクタが受入れ可能なOAM資格証明とともに、ペイロード内のクライアント・コンテキスト情報が提供されます。
ノート:
このペイロードは次のものによって保護されます。
16バイト・ランダムSaltの生成
その16バイト・ランダムSaltを使用したSHA-256ハッシュの生成
OESSOによって保護されるOAMパスワードを使用した要求の暗号化
アイデンティティ・コンテキストの属性を取得するようにOESSOを構成するには
モバイル・アプリケーションは、Mobile and Social SDKを使用して、Mobile and Socialサーバーによって提供されるサービスにアクセスし、使用します。モバイル・アプリケーションがiOSまたはAndroid APIを使用して認証を実行する場合、それによってアイデンティティ・コンテキスト属性が取得され、そのデータがMobile and Socialサーバーに公開され、そこでその属性がAccess Managerサーバーに公開されます。管理者は、Mobile and Socialサーバーを、すべての属性を取得するように構成することも、必要な属性のみを取得するように構成することもできます。
管理者は、Access Manager管理コンソールの「システム構成」タブの下にある「Mobile and Social」アコーディオンの「アプリケーション・プロファイル構成」ページで、アプリケーションによって送信されるアイデンティティ・コンテキスト属性を構成できます。
Mobile and Socialサーバーは、Mobile and Social SDKからそのサーバーにアプリケーション・プロファイルを求めるアクセスがあったときに、必要なアイデンティティ・コンテキスト属性をMobile and Social SDKに渡します。(アプリケーション・プロファイルには、収集するアイデンティティ・コンテキストと実行する認証のタイプに関する情報が含まれています。)SDKは、属性の収集がユーザーまたはプラットフォームによって許可されている場合はそれを実行し、それらを認証リクエストの一部としてMobile and Socialサーバーに公開します。
ノート:
一部のモバイル・プラットフォーム(たとえば、iOS)では、アプリケーションによる特定のデバイス属性(たとえば、UDIDまたはIMEIデバイス番号)の収集が禁止されています。また、そのユーザーは、アプリケーションがロケーションの更新を入手することを拒否できます。そのため、サーバーが属性を要求しても、SDKによってそれらがすべて収集できることは保証されません。
Mobile and Social SDKから収集した属性を、OAMサーバーで作成され維持されているユーザー・セッションに公開するようにMobile and Socialサーバーを構成する場合、管理者は、IDコンテキストを有効化するようにMobile and Socialサーバーを構成する必要があります(図55-4を参照)。
アイデンティティ・コンテキストの属性を取得するようにMobile and Socialを構成するには
MobileOAMAuthentication
の「サービス・プロバイダ」ページで、IDContextEnabled
属性を追加して、その値にtrue
を設定します。関連項目:
全構成の詳細は、「Mobile and Socialサービスの構成」を参照してください。
iOS SDKを使用したアプリケーションの開発方法の詳細は、『Oracle Fusion Middleware Oracle Access Management開発者ガイド』を参照してください。