プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

2.9 Oracle Access Managementログイン・オプションの構成

Oracle Access Managementによって、ユーザー・ログイン言語の選択、パスワードを忘れた場合のURLの構成、その他多くのユーザー・ログイン・オプションを構成できます。

次の各トピックでは、Oracle Access Managementユーザー・ログイン・オプションの構成方法について説明します。

2.9.1 「パスワードを忘れた場合」のURLの管理

ユーザーがOracle Access Managementログイン・ページで「パスワードを忘れた場合」リンクをクリックすると、Oracle Access Managementの「パスワードを忘れた場合」ページが表示され、パスワードを忘れた場合に新しいパスワードを設定できます。

次の各項では、「パスワードを忘れた場合」のURLを管理する手順について説明します。

2.9.1.1 「パスワードを忘れた場合」のURLの設定

新しい「パスワードを忘れた場合」のURLを設定できます。

次のコマンドを実行します。

curl  --user weblogic:password  
     -w  "%{http_code}"   
     -i  -H 
     "Content-Type:application/json"   
     -H "Accept: */*"   
     -X PUT   -d
       '{"forgotPasswordURL":"http://oam-host:7777/identity/faces/forgotpassword"}' 

http://host:7001/oam/admin/api/v1/configurationService/forgotPassword 

成功すると、「「パスワードを忘れた場合」のURLが正常に構成されました」というメッセージが出力に表示されます。「パスワードを忘れた場合」のURLがすでに設定されている場合、コマンドを実行すると、「パスワードを忘れた場合」の前のURLが上書きされます。

2.9.1.2 「パスワードを忘れた場合」のURLの取得

「パスワードを忘れた場合」のURLを取得できます。

次のコマンドを実行します。

curl --user weblogic:password
     -w “%{http_code}" \
     -i \

   http://host:7001/oam/admin/api/v1/configurationService/forgotPassword 

2.9.2 ユーザー・ログイン言語の選択

次の各トピックでは、OAMでのユーザー言語の選択について説明します。

2.9.2.1 ユーザー・ログインの言語コード

Oracle Access Managementでは、OAM_LANG_PREF言語設定Cookieが組み込まれたログイン・フォームの言語ドロップダウン・リストを介した言語選択をサポートしています。

表2-1は、サポートされる言語および適用される言語コードの一覧です。

「言語」列はログイン・ページでサポートされている言語を示し、「管理者」列はOracle Access Managementコンソールでサポートされている言語を示します。言語がログイン・ページでサポートされていれば、ブラウザの言語を変更するだけで、翻訳されたページがユーザーに表示されます。

表2-1 ログイン・ページの言語コード

言語コード 言語 管理者

ar

アラビア語

cs

チェコ語

da

デンマーク語

de

ドイツ語

ドイツ語

el

ギリシャ語

en

英語

英語

es

スペイン語

スペイン語

fi

フィンランド語

fr

フランス語

フランス語

fr-CA

フランス語(カナダ)

he

ヘブライ語

hr

クロアチア語

hu

ハンガリー語

it

イタリア語

イタリア語

ja

日本語

日本語

ko

韓国語

韓国語

nl

オランダ語

no

ノルウェー語

pl

ポーランド語

pt-BR

ポルトガル語(ブラジル)

ポルトガル語(ブラジル)

pt

ポルトガル語

ro

ルーマニア語

ru

ロシア語

sk

スロバキア語

sv

スウェーデン語

th

タイ語

tr

トルコ語

zh-CN

中国語(簡体字)

中国語(簡体字)

zh-TW

中国語(繁体字)

中国語(繁体字)

特殊なログインを実行する必要がある場合は、『Oracle Fusion Middleware Oracle Access Management開発者ガイド』で説明されているOracle Access Managementのカスタマイズ機能を使用して、カスタム・ログイン・ページを実装します。

ノート:

リリース11.1.2.1より前のOracle Access Managerでは、ログイン・ページのレンダリング時の言語を決定するのにブラウザの言語設定(Accept-Language HTTPヘッダー)に依存していました。言語を決定できない場合は、デフォルト値として英語(en-us)が使用されていました。この動作は、既存アプリケーションが11.1.2.1モデルに移行されるまでサポートされます。

2.9.2.2 Oracle Access Managementログイン時の言語の選択

Oracle Access Managementには、言語選択方法が用意されています。

表2-2内の項目の順序は、優先順位を表します。

WebLogic Scripting Tool (WLST)コマンドconfigOAMLoginPagePrefを使用して、ログイン・ページの言語設定を構成します。

このWLSTコマンドの詳細は、『WebLogic Server WLSTコマンド・リファレンス』を参照してください。

表2-2 Oracle Access Managementでの言語選択方法

方法 説明

サーバー・オーバーライド

OAMサーバーで言語を決定できるようにします。これは、ユーザー・エージェントが確実に言語設定を指定できない場合、または管理者が操作上の理由により他の選択方法をオーバーライドする必要がある場合に対応するためのものです。

設定Cookie

ユーザーの言語設定を含むドメインCookie (ORA_FUSION_PREFSに似ています)。これは、アプリケーションのパーソナライズ機能によりサポートされる言語設定を使用できるようにするものです。

ノート: 現在、設定Cookieでの複数DNSドメイン・サポートは制限されています。このソリューションには、OAM Front-Channelプロトコルとローカル・リソースCookieの拡張機能を組み合せて使用し、DNSドメイン間で設定Cookieのセマンティクスを管理するWebゲートが含められます。

関連項目: 「言語設定Cookie」

ブラウザ言語

ユーザー・エージェント(ブラウザ、RESTクライアント、HTTPクライアント)が、HTTP Accept-Languageヘッダー経由でユーザーの言語設定を指定するのを許可します。

デフォルト言語

Oracle Access Managementにおいて指定された選択方法でユーザーの言語設定を決定できない場合に使用されます。

言語設定は、明示的に有効されるまで無効です。デフォルトでは、アプリケーション・ロケールが指定されるまで、ログイン・フォームに言語値リストは含まれません。

ノート:

「言語の選択」はECCログイン・ページでのみ使用可能です。現在、DCCログイン・ページでは使用できません。

2.9.2.3 言語設定Cookie

言語設定CookieであるOAM_LANG_PREFは、ドメイン・スコープのCookieです(表2-3を参照してください)。

表2-3 OAM_LANG_PREF Cookie

パラメータ 説明

名前

OAM_LANG_PREF

ドメイン

ドメイン・スコープ指定のCookie

パス

/

[Cookieバージョン] [セパレータ] [UTF-8 BASE64(名前-値ペア)]

次に例を示します。

v1.0~kqhkiG9w0BAQQFADCB0TELM

ExpirationTime

永続 | セッション(デフォルト) – OAM構成で指定

セキュア・フラグ

はい

preferredLanguage

BCP47/RFC4647.具体的には、値スペースは、正式名として「言語優先度リスト」と呼ばれるリストに準拠している必要があります。

defaultLanguageMarker

true (Cookieよりアプリケーション管理設定を優先する) |false (Cookieから読み取る)

Cookieライフサイクル

Oracle Access Managementおよび他のアプリケーションが作成、読取り、更新および削除を行うことができます。

2.9.2.4 言語設定およびアプリケーション統合の伝播

Oracle Access Managementでは、ユーザーが選択した言語をアプリケーションに伝播します。

詳細は、表2-4を参照してください。

表2-4 言語設定のアプリケーション統合

方法 説明

HTTP Accept-Languageヘッダー

コードを変更することなく、アプリケーションの統合を可能とします。これは、他のオプションよりお薦めの方法です。この方法は、ブラウザのロケール設定に応答する大部分のアプリケーションに適しています。これは、Webアプリケーションのグローバル化において標準的な方法です。この方法は、すべてのADFベースの製品、およびブラウザ・ロケールに応答するすべてのアプリケーションに対する標準オプションになります。

