1. SAML
iPLAssはSAML2.0のWeb Browser SSO Profileをサポートします。 SAMLとは異なるドメイン間でのユーザー認証を行うための、XMLベースの標準規格です。 認証情報を利用するService Provider(SP)は認証情報を提供するIdentify Provider(IdP)を利用することで、シングルサインオンを実現できます。 iPLAssでは設定によりアプリケーションをSPまたはIdPとして動作させることが可能です。
SAMLを有効化するためには、SamlServiceでSAMLサービス全体に対する設定を行ったうえで、AdminConsole等にてテナント単位のSAMLメタデータ定義を行います。テナント単位にIdp、SPを設定可能です。
2. SamlServiceの設定
SAML認証に関する共通の設定をSamlServiceに設定します。 SAMLメッセージに署名するための秘密鍵及び証明書ストアに関する設定などを行います。 詳細は SamlService を参照してください。
3. SAML定義の設定
SAMLのメタデータ定義にて次の項目を設定します。
設定項目 | 必須 | 設定値 |
---|---|---|
Enable Single Logout |
シングルログアウトを有効にする場合チェック |
|
Enable Unsolicited Response |
非要求応答(他サービス契機のシングルログアウトによるログアウト要求)を有効にする場合チェック |
|
My SAML Entity id |
自身を表す固有の識別子。未指定の場合は、SAMLメタデータURLをEntity idとして設定 |
|
Base URL |
テナントコンテキストまでのURL。未指定の場合は自動解決。Apache等にてサーバ名、パスの変換を行っている場合に指定 |
|
Signature Algorithm |
署名アルゴリズム、未指定の場合のデフォルトは「SHA256withRSA」 |
3.1. ServiceProviderの設定
iPLAssをServiceProviderとして動作させる際には次の項目を設定します。
設定項目 | 必須 | 設定値 | ||
---|---|---|---|---|
Act as ServiceProvider |
ServiceProviderとして動作させる場合チェック |
|||
NameID Format |
NameID Formatの設定 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress urn:oasis:names:tc:SAML:2.0:nameid-format:persistent などSAML仕様で定義されるNameID Format。 未指定の場合のデフォルト値は urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
|||
NameID mapping User proprety |
○ |
NameIDに対応するUserエンティティのプロパティ名を指定
|
||
User mapping by attribute |
NameIdではなく、属性値を用いてUserエンティティのマッピングする場合チェック |
|||
User mapping attributeName |
(User mapping by attributeがtrueの場合)SAMLメッセージ上でのAttributeのNameを指定 |
|||
User mapping propertyName |
(User mapping by attributeがtrueの場合)Userエンティティのプロパティ名を指定
|
|||
Share mapped user property with multiple IdProvider |
IdProviderから連携されるユーザー識別子(nameIdもしくはユーザー属性)をマッチングするUserエンティティのプロパティを複数のSAML定義のRemoteIdProviderで共有して利用する場合、かつそのユーザー識別子がIdPovider間で重複する可能性がある場合にtrueを設定。
但し、SAML定義名がDEFAULTの場合は、@[SAML定義名]は付与されません 例
ユーザー識別子が |
|||
AutoUserProvisioningHandler |
org.iplass.mtp.auth.saml.AutoUserProvisioningHandlerを実装したクラスを設定。 IdPからフェデレーションされた認証情報に基づき、自動プロビジョニング(新規ユーザーの登録、ユーザー属性の更新)を行う場合に指定 |
|||
RemoteIdProvider Setting |
IdProviderとして利用する外部サービスの設定
設定項目 | 必須 | 設定値 |
---|---|---|
SAML EntityId |
○ |
IdProvider固有の識別子 |
SSO Setting |
||
SLO Setting |
||
RedirectUrl(after logout) |
ログアウト後にリダイレクトするURL |
|
Certificate Setting |
○ |
IdPの証明書 |
シングルサインオン設定
設定項目 | 必須 | 設定値 |
---|---|---|
Endpoint URL |
○ |
AssertionConsumerServiceのエンドポイントURL(Location) |
Request Binding |
○ |
リクエストの送信方式(Binding)
|
Request With Sign |
署名付のSSOリクエストを送信する場合チェック。 自身の証明書の登録が必要。 SamlService の設定を参照。 |
シングルログアウト設定
設定項目 | 必須 | 設定値 |
---|---|---|
Endpoint URL |
SingleLogoutServiceのエンドポイントURL(Location) |
|
Request Binding |
SSO SettingのRequest Binding参照 |
|
Response Endpoint URL |
ResponseLocationログアウトのレスポンスエンドポイントURL(ResponseLocation) |
|
Response Binding |
SSO SettingのRequest Binding参照 |
3.2. IdProviderの設定
iPLAssをIdProviderとして動作させる際には次の項目を設定します。
設定項目 | 必須 | 設定値 |
---|---|---|
Act as IdProvider |
IdProviderとして動作させる場合チェック |
|
NameID Format Setting |
サポートするNameIDのFormatを指定。複数可。 |
|
RemoteServiceProvider Setting |
ServiceProviderとしてiPLAssを利用する外部サービスの設定
設定項目 | 必須 | 設定値 |
---|---|---|
SAML Entity Id |
○ |
ServiceProvider固有の識別子 |
ACS Endpoint Url |
○ |
ACS(アサーション コンシューマ サービス)のログインURL |
ACS Response Binding |
○ |
SSO SettingのRequest Binding参照 |
Validate SSO Request with sign |
シングルサインオンリクエスト時に署名検証を行う場合チェック |
|
NameID Format |
ServiceProvider SettingのNameID Format参照 |
|
NameID mapped User property |
○ |
NameIDに対応するUserエンティティのプロパティ名を指定 |
SLO Setting |
||
Enable Impersonation |
代理ログイン状態でシングルサインオンを許可するか否か |
|
SAML attribute mapping setting |
||
Certificate Setting |
SPの証明書 |
シングルログアウト設定
設定項目 | 必須 | 設定値 |
---|---|---|
Endpoint URL |
SPのSingleLogoutServiceのエンドポイントURL(Location) |
|
Request Binding |
SSO SettingのRequest Binding参照 |
|
Response Endpoint URL |
SPのResponseLocationログアウトのレスポンスエンドポイントURL(ResponseLocation) |
|
Response Binding |
SSO SettingのRequest Binding参照 |
|
Validate SLO Request with sign |
シングルログアウトリクエスト時に署名検証を行う場合チェック |
SAML経由で連携する属性値のマッピング定義
設定項目 | 必須 | 設定値 |
---|---|---|
AttributeName |
SAMLメッセージ上でのAttributeのName |
|
User propertyName |
Userのプロパティ名、CustomValue Scriptとどちらかを指定する |
|
CustomValue Script |
マッピング対象の項目をGroovyScriptで指定、"user"変数にUserエンティティがバインドされている |
3.3. 認証ポリシーによるSAML認証の有効化
認証ポリシー単位にSAMLベースの認証を有効化することが可能です。
AdminConsoleの認証ポリシー設定画面にて利用するSAML定義を指定します。
認証ポリシーの設定では複数のSAML定義を指定することが可能です。
また、次の書式で定義することにより、複数定義を一括して指定することも可能です。
[SAML定義のプレフィックスパス]/*
DEFAULT
: SAML定義名が"DEFAULT"の定義を有効化します。
sample/*
: sample階層配下のすべてのSAML定義を有効化します。
*
: すべてのSAML定義を有効化します。
3.4. SAMLサービスの各エンドポイント利用方法
SAMLメタデータの取得
外部のIdPまたSPにiPLAssを登録するためのSAMLメタデータは、以下のURLを表示することにより取得可能です。
http(s)://[server]/[appContext]/[tenantName]/saml/md/[SAML definitionName]
定義名を"DEFAULT"として定義したSAML定義の場合、SAML definitionNameは未指定で取得できます。
ファイルとしてダウンロードし、IdPに手動で登録するか、もしくは上記URLをメタデータURLとして登録してください。 なお、メタデータURLを登録する場合は外部のIdP、SPのサイトからiPLAssが稼働するサーバへURLにて参照可能である必要があります。
iPLAssをSPとして動作させる
SAML2.0のSP Initiated SSOを起動するURLは以下です。
http(s)://[server]/[appContext]/[tenantName]/saml/ssoar/[SAML definitionName]
定義名を"DEFAULT"として定義したSAML定義の場合、SAML definitionNameは未指定で取得できます。
当該URLを呼び出すことにより、SSO処理が開始されます。
iPLAssをIdPとして動作させる
SAML2.0のIdP Initiated SSOを起動するURLは以下です。
http(s)://[server]/[appContext]/[tenantName]/saml/sso/idpi/[SAML definitionName]?entityId=[外部SPのEntityID]
定義名を"DEFAULT"として定義したSAML定義の場合、SAML definitionNameは未指定で取得できます。
当該URLを呼び出すことにより、SSO処理が開始されます。