システム構成
以下の構成でセットアップを行います。
認証サーバー
ディレクトリサービス | AD |
IdP | AD FS |
OS | Windows Server 2012 R2 Standard Windows Server 2016 Standard Windows Server 2019 Standard (※基本的に上記すべてのOSで設定方法は同様であるが「IdPの設定」のみ、OSの種類によって画面が異なるため、2-4~2-6と分けて記載します。) |
IdPサーバーのアドレス | adfs.ni-saml.com (※設定手順内のIdPサーバーのアドレスは、実際に使用するものに置き換えてください。) |
※ADとAD FSは、同一のサーバー上で稼働するものとします。
※AD、AD FSのインストール手順の詳細は、Microsoft社の情報をご確認ください。
事前準備:証明書の準備
第三者認証機関が承認した、認証に使用するAD FSのサーバー証明書を.pfx形式でエクスポートします。
証明書を取得する一般的な方法には、OpenSSLを使用する方法、Certreq.exeを使用する方法、IISを使用する方法の3種類があります。(※詳細は認証局の設定手順にしたがってください。)
OpenSSLを使用する方法は、以下Microsoft社の情報もご確認ください。
https://docs.microsoft.com/ja-jp/azure/app-service/configure-ssl-certificate#export-certificate-to-pfx
事前準備:AD FSの構成
- サーバーマネージャーより「このサーバーにフェデレーションサービスを構成します。」をクリックします。
- 「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します」を選択し、「次へ」をクリックします。
- 「次へ」をクリックします。
- 「インポート」をクリックし、.pfx形式の証明書ファイルを選択します。
証明書にパスワードが設定されている場合は入力して「OK」をクリックします。 - フェデレーションサービスの表示名を入力し、「次へ」をクリックします。
※表示名は、パスワード認証使用時に、IdPのログイン画面に表示される名称です。 - サービスアカウントに「Administrator」を選択し、パスワードを入力し、「次へ」をクリックします。
- 「Windows Internal Databaseを使用してサーバーにデータベースを作成します。」を選択して、「次へ」をクリックします。
- 「次へ」をクリックします。
- 「構成」をクリックします。
画面に「このサーバーは正常に構成されました」と表示されることを確認します。
システム設定
- システム設定の「セキュリティ」タブより「SAML認証」を選択します。
⇒「認証/SAML認証」画面が表示されます。 - 以下の項目を入力し、「保存」ボタンをクリックします。
項目名称 | 説明 | 設定値 |
---|---|---|
シングルサインオン設定 | ||
シングルサインオン | シングルサインオンを利用するかしないかを設定します。 | 利用する |
有効範囲 | SAML認証を許可する接続元IPアドレスを改行区切りで指定します。空白の場合は、すべての接続でSAML認証を行います。 | ※補足を参照 |
Service Provider(NI製品)設定 | ||
エンティティID | Service Providerの識別子。任意の文字列を設定します。 ※初期値のURLから変更する必要はありません。 | https://xxx.xxx.xxx.xxx/ni/ |
エンドポイントURL | SAMLレスポンスを受信するURLです。 ※Identity Providerのセットアップに使用する固定値です。 | - |
仮名 | 仮名IDを用いた認証を利用するかしないかを設定します。 | 利用する/利用しない |
認証方法 | 認証にパスワード認証を用いるか、Windows認証を用いるかを設定します。 | Windows認証/パスワード認証 |
ログアウトURL | NI製品からログアウト後に遷移するURLを設定します。 | https://<IdPサーバーのアドレス>/adfs/ls/?wa=wsignout1.0 (※IdPのログアウト画面) |
補足
- NI製品からログアウトする際に、IdPからもログアウトする必要がない場合は、ログアウトURLに下記URLを設定することで、通常のNI製品ログイン画面に遷移します。
https://<任意のNI製品URL>?saml=no - 社内端末のIPアドレスを「有効範囲」に指定することで、モバイル端末など社外からの接続によりIdPに接続不可の場合は、「有効範囲」外となるため、SAML認証が適用されず、通常のログイン画面が表示されます。
注意
- エンティティID、仮名を変更した場合、IdPの再設定が必要になります。
- 仮名を利用するかしないかで、IdPの設定手順が異なります。
- IdPメタデータをアップロードします。
下記URLにブラウザでアクセスし、IdPメタデータXMLファイルをPCに保存します。
https://<IdPサーバーのアドレス>/FederationMetadata/2007-06/FederationMetadata.xml
NI製品システム設定「認証/SAML認証」画面の、Identity Provider設定の「メタデータ」に 上記で保存したIdPメタデータXMLファイルを添付します。
「読み込み」ボタンをクリックします。
以下の設定項目が自動で入力されます。
項目名称 | 説明 | 設定サンプル値 |
---|---|---|
Identity Provider設定 | ||
エンティティID | Identity Providerの識別子を設定します。 | http://<IdPサーバーのアドレス>/adfs/services/trust |
エンドポイントURL | SAMLリクエストを送信するURLを設定します。 | https://<IdPサーバーのアドレス>/adfs/ls/ |
証明書 | Identity Providerが署名に使用する公開鍵を設定します。 カンマ区切りで複数証明書を指定できます。 | Base64エンコードされた文字列 |
- SPメタデータをダウンロードします。
Service Provider(NI製品)設定の「メタデータ」の「ダウンロード」ボタンをクリックします。
⇒SPメタデータXMLファイルがダウンロードされます。「IdPの設定 (Windows Server 2012R2)」または「IdPの設定(Windows Server 2016-ADFS)」にて使用します。 - 「保存」ボタンをクリックします。
IdPの設定(Windows Server 2012 R2)
IdPサーバーで下記の設定を行います。
証明書利用者信頼(SP)の追加
- AD FSの管理ツールを表示し、「証明書利用者信頼の追加」をクリックします。
- 証明書利用者信頼の追加ウィザードが表示されたら、「開始」をクリックします。
- 「証明書利用者についてのデータをファイルからインポートする」を選択し、「参照」ボタンをクリックします。
「システム設定」でダウンロードしたSPメタデータを選択します。
補足
- SPメタデータをインポートすることで、以下の値が自動でセットされます。
セットされた値は、「信頼の追加の準備完了」の項で確認することができます。
「証明書利用者の識別子」:NI製品システム設定画面の「エンティティID」の値がセットされます。
「SAMLアサーション コンシューマー エンドポイント」:NI製品システム設定画面の「エンドポイントURL」の値がセットされます。
- 表示名を入力し、「次へ」をクリックします。
※表示名はAD FSの管理ツール上で表示される名称です。 - 「現時点ではこの証明書利用者信頼に他要素認証を構成しない」を選択し、「次へ」をクリックします。
- 「すべてのユーザーに対してこの証明書利用者へのアクセスを許可する」を 選択し、「次へ」をクリックします。
- 「次へ」をクリックします。
- 証明書利用者信頼の追加が完了したので、「閉じる」ボタンをクリックします。
エンドポイントURLの追加
- AD FSの管理ツールを表示し、「証明書利用者信頼」メニューを選択します。
追加した証明書利用者信頼を右クリックし、「プロパティ」を選択します。 - SAMLリクエスト用エンドポイントの追加
「エンドポイント」タブを選択し、「SAMLの追加」をクリックします。
下記の値を設定し、「OK」をクリックします。- エンドポイントの種類:「SAMLアサーションコンシューマー」を選択します。
- バインディング:「Redirect」を選択します。
- 「信頼されたURL」:次のURLを入力します。
https://<IdPサーバーのアドレス>/adfs/ls/
- ログアウト用エンドポイントの追加
「エンドポイント」タブを選択し、「SAMLの追加」をクリックします。
下記の値を設定し、「OK」をクリックします。- エンドポイントの種類:「SAMLログアウト」を選択します。
- バインディング:「Redirect」を選択します。
- 「信頼されたURL」:次のURLを入力します。
https://<IdPサーバーのアドレス>/adfs/ls/?wa=wsignout1.0
- 「OK」をクリックします。
変換要求規則の追加
■仮名を利用する場合
補足
- NameIDとして、ランダムな識別子(仮名)を返すように設定を行います。
- 以下の2つの変換要求規則を追加します。
要求規則テンプレートに「カスタム規則を使用して要求を送信」を選択して、「次へ」をクリックします。
以下のカスタムルールをコピー&ペーストし、完了をクリックします。
c:[type == “http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname” ]=> add(
store = “_OpaqueIdStore”,
types = (“http://mycompany/internal/persistentId”),
query = “{0};{1};{2}”,
param = “ppid”,
param = c.Value,
param = c.OriginalIssuer);
「入力方向の要求を変換」を選択し、「次へ」をクリックします。
以下の値を選択し、「完了」をクリックします。- 要求規則名:任意の名称を入力します。
- 入力方向の要求の種類:「http://mycompany/internal/persistentId」をコピー&ペーストで入力します。
- 出力方向の要求の種類:「名前ID」を選択します。
- 出力方向の名前IDの形式:「永続ID」を選択します。
- 「OK」をクリックします。
■仮名を利用しない場合
補足
- NameIDとして、ADのユーザー情報を返すように設定を行います。
- AD FSの管理ツールを表示し、「証明書利用者信頼」メニューを選択します。
追加した証明書利用者信頼を右クリックし、「要求規則の編集」を選択します。 - 「規則の追加」ボタンをクリックします。
- 以下の要求規則を追加します。
要求規則テンプレートに「LDAP属性を要求して送信」を選択し、「次へ」をクリックします。
以下の値を選択し、「完了」をクリックします。- 要求規則名:任意の名称を入力します。
- 属性ストア:「Active Directory」を選択します。
- LDAP属性:「SAM-Account-Name」
※ここでは検証のため、ADの「ユーザーログオン名(Windows 2000より前)」に紐づく「SAM-Account-Name」を選択しています。
LDAP属性については、「変換要求規則の追加」の「仮名を利用しない場合」を参照してください。 - 出力方向の要求の種類:「名前ID」を選択します。
認証ポリシーの設定
- AD FSの管理ツールを表示し、「認証ポリシー」メニューを選択します。
グローバルプライマリ認証の編集をクリックします。 - 利用する認証方法を有効にし、「OK」をクリックします。
- パスワード認証の場合
エクストラネット:「フォーム認証」にチェックします。
イントラネット:「フォーム認証」にチェックします。 - Windows認証の場合
エクストラネット:「フォーム認証」にチェックします。
イントラネット:「フォーム認証」と「Windows認証」にチェックします。
- パスワード認証の場合
IdPの設定(Windows Server 2016-ADFS)
IdPサーバーで下記の設定を行います。
証明書利用者信頼(SP)の追加
- AD FSの管理ツールを表示し、「証明書利用者信頼の追加」をクリックします。
- 証明書利用者信頼の追加ウィザードが表示されたら、「要求に対応する」を選択し、「開始」をクリックします。
- 「証明書利用者についてのデータをファイルからインポートする」を選択し、「参照」ボタンをクリックします。
「システム設定」でダウンロードしたSPメタデータを選択します。
補足
- SPメタデータをインポートすることで、以下の値が自動でセットされます。
セットされた値は、「信頼の追加の準備完了」の項で確認することができます。
「証明書利用者の識別子」:NI製品システム設定画面の「エンティティID」の値がセットされます。
「SAML アサーション コンシューマー エンドポイント」:NI製品システム設定画面の「エンドポイントURL」の値がセットされます。
- 表示名を入力し、「次へ」をクリックします。
※表示名はAD FSの管理ツール上で表示される名称です。 - 表示された画面のまま、「次へ」をクリックします。
- 「次へ」をクリックします。
- 証明書利用者信頼の追加が完了したので、「このアプリケーションの要求発行ポリシーを構成する」にチェックを付けたまま、「閉じる」ボタンをクリックします。
エンドポイントURLの追加
- AD FSの管理ツールを表示し、「証明書利用者信頼」メニューを選択します。
追加した証明書利用者信頼を右クリックし、「プロパティ」を選択します。 - SAMLリクエスト用エンドポイントの追加
「エンドポイント」タブを選択し、「SAMLの追加」をクリックします。
下記の値を設定し、「OK」をクリックします。- エンドポイントの種類:「SAMLアサーションコンシューマー」を選択します。
- バインディング:「Redirect」を選択します。
- 「信頼されたURL」:次のURLを入力します。
https://<IdPサーバーのアドレス>/adfs/ls/
- ログアウト用エンドポイントの追加
「エンドポイント」タブを選択し、「SAMLの追加」をクリックします。
下記の値を設定し、「OK」をクリックします。- エンドポイントの種類:「SAMLログアウト」を選択します。
- バインディング:「Redirect」を選択します。
- 「信頼されたURL」:次のURLを入力します。
https://<IdPサーバーのアドレス>/adfs/ls/?wa=wsignout1.0
- 「OK」をクリックします。
変換要求規則の追加
■仮名を利用する場合
[icon name=”circle-info” prefix=”fas”] 補足
- NameIDとして、ランダムな識別子(仮名)を返すように設定を行います。
- 以下の2つの変換要求規則を追加します。
要求規則テンプレートに「カスタム規則を使用して要求を送信」を選択して、「次へ」をクリックします。
以下のカスタムルールをコピー&ペーストし、完了をクリックします。
c:[type == “http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname” ]=> add(
store = “_OpaqueIdStore”,
types = (“http://mycompany/internal/persistentId”),
query = “{0};{1};{2}”,
param = “ppid”,
param = c.Value,
param = c.OriginalIssuer);
「入力方向の要求を変換」を選択し、「次へ」をクリックします。
以下の値を選択し、「完了」をクリックします。- 要求規則名:任意の名称を入力します。
- 入力方向の要求の種類:「http://mycompany/internal/persistentId」をコピー&ペーストで入力します。
- 出力方向の要求の種類:「名前ID」を選択します。
- 出力方向の名前IDの形式:「永続ID」を選択します。
- 「OK」をクリックします。
■仮名を利用しない場合
補足
- NameIDとして、ADのユーザー情報を返すように設定を行います。
- AD FSの管理ツールを表示し、「証明書利用者信頼」メニューを選択します。
追加した証明書利用者信頼をクリックし、画面右側の「要求発行ポリシーの編集」を選択します。 - 「規則の追加」ボタンをクリックします。
- 以下の要求規則を追加します。
要求規則テンプレートに「LDAP属性を要求して送信」を選択し、「次へ」をクリックします。
以下の値を選択し、「完了」をクリックします。- 要求規則名:任意の名称を入力します。
- 属性ストア:「Active Directory」を選択します。
- LDAP属性:「SAM-Account-Name」
※ここでは検証のため、ADの「ユーザーログオン名(Windows 2000より前)」に紐づく「SAM-Account-Name」を選択しています。
LDAP属性については、補足を参照してください。 - 出力方向の要求の種類:「名前ID」を選択します。
補足
LDAP属性には、「SAM-Account-Name」以外の項目も選択できます。
ユーザー情報が一意に識別できる項目を選択してください。

一般的に使用される「LDAP属性」の選択肢とADの情報との紐づけは以下のようになります。
- LDAP属性「SAM-Account-Name」
ADの「ユーザーログオン名(Windows 2000より前)」を使用します。 - LDAP属性「User-Principal-Name」
ADの「ユーザーログオン名」を使用します (@以降含む)。 - LDAP属性「E-Mail-Addresses」
ADの「電子メール」を使用します。
認証ポリシーの設定
- AD FSの管理ツールを表示し、「認証方法」メニューを選択します。
プライマリ認証方法の編集をクリックします。 - 利用する認証方法を有効にし、「OK」をクリックします。
- パスワード認証の場合
エクストラネット:「フォーム認証」にチェックします。
イントラネット:「フォーム認証」にチェックします。 - Windows認証の場合
エクストラネット:「フォーム認証」にチェックします。
イントラネット:「フォーム認証」と「Windows認証」にチェックします。
- パスワード認証の場合
IdPの設定(Windows Server 2019)
Windows Server 2016 同様の手順となります。
「IdPの設定(Windows Server 2016-ADFS)」を参照してください。
仮名ID取得
注意
- 仮名を利用する場合のみ、各ユーザーが下記の作業を行う必要があります。
オプション設定
- 仮名を利用する場合、初回ログイン時はシングルサインオンに失敗するため、通常のNI製品ログイン画面より、ID/パスワードを入力し、ログインしてください。
- NI製品の「オプション設定」画面を表示し、「SAML認証」を選択します。
⇒「SAML認証」画面が表示されます。 - 「取得する」ボタンをクリックして、Identity Providerから仮名IDを取得します。
※新規ウィンドウが開き、Identity Providerへ接続します。仮名ID取得後にWindowは自動的に閉じられます。 - 最後に「保存」ボタンを押します。
動作確認
- NI製品の任意のURLにブラウザでアクセスします。
- IdPにログインします。
パスワード認証の場合、AD FSのログイン画面にて、ID/パスワードを入力することで認証されます。 - Windows認証の場合、ドメインにログイン済みのWindows PCにて、Microsoft Edge、またはGoogle Chromeを使用しているときは、自動で認証されます。
それ以外の場合、認証ダイアログが表示され、ID/パスワードを入力することで認証されます。 - NI製品の目的のURLが表示されます。
補足
- Windows Helloなど多要素認証によるログインの場合も同様の動作となります。
トラブルシューティング
補足
- AD FSで発生するエラーについて記載します。
- NI製品のアクセスログに出力されているエラーログへの対処については、「トラブルシューティング」を参照してください。
AD FSのエラーについて
■AD FSのエラー画面
以下のような画面が表示された場合、AD FS側でエラーが発生しています。

通常のログイン画面のURLに「?saml=no」を追加し、NI製品へログインしてください。
例)NI Collabo 360
https://xxx.xxx.xxx.xxx/ni/niware/portal/index.php?saml=no
例)Sales Force Assistantシリーズ
https://xxx.xxx.xxx.xxx/ni/<各製品>/main/index.php?saml=no
■AD FSのエラー詳細確認
エラーの内容を確認するには、IdPのサーバーマネージャーのメニューより「AD FS」を選択し、「イベント」項目をチェックします。

