楽々ワークフローII
【参考】
2018年08月22日時点での情報で掲載しています。
「楽々ワークフローII」との認証連携を設定します。
【注意】
- 楽々ワークフローIIがSAMLで認証するキーを「メールアドレス」です。
- IIJ IDサービス内の各ユーザ共通のユーザ属性に楽々ワークフローIIの「メールアドレス」と同一の値を保持しておく必要があります。
- 楽々ワークフローIIとのSAML設定にあたり、楽々ワークフローII内の「会社識別子」の値が必要になります。
「会社識別子」は、楽々ワークフローIIに管理者でログインし、「システム管理」の「契約内容確認」で確認できます。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。
3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。
4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アプリケーション名 | 例)楽々ワークフローII | 必須 |
アプリケーションの説明 | 例)電子決裁システム 楽々ワークフロー | 任意 |
アプリケーションロゴ | (ファイルアップロード) | 任意 |
IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのIDプロバイダ情報を確認する
1. 作成されたアプリケーションの「編集する」をクリックします。
2. 「IDプロバイダ情報」をクリックします。
3. 表示された「SSOエンドポイントURL (Redirectバインディング)」、及び「PEM」の値を控えます。
【参考】
- 「PEM」は、必ず「-----BEGIN CERTIFICATE-----」からはじまり、「-----END CERTIFICATE-----」で終わる形式です。
- 「PEM」に書かれている値を改行などせずにそのままテキストファイルに張り付けてください。
- 「PEM」情報をファイルでアップロードする必要があります。
3. 楽々ワークフローIIのサポートサイトにてSAML設定サンプルを取得する
1. 楽々ワークフローIIのサポートサイトにログインします。
2. 左ペインのメニューから「ダウンロード」の「各種モジュール」をクリックします。
3. 「SAML設定サンプル(zipファイル)」 をクリックし、SAML設定サンプルをダウンロードします。
4. SAML設定サンプルを編集する
【参考】
楽々ワークフローIIのマニュアルで各ファイルの編集内容についての説明があります。
編集内容などのご不明な点は、楽々ワークフローIIのベンダー、または販売代理店にお問い合わせください。
1. 手順3-3でダウンロードしたSAML設定サンプル「sample_saml.zip」を解凍します。
2. 「SeiSamlLoginRequest.xml」 を以下のとおり編集し、保存します。
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="%AUTHN_ID%" Version="2.0" IssueInstant="%ISSUE_INSTANT%" Destination="http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★/SSORedirect/metaAlias/idp" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://rakwf.net/RakWF21/rkapServlet?samlcd=★会社識別子★"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">RakRak_WFC_honban</saml:Issuer> <samlp:NameIDPolicy xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" SPNameQualifier="https://rakwf.net/RakWF21/rkapServlet" AllowCreate="true"> </samlp:NameIDPolicy> <samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Comparison="exact"> <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" >urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef> </samlp:RequestedAuthnContext> </samlp:AuthnRequest>
変更箇所 | 変更前 | 変更後 |
---|---|---|
Destination | http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★/SSORedirect/metaAlias/idp | 手順2-3で確認した「SSOエンドポイントURL(Redirectバインディング)」の値 |
AssertionConsumerServiceURL | https://rakwf.net/RakWF21/rkapServlet?samlcd=★会社識別子★ | 「楽々ワークフローIIのログインURL」の後ろに「?samlcd=「会社識別子の値」を追記 例) |
SPNameQualifier | https://rakwf.net/RakWF21/rkapServlet | 「楽々ワークフローIIのログインURL」 例) |
3. 「SeiSamlLogoutRequest.xml」 を以下のとおり編集し、保存します。
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="%AUTHN_ID%" Version="2.0" IssueInstant="%ISSUE_INSTANT%" Destination="http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★/UI/Logout"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">RakRak_WFC_honban</saml:Issuer> <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" NameQualifier="http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★" SPNameQualifier="https://rakwf.net/RakWF21/rkapServlet" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"> %NAME_ID% </saml:NameID> <samlp:SessionIndex xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">%SESSION_INDEX%</samlp:SessionIndex> </samlp:LogoutRequest>
変更箇所 | 変更前 | 変更後 |
---|---|---|
Destination | http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★/UI/Logout | (任意) 例) |
AssertionConsumerServiceURL | http://★IdPサーバのFQDN★/★IdPサーバのコンテキストパス★ | https://www.auth.iij.jp/console/ |
SPNameQualifier | https://rakwf.net/RakWF21/rkapServlet | 「楽々ワークフローIIのログインURL」 例) |
4. 「wfcloud_profile.xml」 を以下のとおり編集し、保存します。
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="RakRak_WFC_honban"> <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://rakwf.net/RakWF21/rkapServlet?samlcd=★会社識別子★" index="0"/> </md:SPSSODescriptor> </md:EntityDescriptor>
変更箇所 | 変更前 | 変更後 |
---|---|---|
Location | https://rakwf.net/RakWF21/rkapServlet?samlcd=★会社識別子★ | 「楽々ワークフローIIのログインURL」の後ろに「?samlcd=「会社識別子の値」を追記 例) |
5. 楽々ワークフローIIのSAML設定を実施する
1. 楽々ワークフローIIに管理者アカウントでログインします。
2. 「システム管理」をクリックします。
3. 「契約内容確認」をクリックします。
4. 「更新」をクリックします。
5. 「SAML認証設定」を以下のとおり設定し、「更新」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
IdPサーバログインURL | 手順2-3で確認した「SSOエンドポイントURL(Redirectバインディング)」の値 | |
IdPサーバログアウトURL | 例) https://www.auth.iij.jp/console/ | |
IdPサーバ証明書 | 手順2-3で取得した「PEM」の値を保存したファイルをアップロード | |
IdPサーバーへのログインリクエストXML | 手順4-2で編集した「SeiSamlLoginRequest.xml」のファイルをアップロード | |
IdPサーバーへのログアウトリクエストXML | 手順4-3で編集した「SeiSamlLogoutRequest.xml」のファイルをアップロード | |
本サイトのパスワードによるログイン | 「許可」または「禁止」 | (任意) 「禁止」にする場合、あらかじめIIJ IDサービス側に楽々ワークフローIIの管理者アカウントのメールアドレスをユーザIDに持つアカウントを用意しておいてください |
メールアドレスログイン | する |
6. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. アプリケーションの「編集する」をクリックします。
3. 「フェデレーション設定」をクリックします。
4. 以下のとおり設定し、「変更を適用する」をクリックします。
項目 | 内容 | 備考 | ||
---|---|---|---|---|
SAML基本情報 | SPのメタデータをアップロードする | 「SPのメタデータをアップロードする」をチェック | ||
SPメタデータ | 手順4-5で入手した「wfcloud_profile.xml」ファイルをアップロード | |||
検証後の遷移先(RelayState) | (空欄) | |||
アプリケーションのトップページURL | 「楽々ワークフローIIのログインURL」の後ろに「?samlcd=「会社識別子の値」を追記 例) | |||
アサーションの署名アルゴリズム | 例) | |||
ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) ID | 楽々ワークフローIIの各ユーザの「メールアドレス」の値が格納されている属性を指定します |
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「RSA-SHA256」を選択してください。
「RSA-SHA256」を指定して動作しない場合及び連携先サービス側で明示的にそれ以外のものが指定されている場合は、「RSA-SHA512」、または「RSA-SHA1」に変更し、連携を確認してください。
【参考】
- 「ユーザ識別子(NameID)」の指定は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「ユーザ識別子(NameID)」の指定した属性にユーザが値を保持していない場合は SAML連携は失敗します。
- 「ユーザ識別子(NameID)」にID以外の複数の値を持つ属性で指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_ID」を指定します。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
【注意】
- 「ユーザ識別子(NameID)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
- 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。
5. 「利用者設定」をクリックします。
6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。
【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。
「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。