Fortnoxには2FA(二要素認証)のための様々な戦略があり、その一つにログインのたびにSMSコードを使用する方法があります。
Data Hubを使用する無人環境(lights-out environments)では、2FAにユーザー名、パスワード、SMSを使用することは設計上不可能です。SMSコードを読み取って入力する人間がその場にいないためです。
以下のオプションが利用可能です:
- リフレッシュトークン(refresh token);
- Invantive Cloud経由でODataを使用(読み取り専用);
- Invantive Cloud経由でUniversalSQL Serverを使用(読み書き両方)。
Invantive Cloud事前認証で取得したリフレッシュトークン
最初に思いつくオプションは、Invantive Cloudで事前認証を使用して、いわゆる「アクセストークン」をオンプレミスで後から取得するためのリフレッシュトークンを取得することです。このリフレッシュトークンは、以下のようにデータベース設定に含めることができます:
- Invantive Cloudにアクセスします。
- Setupメニューに移動します。
- Pre-authenticateに移動します。
- Pre-authenticate for on-premises useに移動します。
- Fortnoxを選択します。
- 表示されているようにクライアント情報を指定します(ご自身のクライアントID、クライアントシークレット、リダイレクトURIを入力してください):
- 「Get Authorization Code」を選択します。
- Fortnoxにログオンします。
- 会社を選択します。
- 結果として表示されるURL全体をクリップボードにコピーします。
- まだ開いているPre-authenticatieウィンドウにURLを貼り付けます:
- 「Complete Preauthentication」を選択します。
- 次のページには、ユーザー名とパスワードの代わりにリフレッシュトークンを使用したFortnoxベースのデータコンテナの情報が様々な形式で表示されます:
- これらを
settings*.xmlを使用してデータベースに含めます
45日経過後も継続的に使用されている場合、このトークンが引き続き有効であるかどうかは不明です。フィードバックをお待ちしております!
Invantive Cloud経由でODataを使用(読み取り専用)
代替案として、Invantive CloudにFortnoxデータベースを登録します:
Data Hubサーバーの外部IPアドレスが、データベースの「Bridge Client IP Address List」フィールドでホワイトリストに登録されていることを確認するか、画像に示すように「*」を使用してください。
図のグループ「Various」にあるInvantive Bridge Onlineドライバーを使用して設定をテストします:
例えば、Bridge Onlineクエリを使用します:
select *
from [Accounts@fnx]
次に、データベースsettings*.xml内の新しいデータコンテナで、Invantive Bridge OnlineドライバーとBridge URLセグメントを使用します。例えば:
<database
order="30"
alias="fortnox"
provider="InvantiveBridgeOnline"
userLogonCodeMode="Hidden"
passwordMode="Hidden"
defaultUserLogonCode="john.doe@acme.eu"
defaultPassword="secret"
connectionString="server=https://bridge-online.invantive.com;database=acme-fortnox"
/>
defaultUserLogonCodeとdefaultPasswordの値を、Invantive Cloudのユーザーとパスワードに置き換えてください。
ODataプロトコルは、データの読み取りのみを許可します。
Invantive Cloud経由でSQL Serverを使用(2025年10月時点でBETA)して読み書き
代替案として、Invantive CloudにFortnoxデータベースを登録できます:
Data Hubサーバーの外部IPアドレスが、データベースの「Bridge Client IP Address List」フィールドでホワイトリストに登録されていることを確認するか、画像に示すように「*」を使用してください。
次に、Invantive UniversalSQL Serverが提供するホスト名を、データベースsettings*.xml内の新しいデータコンテナで「SQL Server-compatible Server Name(BETA)」として使用します。例えば:
<database
order="30"
alias="fortnox"
provider="SqlServer"
userLogonCodeMode="Hidden"
passwordMode="Hidden"
connectionString="Data Source=acme-fortnox.database.invantive.com;UID=john.doe@acme.com;PWD=secret"
AllowConnectionStringRewrite="false"
/>
UIDとPWDの値を、Invantive Cloudのユーザーとパスワードに置き換えてください。
Invantive UniversalSQL Serverプロトコルは読み取りと書き込みの両方を許可しますが、Invantive UniversalSQL上の名前の4つのレベル全てを、Microsoft SQL Serverの3レベルの命名モデルにマッピングする必要がある場合があるため、オブジェクト名の一部のリネームが必要になることがあります。
サンプル
以下のサンプルは、ログイン画面で3つのデータコンテナを持つ1つのデータベースに、3つのアプローチ全てを組み合わせたものを示しています:
使用されるクエリは次の通りです:
select 'OData'
, *
from Accounts@fnx_uss
where number = 1010
union all
select 'UniversalSQL Server'
, *
from [Accounts@fnx]@fnx_odata
where number = 1010
union all
select 'Local'
, *
from Accounts@fnx_local
where number = 1010
3つの結果は同一です:
なお、リフレッシュトークンは2回目以降のログインからのみ使用される点にご注意ください。
将来
将来のリリースでは、Invantiveはすべてのデータ交換がオンプレミスツールを実行しているクライアント上で引き続き行われる一方で、Invantive Cloudからのトークン取得を提供する可能性があります。






