Package org.iplass.mtp.auth.oidc
Interface AutoUserProvisioningHandler
public interface AutoUserProvisioningHandler
OpenID Provider(OpenID Connect)を利用したログイン処理の際、
iPLAss内に存在しないユーザーを自動的に作成する場合に実装するインタフェース。
-
Method Summary
Modifier and TypeMethodDescriptiondefault 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定義名の階層区切りは"."で表現されます認証されたユーザーが存在しない場合に呼び出されるので、 Userエンティティを生成する処理を記述する。default void
init
(OpenIdConnectDefinition definition) AutoUserProvisioningHandlerの処理化処理を記述可能。default User
Userエンティティを作成、永続化せずに一時的なログインを許可する場合(OpenIdConnectDefinitionのenableTransientUserがtrue)の 一時的なUserエンティティのインスタンスを作成して返却するよう実装します。 デフォルトの実装では、 attributeMappingToUserInstance()メソッドを呼び出し、 oidには、accountIdと同様の値([subjectId]@[OpenIdConnect定義名])を設定したインスタンスを返却します。void
認証されたユーザーの再ログインのタイミングで、呼び出される。 ユーザー属性を更新する必要がある場合は、更新処理を記述する。
-
Method Details
-
init
AutoUserProvisioningHandlerの処理化処理を記述可能。- Parameters:
definition
-
-
createUser
認証されたユーザーが存在しない場合に呼び出されるので、 Userエンティティを生成する処理を記述する。- Parameters:
subjectId
- OpenID Provider内で一意となるユーザー識別子subjectName
- OpenId Connect定義で指定されるsubjectNameClaimの値attributes
- その他IdToken、UserInfo Endpointから取得したClaim情報- Returns:
- 生成したUserエンティティのoid
-
updateUser
認証されたユーザーの再ログインのタイミングで、呼び出される。 ユーザー属性を更新する必要がある場合は、更新処理を記述する。- Parameters:
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形式で値を設定 name subjectNameの値。subjectNameの値がnullの場合は、accountIdと同じ値を設定 mail email。ただしemail_verifiedがtrueの場合 firstName given_name lastName family_name - Parameters:
subjectId
- OpenID Provider内で一意となるユーザー識別子subjectName
- OpenIdConnect定義で指定されるsubjectNameClaimの値attributes
- その他IdToken、UserInfo Endpointから取得したClaim情報
-
transientUser
Userエンティティを作成、永続化せずに一時的なログインを許可する場合(OpenIdConnectDefinitionのenableTransientUserがtrue)の 一時的なUserエンティティのインスタンスを作成して返却するよう実装します。 デフォルトの実装では、 attributeMappingToUserInstance()メソッドを呼び出し、 oidには、accountIdと同様の値([subjectId]@[OpenIdConnect定義名])を設定したインスタンスを返却します。- Parameters:
subjectId
- OpenID Provider内で一意となるユーザー識別子subjectName
- OpenIdConnect定義で指定されるsubjectNameClaimの値attributes
- その他IdToken、UserInfo Endpointから取得したClaim情報- Returns:
-