ノート: OAMエージェントにより、Accept-Languageは選択された言語を反映します。また、サーブレット・フィルタを使用することもできます。

Access Managerポリシー・レスポンス

Access Managerは、セッション名前空間に属性langPrefの言語選択を格納します。例: $session.langPref

この属性は、HTTPヘッダーおよび/またはCookieを使用してダウンストリーム・アプリケーションにAccess Managerポリシー・レスポンス経由で渡されます。ヘッダーおよび/またはCookieの名前はデプロイメント時に割り当てられます。

設定Cookie

ログイン時に選択された言語が、設定Cookieに格納されている値と異なる場合、Oracle Access Managementは、preferredLanaguageパラメータを、新しく選択された言語で更新し、defaultLanguageMarkerパラメータをfalseに設定します。

IdentityContext

言語設定は、IdentityContextでカスタム要求として伝播できます。要求名として「oracle:idm:claims:session:attributes」を選択し、preferredLanguage=$session.langPrefの表記法を使用して、セッション属性を指定します。

要求は、「oracle:idm:claims:session:attributes:preferredLanguage」の名前で作成され、値は、セッションのlangPref属性と同じになります。

2.9.3 永続ログインの理解

Access Managerでは、アイドル・タイムアウト・パラメータで定義されたセッションが非アクティブな時間(デフォルトは15分)を経過した後、およびセッションの存続期間パラメータの値(デフォルトは8時間)によりセッションの有効期限が切れた場合、ユーザーは再認証が必要となります。永続ログイン機能を使用すると、管理者は、ユーザーがオプトインした場合にかなりの長い期間再認証をスキップできるオプションを選択でき、ユーザーには2週間や1か月といった期間が与えられるため、利便性が大幅に向上します。永続ログイン(ユーザー情報を保存、またはサインイン状態を保持とも呼ばれる)は、有効または無効にでき、期間を構成することも可能です。デフォルトでは無効です。

永続ログインは、oam-config.xmlグローバル構成ファイルで有効化されます。該当するアプリケーション・ドメインでも、明示的に永続ログインを許可することが必要です。グローバルに有効にすると、ユーザー・ログイン・ページには、「サインイン状態を保持」チェック・ボックスが表示され、これを選択すると、ユーザーはRMTokenを受け取ります。ユーザーのセッションの有効期限が切れた場合またはタイムアウトした場合、リソースが永続ログインを許可するアプリケーション・ドメイン内にあり、その認証レベルが適切であれば、RMTokenを持つユーザーはチャレンジされません。オプトインしていないアプリケーション・ドメインのリソースにアクセスを試みた場合は、認証レベルが適切であっても、ユーザーは資格証明を要求されます。(ログイン時にユーザーがオプトインしない場合、セッションの有効期限切れまたは非アクティブ・タイムアウトの後、再度認証を要求されます。)

ノート:

アプリケーション・ドメインのセッション・アイドル・タイムアウトが指定されている場合、永続ログインを有効にすることはできません。