AD FSの設定不備が原因で発生する主要なエラーを以下に記載します。
エラーID | エラーメッセージ | 対応方法 |
---|---|---|
364 | パッシブな要求のフェデレーション中にエラーが発生しました。 追加データ … | 認証中にエラーが発生すると、必ずログに出力されるメッセージです。 ※パッシブな要求=Webブラウザからの要求 |
364 | パッシブな要求のフェデレーション中にエラーが発生しました。 追加データ プロトコル名: Saml 証明書利用者: https://xxx.xxx.xxx.xxx/ni/ 例外情報: Microsoft.IdentityServer.Web.InvalidScopeException: MSIS7007: 要求された証明書利用者信頼 ‘https://xxx.xxx.xxx.xxx/ni/’は指定されていないか、またはサポートされていません。証明書利用者信頼が指定されていた場合は、証明書利用者信頼にアクセスするための許可がない可能性があります。詳細については、管理者に問い合わせてください。 場所Microsoft.IdentityServer.Web.Protocols.Saml.SamlSignInContext.Validate() 場所 Microsoft.IdentityServer.Web.Protocols… | SPのエンティティIDが誤っています。 (※上記原因の場合、エラーID:364以外のエラーメッセージは出力されません。) 証明書利用者信頼のプロパティの[識別子」タブから証明書利用者の識別子が正しいことを確認してください。 |
261 | 要求で、証明書利用者’https://xxx.xxx.xxx.xxx/ni/’に構成されていないアサーション コンシューマー サービスの URL’https://xxx.xxx.xxx.xxx/ni/zcom/service/index.php?p=saml’が指定されました。 アサーション コンシューマー サービスのURL: https://xxx.xxx.xxx.xxx/ni/zcom/service/index.php?p=saml 証明書利用者: https://xxx.xxx.xxx.xxx/ni/ この要求は失敗しました。 ユーザー操作 AD FSの管理スナップインを使用して、この証明書利用者用に指定されたURLを持つアサーション コンシューマー サービスを構成してください。 | SPのエンドポイントURLが誤っています。 証明書利用者信頼のプロパティの「エンドポイント」タブから「SAMLアサーションコンシューマ ーエンドポイント」のURLが正しいことを確認してください。 |
321 | SAML認証要求に、満たすことができないNameIDのポリシーがありました。 要求元: https://xxx.xxx.xxx.xxx/ni/ 名前識別子の形式: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent SPNameQualifier: 例外の詳細: MSIS7070: SAML要求に、発行されたトークンでは要件が満たされないNameIDPolicyが含まれていました。要求されたNameIDPolicy: AllowCreate: True Format: urn:oasis:names:tc:SAML:2.0:nameid-format:persistentSPNameQualifier: 。実際の NameID プロパティ: Format: ,NameQualifier: SPNameQualifier: , SPProvidedId: 。 この要求は失敗しました。 ユーザー操作 AD FSの管理スナップインを使用して、 必要な名前識別子を発行する構成を設定してください。 | 仮名IDの利用有無に対し、IdP側の設定が正しく実施できていません。 「変換要求規則の追加」項の手順が正しく実行できているか、確認してください。 |
273 | 要求で、証明書利用者’https://xxx.xxx.xxx.xxx/ni/’に対して構成またはサポートされていないアサーション コンシューマー サービスが指定されました。 要求パラメーター: ”、 ‘urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST’、’https://xxx.xxx.xxx.xxx/ni/zcom/service/index.php?p=saml’ 証明書利用者: https://xxx.xxx.xxx.xxx/ni/ この要求は失敗しました。 ユーザー操作 AD FSの管理スナップインを使用して、この証明書利用者用に指定されたパラメーターを持つアサーション コンシューマー サービスを構成してください。SAMLアーティファクトが要求された場合は、アーティファクト解決サービスが有効になっているかどうかも確認してください。 | IdPのエンドポイントURL設定に、誤ったバインディングが指定されています。 「エンドポイントURLの追加」項の手順が正しく実行できているか、確認してください。 |
運用時の注意
証明書の更新について

AD FSは、以下の3種類の証明書を利用して動作しています。
- サービス通信証明書
「AD FSの構成」にて適用した、SSL(https)通信のための証明書です。
適用した証明書の期限に応じて、手動で更新を行ってください。 - トークン暗号化解除証明書
利用していません。 - トークン署名証明書
AD FSのセットアップ時に自動で作成される自己署名証明書です。
有効期限は既定では1年となっており、自動で更新されます。
また、AD FSでは、自動証明書ロールオーバー機能(トークン署名証明書の自動更新)があり、既定ではこの機能が有効となっています。自動証明書ロールオーバーが発生した場合、証明書の有効期限5日前にNI製品へのシングルサインオンでエラーが発生します。
対策として、AD FSの自動証明書ロールオーバー機能を無効にする、証明書の有効期限延長があります。
詳細は、Microsoft社の情報をご確認ください。
https://docs.microsoft.com/ja-jp/archive/blogs/jpntsblog/ad-fs-%E3%81%AE%E8%87%AA%E5%8B%95%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E6%A9%9F%E8%83%BD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
有効期限切れ、有効期限延長により証明書が更新されると、「システム設定」の「3.IdPメタデータをアップロードします。」を再実行する必要があります。