パッケージ org.iplass.mtp.auth.oidc

インタフェース AutoUserProvisioningHandler


public interface AutoUserProvisioningHandler
OpenID Provider(OpenID Connect)を利用したログイン処理の際、 iPLAss内に存在しないユーザーを自動的に作成する場合に実装するインタフェース。
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    default void
    attributeMappingToUserInstance(User user, String subjectId, String subjectName, Map<String,Object> attributes)
    attributesの値をUserエンティティにマッピングします。
    createUser(String subjectId, String subjectName, Map<String,Object> attributes)
    認証されたユーザーが存在しない場合に呼び出されるので、 Userエンティティを生成する処理を記述する。
    default void
    AutoUserProvisioningHandlerの処理化処理を記述可能。
    default User
    transientUser(String subjectId, String subjectName, Map<String,Object> attributes)
    Userエンティティを作成、永続化せずに一時的なログインを許可する場合(OpenIdConnectDefinitionのenableTransientUserがtrue)の 一時的なUserエンティティのインスタンスを作成して返却するよう実装します。
    void
    updateUser(User user, String subjectId, String subjectName, Map<String,Object> attributes)
    認証されたユーザーの再ログインのタイミングで、呼び出される。
  • メソッドの詳細

    • init

      default void init(OpenIdConnectDefinition definition)
      AutoUserProvisioningHandlerの処理化処理を記述可能。
      パラメータ:
      definition -
    • createUser

      String createUser(String subjectId, String subjectName, Map<String,Object> attributes)
      認証されたユーザーが存在しない場合に呼び出されるので、 Userエンティティを生成する処理を記述する。
      パラメータ:
      subjectId - OpenID Provider内で一意となるユーザー識別子
      subjectName - OpenId Connect定義で指定されるsubjectNameClaimの値
      attributes - その他IdToken、UserInfo Endpointから取得したClaim情報
      戻り値:
      生成したUserエンティティのoid
    • updateUser

      void updateUser(User user, String subjectId, String subjectName, Map<String,Object> attributes)
      認証されたユーザーの再ログインのタイミングで、呼び出される。 ユーザー属性を更新する必要がある場合は、更新処理を記述する。
      パラメータ:
      user -
      subjectId - OpenID Provider内で一意となるユーザー識別子
      subjectName - OpenId Connect定義で指定されるsubjectNameClaimの値
      attributes - その他IdToken、UserInfo Endpointから取得したClaim情報
    • attributeMappingToUserInstance

      default void attributeMappingToUserInstance(User user, String subjectId, String subjectName, Map<String,Object> attributes)
      attributesの値をUserエンティティにマッピングします。 デフォルトの実装では、次の値を設定します。
      UserエンティティのプロパティOIDCで連携されたユーザー属性
      accountId[subjectId]@[OpenIdConnect定義名]※1形式で値を設定
      namesubjectNameの値。subjectNameの値がnullの場合は、accountIdと同じ値を設定
      mailemail。ただしemail_verifiedがtrueの場合
      firstNamegiven_name
      lastNamefamily_name
      ※1:OpenIdConnect定義名がDEFAULTの場合は、[subjectId]のみが設定されます。また、OpenIdConnect定義名の階層区切りは"."で表現されます
      パラメータ:
      subjectId - OpenID Provider内で一意となるユーザー識別子
      subjectName - OpenIdConnect定義で指定されるsubjectNameClaimの値
      attributes - その他IdToken、UserInfo Endpointから取得したClaim情報
    • transientUser

      default User transientUser(String subjectId, String subjectName, Map<String,Object> attributes)
      Userエンティティを作成、永続化せずに一時的なログインを許可する場合(OpenIdConnectDefinitionのenableTransientUserがtrue)の 一時的なUserエンティティのインスタンスを作成して返却するよう実装します。 デフォルトの実装では、 attributeMappingToUserInstance()メソッドを呼び出し、 oidには、accountIdと同様の値([subjectId]@[OpenIdConnect定義名])を設定したインスタンスを返却します。
      パラメータ:
      subjectId - OpenID Provider内で一意となるユーザー識別子
      subjectName - OpenIdConnect定義で指定されるsubjectNameClaimの値
      attributes - その他IdToken、UserInfo Endpointから取得したClaim情報
      戻り値: