intra-mart Accel Platform 認証仕様書 第7版 2023-04-01

4.8. 一般ユーザの強制ログイン

一般ユーザの強制ログイン処理について説明します。

4.8.1. 一般ユーザの強制ログインの概要

強制ログインは、パスワードによる検証を省略して intra-mart Accel Platform にログインする機能です。
「統合Windows認証モジュール」や「IM-SecureSignOn for Accel Platform」などの機能で利用しています。
一般ユーザのログイン処理 と同様に認証APIを呼び出すことで実行されます。
上記のログイン処理とは、呼び出す認証プロバイダ・プラグインが異なります。
強制ログイン時のフローは、強制ログインを実装している機能に準じます。

4.8.2. 認証API

一般ユーザの強制ログインの実行には、以下のAPIを利用します。
jp.co.intra_mart.foundation.security.certification.UserCertificationManager#forceLogin()
API の詳細については、「 UserCertificationManager クラスの APIドキュメント 」を参照してください。

4.8.2.1. 一般ユーザの強制ログインAPIの動作

以下の処理を順に実行します。
  1. アカウントコンテキストを切り替えてログイン状態にします。

  2. 必要に応じて「 強制ログイン用認証リスナ 」を呼び出します。

    詳細は後述します。

4.8.3. 強制ログイン用認証リスナ

強制ログイン成功時の後処理を実行します。
強制ログイン用認証リスナは、APIから呼び出す際に認証リスナを動作させる指定を行った場合のみ、実行されます。
強制ログインの利用用途により、認証リスナの実行有無が決定します。
以下のような用途で強制ログインを実行する場合は、認証リスナが動作します。
  • 強制ログイン実施後に、ユーザがブラウザ操作が行う場合

    例:シングルサインオン、ログイン認証が必要なショートカットURLによるアクセス、など

以下のような用途で強制ログインを実行する場合は、認証リスナは動作しません。
  • 特定の処理を動かすために、一時的にユーザを切り替える場合

    例:Webサービス、外部ソフトウェア連携、など

コラム

一般ユーザのログイン処理用のプロバイダである「認証リスナ」は動作しません。
強制ログイン時は、以下の設定を行ったリスナのみ動作します。

注意

強制ログイン用認証リスナは、2015 Winter(Lydia) より利用可能です。
2015 Summer(Karen) 以前のバージョンでは、強制ログイン時に認証リスナは実行されません。

注意

認証APIは、1つのトランザクションで処理されます。
そのため、認証リスナでデータベースなどのトランザクション管理されている情報を更新しても、その後の処理によっては、ロールバックされる可能性があります。
別トランザクションとする場合は、独自にトランザクションを開始するようにしてください。

4.8.3.1. 強制ログイン用リスナ設定

拡張ポイント jp.co.intra_mart.security.user.force_login を指定します。
リスナクラスの指定方法については、以下の設定例の通りです。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="jp.co.intra_mart.security.user.force_login">
    <certification
      name="Sample"
      id="sample.certification"
      version="8.0"
      rank="100">
      <certification-listener>
        <listener-class>sample.certification.SampleCertificationListener</listener-class>
      </certification-listener>
    </certification>
  </extension>
</plugin>

4.8.3.2. 強制ログイン用認証リスナインタフェース

リスナクラスのインタフェースは、一般ユーザのログイン処理に動作する認証リスナと同様です。
認証リスナ 」 - 「 インタフェース定義 」を参照してください。