永続ログイン機能では、次のように動作します。

  • デバイス・ブラウザからAccess Managerにログインしたユーザーに対して有効にされている場合、ブラウザを閉じ、再度開いたときに、定義された永続ログインの時間内であれば再認証は必要ありません。

  • セッション・アクティビティは監査データに反映されます。

  • 期限切れになると、エンド・ユーザーは再度認証を求められます。

  • 別のデバイスから(同じデバイス内の別のプロセス/ブラウザでも)アプリケーションにアクセスを試みると、エンド・ユーザーは再度認証を求められます。

  • ユーザーがログアウトをクリックすると、OAM_RMトークンは削除され、そのユーザーは再度ログインする必要があります。管理者によるセッションの終了でも同様になります。

  • OAM_RMトークンはトークンの作成時に入力した資格証明に基づいているため、パスワード・ステータスを変更するイベントが発生すると、そのトークンは無効になり、ユーザーは再度認証する必要があります。これには、次のものが含まれます。

    • パスワードの失効

    • 管理者によるパスワードのリセット

    • 別のデバイスでのユーザーによるパスワード変更

    • 管理者によるユーザーの削除またはロック

  • デバイスの盗難に対処するため、管理者は、ユーザーのすべてのデバイス/ブラウザのすべてのセッションを終了できます。ユーザーは再認証が必要ですが、ログイン・ページには永続ログインを有効にするオプションがあります。

  • 機密性の高い操作の前にアプリケーションが意図的にユーザーに認証を要求するように、再認証をトリガーされたアプリケーションは、永続ログインが有効であっても、ユーザーに再認証を強制します。

  • 永続ログインを許可しているアプリケーションから許可していないアプリケーションに移動すると、ユーザーは自動的にログインされるにもかかわらず、永続ログインを許可していないアプリケーションは、そのユーザーに資格証明を入力するように要求します。

  • 永続ログインは、アプリケーションがトリガーしたログイン・ページでは使用できません。

次の各トピックでは、その他の詳細について説明します。

2.9.3.1 永続ログインの有効化

この機能はデフォルトでは無効です。

永続ログインをグローバルに有効にするには、次のようにします。

  1. connect()を使用してWebLogic Serverに接続します。

    プロンプトが表示されたら、ユーザー名とパスワードを入力します。

  2. 次のコマンドを実行します。

    configurePersistentLogin(enable="true", validityInDays="30", maxAuthnLevel="2", userAttribute="obPSFTID")

  3. 次の表の値を使用して、新しい永続ログインの認証スキームを作成します。

    「認証スキームの管理」を参照してください。

    「サインイン状態を保持」チェック・ボックスは、このスキームによって保護されるリソースにアクセスする場合にのみ表示されます。

    属性

    名前

    PersistentLoginScheme (または任意の名前)

    説明

    任意の説明

    認証レベル

    2

    チャレンジ・メソッド

    FORM

    チャレンジ・リダイレクトURL

    /oam/server/

    認証モジュール

    LDAPPlugin

    チャレンジURL

    /pages/login.jsp

    コンテキスト・タイプ

    default

    コンテキスト値

    /oam

    チャレンジ・パラメータ

    enablePersistentLogin=true

  4. 「起動パッド」で、「アプリケーション・ドメイン」リンクをクリックします。

  5. このPersistentLoginSchemeを使用するアプリケーション・ドメインをクリックし、次の手順に従って認証スキームを変更します。

    「特定のリソースに対する認証ポリシーの定義」を参照してください。

    1. 該当するアプリケーション・ドメインの「認証ポリシー」タブをクリックします。

    2. 保護されているリソース・ポリシーの認証スキームをPersistentLoginSchemeに変更します。これによって、このポリシーへの永続ログインが可能になります。

      ノート:

      パブリック・リソース・ポリシーは、変更しないでください。

  6. 次の手順に示すとおり、構成済のすべての認可ポリシーに対してレスポンスを作成するアプリケーション・ドメインをクリックします。

    複数の認可ポリシーがある場合は、すべてに対してこれを行う必要があります。

    「SSOのポリシー・レスポンスの構築について」を参照してください。

    1. 該当するアプリケーション・ドメインの「認可ポリシー」タブをクリックします。

    2. このアプリケーション・ドメイン内の認可ポリシーを1つずつクリックして、その構成タブを開きます。

    3. 「レスポンス」をクリックします。

    4. 「追加」をクリックし、アプリケーション・ドメインに認可レスポンスを作成します。

    5. 表示される「レスポンスの追加」ポップアップに次の値を入力し、「追加」をクリックします。

      属性

      タイプ

      セッション

      名前

      allowPersistentLogin

      true

      ノート: アプリケーション・ドメインの永続ログインを無効にするには、「レスポンスの追加」ポップアップの「値」属性の値を「false」に変更して認可レスポンスを無効にする必要があります。

      1. 「条件」タブに移動します。

      2. 「追加」をクリックします。「名前」を「TRUE」、「タイプ」を「TRUE」に指定します。

      3. 「選択済の追加」をクリックします。

      4. 「ルール」タブに移動します。

      5. 「ルールの許可」セクションで、条件TRUE (true)を「使用可能な条件」から「選択した条件」セクションに移動します。

      6. 「適用」をクリックします。

      すべての認可ポリシーに対してこの手順を実行したら、次のステップに進みます。

  7. このスキームにより保護されるリソースにアクセスします。

    このログイン・ページに「サインイン状態を保持」チェック・ボックスが表示されます。

  8. 有効な資格証明を指定し、「サインイン状態を保持」を選択します。

  9. ブラウザを閉じ、再度開きます。

  10. 同じリソースにアクセスします。

    資格証明を要求されることなく、自動的にログインされます。

