Zscaler Internet Access
【参考】
2021年06月04日時点での情報で掲載しています。
「Zscaler Internet Access」との認証連携を設定します。
【注意】
- 本手順では、SAML Just In Provisioningを用いた連携を行います。
- Zscaler Internet AccessがSAMLで認証するキーは「ユーザID」です。
- IIJ IDサービス内の各ユーザ共通のユーザ属性にZscaler Internet Accessの「ユーザID」と同一の値を保持しておく必要があります。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。
3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。
4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アプリケーション名 | 例)Zscaler Internet Access | 必須 |
アプリケーションの説明 | 例)セキュアインターネットゲートウェイ | 任意 |
アプリケーションロゴ | (ファイルアップロード) | 任意 |
IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのIDプロバイダ情報を確認する
1. 作成されたアプリケーションの「編集する」をクリックします。
2. 「IDプロバイダ情報」をクリックします。
3. 表示された「SSOエンドポイントURL (POSTバインディング)」と「PEM」の値を控えます。
【参考】
- 「PEM」は、必ず「-----BEGIN CERTIFICATE-----」からはじまり、「-----END CERTIFICATE-----」で終わる形式です。
- 「PEM」に書かれている値を改行などせずにそのままテキストファイルに張り付けてください。
- 「PEM」情報をファイルでアップロードする必要があります。
3. ZscalerにIDプロバイダ情報を登録する
1. Zscalerの管理コンソールにログインします。
2. 「管理」をクリックし、「認可」をクリックします。
3. 「認証タイプ」の「SAML」をクリックします。
4. 「認証タイプ」の「IDプロバイダーを開く」をクリックします。
5. 「全般情報」を以下のとおり入力します。
項目 | 内容 |
---|---|
名前 | 例)IIJ IDサービス |
SAMLポータルURL | 手順2-3で確認した「SSOエンドポイントURL(POSTバインディング)」の値 |
ログイン名の属性 | NameID |
IdP SAML証明書 | 手順2-3で取得した「PEM」の値を保存したファイルをアップロード |
ベンダー | Other |
6. 「サービスプロバイダ(SP)のオプション」の「SAMLリクエストサイン」をOFFにし、「メタデータをダウンロード」をクリックします。
7. 「プロビジョニングオプション」にて以下のとおり設定し、「保存」をクリックします。
項目 | 内容 |
---|---|
SAML自動プロビジョニングを有効化 | チェックする |
ユーザ表示名の属性 | DisplayName |
グループ名の属性 | memberOf |
部署名の属性 | Department |
8. 「保存」をクリックします。
9. 「管理」をクリックし、「有効化」をクリックします。
4. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. アプリケーションの「編集する」をクリックします。
3. 「フェデレーション設定」をクリックします。
4. 以下のとおり設定し、「変更を適用する」をクリックします。
項目 | 内容 | 備考 | ||
---|---|---|---|---|
SAML基本情報 | SPのメタデータをアップロードする | 「SPのメタデータをアップロードする」をチェック | ||
SPメタデータ | 手順3-6で入手したSPメタデータをアップロード | |||
検証後の遷移先(RelayState) | (空欄) | |||
アプリケーションのトップページURL | (空欄) | |||
アサーションの署名アルゴリズム | 例) | |||
ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) タイプと一致する値を使用する | Zscaler Internet Accessの「ユーザID」の値が格納されている属性を指定します | |
属性値関連付け(ユーザ属性) | DisplayName | 例) タイプと一致する値を使用する | 手順3-8で「User Display Name Attribute」に入力した値を「SAML属性名」として記入します 対応する「関連付けるユーザ属性」にはZscaler Internet Accessの「ユーザ表示名の属性」の値が格納されている属性を指定します | |
Department | 例) 所属 | 手順3-8で「Department Name Attribute」に入力した値を「SAML属性名」として記入します 対応する「関連付けるユーザ属性」にはZscaler Internet Accessの「部署名の属性」の値が格納されている属性を指定します | ||
属性値関連付け(所属グループ名) | memberOf | 例) グループの指定: 条件1: | 手順3-8で「部署名の属性」に入力した値を「SAML属性名」として記入します 連携する所属グループ一覧が、必ず抽出されるように条件を指定しください |
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「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)」として指定するタイプが複数個存在しないように注意してください。
【参考】
- 「属性値関連付け(ユーザ属性)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「属性値関連付け(ユーザ属性)」で複数値を持つ属性での指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「1234」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_Attr1」を指定します。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「multi1」、「multi2」のように複数の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_MultiAttr1」を指定します。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
【参考】
「属性値関連付け(所属グループ名)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「属性値関連付け(所属グループ名)」指定方法は以下のとおりです。
例として、IIJ IDサービスのユーザの所属グループ一覧が以下のように設定されています。
上記例では、「IID_」から始まるグループ名は、IIJ IDサービス上での各種制御用に利用するグループ、「IID_」から始まらないグループ名は、所属する部署やプロジェクトとして利用していて、対象の連携先サービスに連携させるためのグループです。- 「IID_」から始まるグループはIIJ IDサービス内の制御用にのみ利用しています。「IID_」から始まるグループだけを除外し、「属性値関連付け(所属グループ名)」として「memberOf」という属性名で伝播したい場合は、以下のとおり設定します。
- グループ名が「営業部」から始まるグループだけを「属性値関連付け(所属グループ名)」として「memberOf」という属性名で連携したい場合は、以下のとおり設定します。
- 特定のグループ(「営業部営業一課」と「xxxプロジェクト」)のみを「属性値関連付け(所属グループ名)」という属性名で連携したい場合は、以下のとおり設定します。
- 「IID_」から始まるグループはIIJ IDサービス内の制御用にのみ利用しています。「IID_」から始まるグループだけを除外し、「属性値関連付け(所属グループ名)」として「memberOf」という属性名で伝播したい場合は、以下のとおり設定します。
また、IIJ IDサービスでは、制御用のグループ名にプレフィックスとして「IID_」のような固定文字列を付け条件制御ができます。
- 「グループの指定」で指定できる条件は以下のとおりです。
- 全ての所属グループ
- 全ての条件に一致
- いずれかの条件に一致
- 「条件」で指定できる条件は以下のとおりです。
- 次で始まる
- 次で始まらない
- 次と同じ
- 次と異なる
- 次を含む
- 次を含まない
【注意】
連携先サービスにてSAML Just-In-Provisioning機能が有効な場合、以下の点についてご注意ください。
- 連携先サービスのSAMLで認証するキーにIIJ IDサービスの「ID」以外の属性を指定している場合、IIJ IDサービス上では属性情報の変更が可能なため、連携先サービスでは認証時にこれまでとは別ユーザで接続されたと認識されます。そのため、新規ユーザとして作成処理が行われ、既存ユーザのリネーム処理が行われません。連携先サービスのSAMLで認証するキーとして指定する属性の値の変更については十分ご注意ください。
- 属性値関連付け(ユーザ属性)及び属性値関連付け(所属グループ名)を利用している場合、ユーザが連携先サービスにSAML連携した後にIIJ IDサービス側の該当属性を変更するると、連携先サービスでその該当属性に対しての更新処理が発生します。IIJ IDサービスと連携先サービスの双方でID情報を管理している場合は、IIJ IDサービスと連携先サービス間で該当属性同士の不整合が起きないように管理してください。
- ユーザの削除のトリガーは存在しません。定期的に管理者が手動にて連携先サービス上の該当ユーザの削除処理を行っていただく必要があります。
これらは連携先サービスで提供するSAML Just-In-Provisioning機能の仕様のため、IIJ IDサービスでの制限ではありません。
5. 「利用者設定」をクリックします。
6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。
【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。
「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。