FortiGate
【参考】
- 2024年2月29日時点での情報で掲載しています。
- 連携サービス側の仕様変更などにより画面や操作内容が変更される場合があります。
「FortiGate」との認証連携を設定します。
【注意】
- 本手順はFortiGate(FortiOS)のバージョン7.2.7で確認した手順です。
- FortiGateでSAML認証が可能なバージョンなどの制約については販売元にお問合わせください。
- FortiGateはNTPなどを活用し、時刻がずれないように運用してください。
- 本手順ではSAML連携に関連しない項目については記載していません。
- FortiGateに関する操作内容についての詳細は製品マニュアルをご確認いただくか販売元にお問合わせください。
- FortiGateでは、IIJ IDサービスのアカウントベースで認証が行われます。FortiGateで該当するアカウントを用意する必要はありません。
- FortiGate上では、SAML認証時に伝搬する「username」の属性でログなどの情報が記録されます。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。
3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。
4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アプリケーション名 | 例)FortiGate | 必須 |
アプリケーションの説明 | 例)優れた脅威保護性能と自動的な可視化によって攻撃を防止 | 任意 |
アプリケーションロゴ | (ファイルアップロード) | 任意 |
IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのIDプロバイダ情報を確認する
1. 作成されたアプリケーションの「編集する」をクリックします。
2. 「IDプロバイダ情報」をクリックします。
3. 表示された「SSOエンドポイントURL (Redirectバインディング)」、「エンティティID」、及び「PEM」の値を控えます。
【参考】
- 「PEM」は、必ず「-----BEGIN CERTIFICATE-----」からはじまり、「-----END CERTIFICATE-----」で終わる形式です。
- 「PEM」に書かれている値を改行などせずにそのままテキストファイルに張り付けてください。
- 「PEM」情報をファイルでアップロードする必要があります。
3. FortiGateにIDプロバイダ情報を登録する
1. FortiGate の管理コンソールにアクセスします。
2. 左ペインメニューの「システム」をクリックし、「証明書」をクリックします。
3. 「作成/インポート」をクリックし、「リモート」をクリックします。
4. 以下のように入力し、「OK」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アップロード | 手順2-3で確認した「PEM」の値を書きだしたファイルをアップロード | 必須 |
【参考】
手順3-4でPEMファイルをアップロードすると、任意の証明書名で登録されます。本マニュアルでは「REMOTE_Cert_1」が作成されています。
詳しくは、製品マニュアルをご覧いただくか販売元にお問合わせください。
5. 「」をクリックし、「CLIコンソール」をクリックします。
6. 以下のコマンドを実行し、SAMLでログインするユーザを作成します(赤字の部分を入力)。
実行内容 | FortiGate # config user saml |
---|---|
実行例 | FortiGate # config user saml FortiGate(saml) # edit "IIJ ID User" FortiGate(IIJ ID User) # set entity-id "https://FortiGate.example.com/remote/saml/metadata" FortiGate(IIJ ID User) # set single-sign-on-url "https://FortiGate.example.com/remote/saml/login" FortiGate(IIJ ID User) # set idp-entity-id "https://www.auth.iij.jp/idp/asiida-000000000000K/-/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" FortiGate(IIJ ID User) # set idp-single-sign-on-url "https://www.auth.iij.jp/idp/SSORedirect/metaAlias/asiida-0000000000000K/-/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" FortiGate(IIJ ID User) # set idp-cert "REMOTE_Cert_1" FortiGate(IIJ ID User) # set user-name "IIJ ID User" FortiGate(IIJ ID User) # set digest-method sha1 FortiGate(IIJ ID User) # next FortiGate(saml) # end |
【参考】
FortiGateのアクセスポート番号が「443」以外の場合は、「single-sign-on-url」を環境にあわせて修正し、実行してください。
詳しくは、製品マニュアルをご覧いただくか販売元にお問合わせください。
【参考】
上記のコマンドの「IIJ ID User」の部分は任意の文字列を利用できます。以降の手順では、例として「IIJ ID User」と入力します。
7. 引き続き、以下のコマンドを実行し、SAMLでログインするユーザグループを作成します(赤字の部分を入力)。
実行内容 | FortiGate # config user group |
---|
【参考】
- 上記のコマンドの「IIJ ID Group」の部分は任意の文字列を利用できます。以降の手順では、例として「IIJ ID Group」と入力します。
- 上記のコマンドの「IIJ ID User」の部分は手順3-6で記載した文字列です。別の値にしている場合は、置き換えて実行してください。
4. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. アプリケーションの「編集する」をクリックします。
3. 「フェデレーション設定」をクリックします。
4. 以下のとおり設定し、「変更を適用する」をクリックします。
項目 | 内容 | 備考 | ||
---|---|---|---|---|
SAML基本情報 | SAML情報を入力する | 「SAML情報を入力する」をチェック | ||
シングルサインオンURL | 手順3-6で設定した「single-sign-on-url」の値 | |||
エンティティ ID | 手順3-6で設定した「entity-id」の値 | |||
NameIDフォーマット | urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified | |||
検証後の遷移先(RelayState) | (空欄) | |||
アプリケーションのトップページURL | (空欄) | |||
アサーションの署名アルゴリズム | 例) RSA-SHA256 | |||
ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) ID | ||
属性値関連付け(ユーザ属性) | 手順3-6で設定した「user-name」の値 | 例) ID | FortiGateのログなどで出力したい各ユーザの「ユーザID」の値が格納されている属性を指定します |
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「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」の場合は、「プライマリの値を使用する」をチェックします。
5. 「利用者設定」をクリックします。
6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。
【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。
「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。