1. WAMモジュール
iPLAss framework上で動作し、会員管理を行うモジュールです。会員管理機能として、認証機能、アカウント情報のセルフメンテナンス機能、コンテンツの閲覧権限チェック機能などを提供します。
1.1. 認証機能
コンシューマ向けサイトの会員認証を行います。 認証機能として、ID・パスワード認証、RememberMe機能、2段階認証、ソーシャルログインを提供します。
-
ID・パスワード認証
mtp.auth.Userエンティティとして管理するユーザー情報に対して、ID・パスワードで認証を行う機能を提供します。
認証済みのセッション情報をCookieに格納し、一度認証すれば、2回目以降はユーザーIDとパスワードを入力しなくても直接サイトコンテンツへアクセスできるようになります。 -
RememberMe機能
ログイン後、一定期間の間、認証情報の入力を省略するRemember Me機能を提供します。
詳細はRemember Meを参照してください。 -
2段階認証
メールやSMSによるワンタイムコードによる認証、2段階認証アプリ(Google Authenticator等)による認証、あらかじめ設定した質問に対する答えでの認証、 X509規格に基づいたクライアント証明書での認証機能を提供します。
詳細は2段階認証を参照してください。 -
パスキー認証
パスキー(指紋や顔認証などを利用してログインするFIDOアライアンスが規定する業界標準)で認証を行う機能を提供します。 -
ソーシャルログイン(ID連携)
ログインするアカウントとして、iPLAss上で管理するユーザーではなく、SNSアカウントを利用する事ができます。 連携先として以下のSNSサービスが利用できます。-
Facebook
管理コンソールに設定する事でFacebookユーザーでのログインが可能となります。
利用する場合はFacebookの設定が必要になります。 -
X(Twitter)
管理コンソールに設定する事でX(Twitter)ユーザーでのログインが可能となります。
利用する場合はX(Twitter)の設定が必要になります。 -
OpenID Connect準拠のサイト(Google、Yahoo!等)
管理コンソールに設定する事でGoogle、Yahoo!などOpenID Connect準拠のサイトのユーザーでのログインが可能となります。
利用する場合はGoogleまたはYahoo!もしくは汎用OpenID Providerの設定が必要になります。 -
SAML
管理コンソールに設定する事でSAML準拠のIdPのユーザーでのログインが可能となります。
利用する場合はSAMLの設定が必要になります。
-
1.2. セルフレジストレーション(およびアクティベーション)
新規ユーザー登録機能、およびメールアドレスのアクティベーション機能を提供します。ユーザー登録時のメールアドレスに対して、アクティベーションURLを通知します。アクティベーションURL押下時に起動画面にてパスワード設定後、ログイン可能となります。
PreferenceのsignUpを参照し、各項目を設定してください。
1.3. セルフメンテナンス
登録したユーザー情報をユーザー自らがメンテナンスする機能を提供します。また、メールアドレスを変更した場合、変更後のメールアドレスへアクティベーション用のURLを通知します。
Preferenceのsettingsを参照し、各項目を設定してください。
1.4. パスワードリカバリ
ユーザーがパスワードを忘れた際に、事前に設定されている秘密の質問へ回答することにより、ユーザーのメールアドレス宛にパスワードリセットURLを通知します。
Preferenceのrecoveryを参照し、各項目を設定してください。
1.5. 同意管理
利用規約やプライバシーポリシーなどの同意コンテンツに対するユーザーの同意を管理する機能を提供します。
-
同意コンテンツのバージョン管理
同意コンテンツはSIMPLE_TIMEBASEバージョン管理により管理されます。規約改訂時は新バージョンを登録するだけで自動的に現行版となり、過去バージョンも保持されるため監査が可能です。 -
ログイン時の同意チェック
認証済みユーザーのリクエストに対して未同意の必須書類が存在する場合、自動的に同意画面へリダイレクトします。全ての必須書類に同意するまでサービスの利用はできません。 -
サインアップ時の同意チェック
新規ユーザー登録画面に同意コンテンツが表示されます。必須書類に同意しないと登録が完了できません。 -
セルフメンテナンス画面での同意管理
セルフメンテナンス画面から、全同意コンテンツの同意状況を確認できます。任意書類に対してはオプトイン(同意付与)/オプトアウト(同意取消)が可能です。
Preferenceのconsentを参照し、各項目を設定してください。
同意管理機能では次のEntityを利用します。
同意コンテンツ(利用規約・プライバシーポリシー等)を管理するEntityです。
Entity定義名: wam.consent.ConsentContent バージョン管理: SIMPLE_TIMEBASE
同意コンテンツをメンテナンスするためには、GEM/MDCにてEntityViewの設定を行い、画面から操作可能な状態にします。 バージョン管理はSIMPLE_TIMEBASE方式を採用しており、有効期間(startDate/endDate)に基づいて、現在有効なバージョンが自動的に決定されます。 規約等の改訂時には、新しいバージョンをINSERTし、startDateを設定するだけで自動的に現行版として適用されます。 また、過去バージョンもEntityとして保持されるため、監査対応も可能です。 さらに、ワークフロー機能と組み合わせることで、承認済みのコンテンツのみを公開する運用とすることも可能です。
| プロパティ名 | 型 | 説明 |
|---|---|---|
name |
String |
同意コンテンツの識別名(例: |
contentType |
Select |
コンテンツの種別。以下のいずれかを指定します。 |
content |
String |
コンテンツ本文(HTML)。 |
externalContentUrl |
String |
外部コンテンツのURL。 |
contentFile |
Binary |
コンテンツファイル。 |
required |
Boolean |
この同意コンテンツへの同意がサービス利用に必須かを指定します。 |
showOnLogin |
Boolean |
ログイン時にこのコンテンツの同意確認を表示するかを指定します。 |
changeSummary |
String |
バージョンアップ時の変更内容の概要。再同意画面でユーザーに変更内容を提示する際に使用されます。 |
displayOrder |
Integer |
画面上の表示順序。値が小さいほど先に表示されます。未設定の場合は末尾に表示されます。 |
ユーザーの同意記録を管理するEntityです。
Entity定義名: wam.consent.UserConsent
| プロパティ名 | 型 | 説明 |
|---|---|---|
user |
Reference |
同意したユーザー( |
userOid |
String |
検索用のユーザーOID |
consentContent |
Reference |
同意対象のConsentContent(RECORD_BASE参照)。同意時点のバージョンが固定保持されます。 |
consented |
Boolean |
同意状態。 |
respondedDate |
Timestamp |
同意もしくは非同意の回答日時 |
-
同意チェック(ログイン後):
ConsentCheckInterceptorが認証済みユーザーのリクエストをインターセプトし、未同意の必須書類(またはshowOnLogin=trueの書類)が存在する場合、同意画面(wam/consent/view)へリダイレクトします。
セッション有効中は一度チェックが完了すると再チェックは行われません(次回ログイン時に再検知)。 -
サインアップ時:
新規ユーザー登録画面にrequired=trueまたはshowOnLogin=trueの同意コンテンツが表示されます。必須書類の全てに同意しないと登録は完了できません。 -
セルフメンテナンス画面:
アカウント設定画面の同意管理ページ(wam/settings/changeConsentView)から、全同意コンテンツの同意状況を確認できます。
任意書類(required=false)に対してはオプトイン(同意付与)/オプトアウト(同意取消)が可能です。必須書類のオプトアウトはできません。 -
バージョン更新時:
ConsentContentの新バージョンが有効になると、既存の同意記録のバージョンと現行バージョンが不一致となり、次回ログイン時に再同意が求められます。
changeSummaryに変更内容を記載することで、再同意画面でユーザーに変更点を提示できます。
1.6. WAMモジュールの設定
service-config
WAMモジュールを有効化するには、WamServiceが設定された wam-service-config.xml をincludeする必要があります。
設定方法については初期設定を参照してください。
Preference
WAMモジュールの設定にはPreference機能を利用します。
以下はデフォルトで提供しているWAMのPreferenceです。必要に応じて設定内容を変更してください。
WAM全般の設定です。
org.iplass.wam.api.WamPreference
| 項目 | 説明 | 初期値 |
|---|---|---|
wamUserIdentifierRole |
WAMユーザーを識別するためのロール |
WAM |
homeUrl |
認証後にリダイレクトされる画面のURL。 |
https://[your_apps_home_page_fqdn]/ |
customCssPath |
独自のCSSを組み込みたい場合に指定します。
パスの先頭に |
|
faviconPath |
faviconを設定したい場合に指定します。
パスの先頭に |
|
accountPolicy |
サインアップ設定の |
WAM |
webAuthnDefinitionName |
パスキーを利用する場合の設定であるWebAuthn定義名を指定します。
未指定の場合は定義名が |
|
signUp |
signUp参照 |
|
settings |
settings参照 |
|
verification |
||
recovery |
recovery参照 |
|
manageSite |
||
idProvider |
||
idProvider |
||
idProvider |
||
idProvider |
||
consent |
consent参照 |
サインアップ時の設定です。
| 項目 | 説明 | 初期値 |
|---|---|---|
accountIdProperty |
ユーザーIDを直接入力させず、それ以外の項目をユーザーIDとして利用する場合に指定します。 例えば、メールアドレス(mail)のようなユーザーに対して一意となる項目を指定します。 |
|
listener |
アクティベーション完了時に実行するリスナー。
|
|
initialGroup |
初期設定するグループのコード、複数指定可能。 |
WAM |
activatedGroup |
アクティベーション後に設定するグループのコード、複数指定可能。 |
|
initialAccountPolicy |
初期設定するアカウントポリシー(認証ポリシー) |
|
activatedAccountPolicy |
アクティベーション後に設定するアカウントポリシー(認証ポリシー) |
|
captcha |
|
|
signUpLayoutName |
登録時に利用する |
signUpLayout |
activateByOutOfBandVerification |
メール等を利用した本人確認を実施するかを指定します。 |
true |
authenticationPolicyWithoutTwoStepVerification |
2段階認証の有効化/無効化(2段階認証ポリシーの切り替え)で利用する認証ポリシー(2段階認証が設定されていない認証ポリシー) |
|
authenticationPolicyWithTwoStepVerification |
2段階認証の有効化/無効化(2段階認証ポリシーの切り替え)で利用する認証ポリシー(2段階認証が設定されている認証ポリシー) |
セルフメンテナンスで利用する設定です。
| 項目 | 説明 | 初期値 |
|---|---|---|
settingsLayoutName |
個人情報の編集時に利用する |
|
showAuthApplication |
セルフメンテナンス画面にアプリケーション情報を表示するかを指定します。 |
true |
showRememberMe |
セルフメンテナンス画面に自動ログイン情報を表示するかを指定します。 |
true |
メール、SMSなどのユーザーの本人確認(アクティベーション)に利用する項目に関する設定です。
| 項目 | 説明 | 初期値 |
|---|---|---|
type |
verification方式を一意に識別するための名称 |
|
propertyName |
検証に利用する |
|
verifier |
アクティベーション処理時に利用するOutOfBandVerifierのverifier名 |
|
validDurationMinute |
検証処理の有効期間(分) |
1440 |
maxFailureCount |
検証処理の最大失敗許容回数。-1を指定した場合はvalidDurationMinute間であれば何度でも失敗可能となります。 |
-1 |
パスワードリカバリに関する設定です。
| 項目 | 説明 | 初期値 |
|---|---|---|
propertyForSecretQuestion |
パスワードリカバリで使用する秘密の質問となるプロパティ名。 複数指定可能。 |
lastName |
propertyForSecretQuestion |
同上 |
firstName |
propertyForSecretQuestion |
同上 |
同意管理機能の設定です。
| 項目 | 説明 | 初期値 |
|---|---|---|
enabled |
同意管理機能の有効/無効を設定します。 |
false |
excludeActionPatterns |
同意チェックを除外するActionパターン(正規表現)を指定します。複数指定可能です。 |
|
cacheReloadIntervalSeconds |
ConsentContent Entityのキャッシュのリロード間隔(秒)を指定します。 |
0 |
管理対象サイトの設定です。サイト毎に設定します。
| 項目 | 説明 | 初期値 |
|---|---|---|
siteId |
管理対象サイトを識別するIDを設定します。 WAMプラグインモジュールに設定したものと同じ文字列を設定します。 |
local |
siteSecret |
管理対象サイトのシークレットキーを設定します。 WAMプラグインモジュールに設定したものと同じ文字列を設定します。 |
123 |
siteDomain |
管理対象サイトのドメイン名を設定します。 |
[homeUrlDomain] |
httpsOnly |
接続可能なプロトコルをhttpsのみに設定します。 |
false |
mappingActionPath |
管理対象サイトのコンテンツ閲覧権限チェックに利用されるiPLAssのAction権限設定で、Action名と管理対象サイトのコンテンツのURLパスをマッピングする際にAction名のprefixとして利用される文字列を設定します。 |
local |
userInfoSupplier |
|
|
publicUserProperty |
ユーザー情報取得WebApiで返却するユーザー情報に含まれる |
|
authCallbackUrl |
WAM機能の認証フローにおいて、ログイン完了後にiPLAssから管理対象サイトへリダイレクトする際に使用されるURLです。 当該URLは、サイトコンテンツのURLに該当しない任意のURLを設定してください。 形式は以下の通りです。 http[s]://<サイトのドメイン名>/<任意のパス> WAMプラグインモジュールにおける設定と異なり、URL全体(http[s]~)を記述する点に注意してください。 |
http://[homeUrlDomain]/wamauthcallback |
Facebookのアカウントで認証を行う際の設定です。
Facebook側にはリダイレクト先として以下の3つのURLを設定してください。
http(s)://[server]/[appContext]/[tenantName]/wam/auth/idpcb http(s)://[server]/[appContext]/[tenantName]/wam/signup/idpcb/[providerName] http(s)://[server]/[appContext]/[tenantName]/wam/settings/idpcb/[providerName]
org.iplass.wam.auth.idp.facebook.FacebookIdProvider
| 項目 | 説明 | 初期値 |
|---|---|---|
clientId |
アプリで発行されたApp ID |
yourClientId |
clientSecret |
アプリで発行されたApp Secret |
yourClientSecret |
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
- |
buttonLabel |
ログイン画面表示用のラベル |
<span> Facebook</span> |
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #3b5998 |
supportSelfRegistration |
ユーザー自らIdProviderとの紐づけ、解除を設定可能とするか否か |
true |
X(Twitter)のアカウントで認証を行う際の設定です。
X(Twitter)側にはCallback先として以下の3つのURLを設定してください。
http(s)://[server]/[appContext]/[tenantName]/wam/auth/idpcb http(s)://[server]/[appContext]/[tenantName]/wam/signup/idpcb/[providerName] http(s)://[server]/[appContext]/[tenantName]/wam/settings/idpcb/[providerName]
org.iplass.wam.auth.idp.twitter.TwitterIdProvider
| 項目 | 説明 | 初期値 |
|---|---|---|
consumerKey |
アプリで発行されたコンシューマキー |
yourConsumerKey |
consumerSecret |
アプリで発行されたコンシューマーシークレット |
yourConsumerSecret |
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
- |
buttonLabel |
ログイン画面表示用のラベル |
<span> Twitter</span> |
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #4099FF |
supportSelfRegistration |
ユーザー自らIdProviderとの紐づけ、解除を設定可能とするか否か |
true |
Googleのアカウントで認証を行う際の設定です。
| idProvider(Google)の替わりに、 idProvider(汎用OpenID Provider) を利用することを推奨します。認証連携におけるきめ細かな設定が可能です。 |
OpenID Provider側にはリダイレクト先として以下の3つのURLを設定してください。
http(s)://[server]/[appContext]/[tenantName]/wam/auth/idpcb http(s)://[server]/[appContext]/[tenantName]/wam/signup/idpcb/[providerName] http(s)://[server]/[appContext]/[tenantName]/wam/settings/idpcb/[providerName]
org.iplass.wam.auth.idp.openidconnect.OpenIdConnectIdProvider
| 項目 | 説明 | 初期値 | |
|---|---|---|---|
providerName |
プロバイダ名 |
||
authUri |
認証先のURL |
||
tokenUri |
トークンのURL |
||
userInfoUri |
ユーザー情報取得URL |
||
clientId |
アプリで発行されたクライアントID |
yourClientId |
|
clientSecret |
アプリで発行されたクライアントシークレット |
yourClientSecret |
|
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
- |
|
buttonLabel |
ログイン画面表示用のラベル |
<span> Google</span> |
|
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #dd4b39 |
|
supportSelfRegistration |
ユーザー自らIdProviderとの紐づけ、解除を設定可能とするか否か |
true |
|
subjectName |
ユーザーのフルネームの属性名 |
name |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
||
profileAttributeName |
プロバイダ側の属性値(メールアドレス) |
||
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
firstName |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの名) |
given_name |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
lastName |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの姓) |
family_name |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
language |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの優先ロケール) |
locale |
|
Yahoo!のアカウントで認証を行う際の設定です。
| idProvider(Yahoo)の替わりに、 idProvider(汎用OpenID Provider) を利用することを推奨します。認証連携におけるきめ細かな設定が可能です。 |
OpenID Provider側にはリダイレクト先として以下の3つのURLを設定してください。
http(s)://[server]/[appContext]/[tenantName]/wam/auth/idpcb http(s)://[server]/[appContext]/[tenantName]/wam/signup/idpcb/[providerName] http(s)://[server]/[appContext]/[tenantName]/wam/settings/idpcb/[providerName]
org.iplass.wam.auth.idp.openidconnect.OpenIdConnectIdProvider
| 項目 | 説明 | 初期値 | |
|---|---|---|---|
providerName |
プロバイダ名 |
Yahoo! |
|
authUri |
認証先のURL |
||
useNonce |
リプレイアタック対策有無を設定 |
true |
|
tokenUri |
トークンのURL |
||
tokenEndPointAuthType |
トークンエンドポイント認証タイプ固定文字列(初期値から変更不要) |
BASIC |
|
clientId |
アプリで発行されたクライアントID |
yourClientId |
|
clientSecret |
アプリで発行されたクライアントシークレット |
yourClientSecret |
|
userInfoUri |
ユーザー情報取得URL |
||
subjectName |
ユーザーのフルネームの属性名 |
name |
|
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
- |
|
buttonLabel |
ログイン画面表示用のラベル |
<span> Yahoo!</span> |
|
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #ff0033 |
|
supportSelfRegistration |
ユーザー自らIdProviderとの紐づけ、解除を設定可能とするか否か |
true |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
||
profileAttributeName |
プロバイダ側の属性値(メールアドレス) |
||
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
firstName |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの名) |
given_name |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
lastName |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの姓) |
family_name |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
- |
|
propertyName |
|
language |
|
profileAttributeName |
プロバイダ側の属性値(ユーザーの優先ロケール) |
locale |
|
OpenID Connect準拠のOpenID Providerのアカウントで認証を行う際の設定です。 認証連携における詳細の設定は OpenIDConnect定義 にて行います。
OpenID Provider側にはリダイレクト先として以下の3つのURLを設定してください。
http(s)://[server]/[appContext]/[tenantName]/wam/auth/idpcb http(s)://[server]/[appContext]/[tenantName]/wam/signup/idpcb/[providerName] http(s)://[server]/[appContext]/[tenantName]/wam/settings/idpcb/[providerName]
org.iplass.wam.auth.idp.oidc.OpenIdConnectIdProvider
| 項目 | 説明 | 設定例 | |
|---|---|---|---|
providerName |
プロバイダ名 |
okta |
|
definitionName |
OpenIDConnect定義の定義名 |
okta |
|
definitionNameResolver |
|
sample.CustomDefinitionNameResolver |
|
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
path/to/icon.png |
|
buttonLabel |
ログイン画面表示用のラベル |
<span>Okta</span> |
|
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #007dc1 |
|
supportSelfRegistration |
ユーザー自らIdProviderとの紐づけ、解除を設定可能とするか否か |
true |
|
attributeMapping |
プロバイダ側のプロフィールの属性値と iPLAss上の |
||
propertyName |
|
||
profileAttributeName |
プロバイダ側の属性名を指定 |
||
SAML準拠のID Providerのアカウントで認証を行う際の設定です。 認証連携における詳細の設定は SAML定義(ServiceProviderの設定) にて行います。
なお、SAMLIdProviderはユーザー自身によるアカウントの紐づけ、解除操作には対応しておりません。事前のプロビジョニング、もしくはAutoUserProvisioningHandlerの仕組みにてJITプロビジョニングする必要があります。
org.iplass.wam.auth.idp.saml.SamlIdProvider
| 項目 | 説明 | 設定例 | |
|---|---|---|---|
providerName |
プロバイダ名 |
okta |
|
definitionName |
SAML定義の定義名 |
okta |
|
definitionNameResolver |
|
sample.CustomDefinitionNameResolver |
|
iconUrl |
ログイン画面表示用ラベルにロゴ画像を表示する場合に設定します。設定する値は画像のURLです。 |
path/to/icon.png |
|
buttonLabel |
ログイン画面表示用のラベル |
<span>Okta</span> |
|
buttonStyle |
ログイン画面表示用ラベルのスタイル |
color: #007dc1 |
|
1.7. 初期設定
WAMモジュールを利用する際には以下の設定が必要となります。
WAMモジュールの追加
mtp-service-configに以下を追記し、WAMモジュールの設定ファイルを読み込めるようにします。 iplass-ee-skeletonを利用している場合は該当箇所のコメント化を解除します。
<inherits>/wam-service-config.xml</inherits>
build.gradleに以下を追記し、WAMモジュールを実行時の依存関係に追加します。 iplass-ee-skeletonを利用している場合は該当箇所のコメント化を解除します。
runtime group: 'org.iplass.ee', name: 'iplass-ee-wam', version: iPLAssVersion
追記後、プロジェクトのコンテキストメニューから Gradleプロジェクトのリフレッシュ を行ってください。
アカウントポリシーの追加
WAMを利用してユーザーアカウントを登録する際に適用するアカウントポリシー(認証ポリシー)を作成します。
アカウントポリシーの名前はPreferenceの initialAccountPolicy で指定した値(デフォルト値 : WAM)にします。
initialAccountPolicy として利用するアカウントポリシーでは、次の設定を有効化する必要があります。
Create Account with Specific Password
パスワードリカバリ機能を利用する場合、Preferenceの activatedAccountPolicy(未指定の場合は initialAccountPolicy)に設定されているアカウントポリシーでは、次の設定を有効化する必要があります。
Reset Password with Specific Password
権限設定
AdminConsoleのPermissionExplorer等を利用して、WAMを利用するユーザーのための権限設定を行います。
WAMユーザーが登録時に所属するグループを作成します。
グループのコードはPreferenceの signUp > initialGroup で指定した値(デフォルト値 : WAM)にします。
WAMユーザー用のロールを作成します。
ロールのコードはPreferenceの wamUserIdentifierRole で指定した値(デフォルト値 : WAM)にします。
ロール条件を追加し、前項で作成したグループに所属していることを条件にします。
user.memberOf("WAM")
WAMユーザーがWAMを利用する上で必要となる最低限のEntity権限を設定します。 ここで対象とするEntity以外の権限については、アプリケーションの要件にあわせて適宜設定してください。
| Entity | 参照権限 | 登録権限 | 更新権限 | 削除権限 |
|---|---|---|---|---|
mtp.auth.Group |
○ |
|||
mtp.auth.Rank |
○ |
|||
mtp.auth.User |
○ |
○ |
WAMユーザーが利用するWAMモジュールのActionに対して権限を設定します。
wam 配下の全てのActionに対して許可を設定するため、PermissionExplorerのActionPermissionにて、WAMユーザー用のロールの列と wam の階層フォルダが交差するセルをクリックし、Nameに適切な名前を設定してOKボタンを押してください。
画面定義
WAMユーザーが自身の情報を更新するための画面で利用するユーザー情報(mtp.auth.User)の詳細画面定義(DetailView)を作成してください。
View名はPreferenceの settings > settingsLayoutName で指定した値にします。
なお、この詳細画面定義(DetailView)ではユーザーに必要以上の項目を編集させないよう注意してください。 例えば、権限に絡む項目(グループ、ランク、アカウントポリシー等)を更新してしまった場合、それ以降WAMの画面が操作できなくなる可能性があります。
管理対象サイト用Action権限
WAM機能では、管理対象サイトのコンテンツ閲覧権限チェックをAction権限を用いて行います。
Action名と管理対象サイトのコンテンツのURLパスをマッピングする際、Preferenceの当該管理対象サイトの manageSite > mappingActionPath の値がAction名のprefixとして利用されます。
例)下記URLの管理対象サイトのコンテンツの閲覧制御する場合
当該管理対象サイトの manageSite > mappingActionPath の値が local だった場合には、以下のAction名としてAction権限がチェックされます。
local/demo/test
Action権限の許可条件の設定において、 parameter には管理対象サイトのコンテンツ閲覧時のURLのクエリパラメータがバインドされます。
def value = parameter.クエリパラメータのキー
def value = parameter.getValue("クエリパラメータのキー")
request.externalResourceParameter には org.iplass.wam.siteauth.URIExternalResourceParameter のインスタンスがバインドされます。
JSON形式の requestInfo をパラメータに含めてWAMの権限チェックWebApiを呼び出すことで、以下のような許可条件を設定することができます。
また、許可条件で request.externalResourceParameter.responseStatus に任意の戻り値を指定することで、条件に沿った戻り値が返却されます。
if(request.externalResourceParameter.requestInfo.get("clientIp").equals("xxx.xxx.xxx.xxx")){ request.externalResourceParameter.responseStatus = "IP_ALLOW"; true;}
ユースケースとして、 「特定のURLパス配下(denytest/*)のコンテンツを、特定のグループ(グループコード : wam_allow)に所属しているユーザーが閲覧可能にする」 といった制御を行う場合の設定方法を説明します。
-
グループ
グループ(グループコード : wam_allow)を作成します。
特定のURLパス配下(denytest/*)のコンテンツを参照可能としたいユーザー(サイト会員)を作成したグループに所属させます。
-
ロール
制御用ロール(ロールコード : wamrole)を作成します。
ロール条件を追加し、前項で作成したグループに所属していることを条件にします。
-
Action権限設定
最後に作成したロールに対するAction権限を設定します。
特定のロール(ロールコード : wamrole) を持つユーザーに対して、 denytest/* パスに対するアクセスを許可する設定をしています。
Action名のprefixには、実際のPreferenceの当該管理対象サイトの manageSite > mappingActionPath の値を設定してください。以下の例では、 local が設定されている前提です。
ユーザー情報取得WebApi
WAMモジュールでは、ユーザー情報(サイト会員)の取得が可能なWebApi(wam/auth/user)を標準で提供しています。
サイトID(パラメータ名 : siteid) 、サイトシークレット(パラメータ名 : sitesecret) をパラメータに含めてユーザー情報取得WebApiを呼び出すと、Preferenceの当該管理対象サイトの manageSite > publicUserProperty の設定に基づきユーザー情報を返却します。
ユーザー情報取得WebApiを利用するかつ、クロスオリジンでのWebApi呼び出しとなる場合には、
Admin ConsoleのWebApi画面で wam/auth/user を開き、 Access-Control-Allow-Credentials にチェックを入れて Access-Control-Allow-Origin にサイト側のオリジンを設定する必要があります。