ノート:

永続ログインは、WLSTを使用しても有効および無効にできます。configurePersistentLoginコマンドの詳細は、『WebLogic Server WLSTコマンド・リファレンス』を参照してください。

2.9.3.2 永続ログインのトラブルシューティング

WLSTを使用して永続ログインを有効にすると、永続ログイン・プロパティを格納するようにobpsftidというLDAP属性が定義されます。ユーザーがロックされると、obpsftid属性を更新する必要がありますが、oamSoftwareUserにはこれに対する十分なLDAP権限がありません。

oamSoftwareUser権限を付与するには、次のようにします。

  1. 次に示すLDIFデータをコピーしてファイルに貼り付け、oam_user_write_acl_users_obpsftid_template.ldifという名前で保存します。
    ##############################################################################
    # Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. 
    #
    # NAME: idm_idstore_groups_acl_template.ldif
    #
    #
    # DESCRIPTION:
    #
    # This file provides appropriate ACLs to user and group containers.
    #
    #
    # SUBSTITUTION VARIABLES:
    #
    # %s_UsersContainerDN%  : The container in which users reside  
    # %s_GroupsContainerDN% : The container in which groups reside
    #
    ##############################################################################
    dn: %s_UsersContainerDN%
    changetype: modify
    delete: orclaci
    orclaci: access to attr=(obUserAccountControl, obLoginTryCount, obLockoutTime, oblastsuccessfullogin, oblastfailedlogin, obpasswordexpirydate, obver, obLastLoginAttemptDate, oblockedon) by group="cn=orclFAOAMUserWritePrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare,write) by group="cn=orclFAUserReadPrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare) by group="cn=orclFAUserWritePrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare,write)
    -
    add: orclaci
    orclaci: access to attr=(obUserAccountControl, obLoginTryCount, obLockoutTime, oblastsuccessfullogin, oblastfailedlogin, obpasswordexpirydate, obver, obLastLoginAttemptDate, oblockedon, obpsftid) by group="cn=orclFAOAMUserWritePrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare,write) by group="cn=orclFAUserReadPrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare) by group="cn=orclFAUserWritePrivilegeGroup,%s_GroupsContainerDN%" (search,read,compare,write)
    
  2. 作成したoam_user_write_acl_users_obpsftid_template.ldifで次の操作を行います。
    • %s_UsersContainerDN%をユーザー検索ベースで置換します。

    • %s_GroupsContainerDN%をグループ検索ベースで置換します。

  3. OIDディレクトリに移動し、ldapmodifyを実行します。
    $ setenv ORACLE_HOME <OID_INSTALL_LOCATION>
    $ cd $ORACLE_HOME/bin
    $ ./ldapmodify -h <LDAP server> -p <LDAP port> -D <bind DN> -w <bindpassword> 
     -v -f oam_user_write_acl_users_obpsftid_template.ldif