> ## Documentation Index
> Fetch the complete documentation index at: https://support.i.moneyforward.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IBM MaaS360

> IBM MaaS360との連携方法です。アクセスキーの取得から、連携方法まで一連の手順を解説します。

export const IntegrationCapabilities = ({lang = "ja", modes = "", plan = "", lifecycle = "", automation = "", fetch = "", capabilities = "", memo = ""}) => {
  const TEXT = ({
    ja: {
      rows: {
        mode: "連携モード",
        plan: "連携確認プラン",
        lifecycle: "アカウントライフサイクル",
        automation: "自動化",
        fetch: "取得データ",
        capabilities: "対応機能",
        memo: "備考"
      },
      empty: "-",
      more: "各項目の意味は[連携可能SaaS・機能対応一覧](/integrations/supported-saas)をご覧ください。",
      mode: {
        "API Key": "APIキー"
      },
      lifecycle: {
        provisioning: "アカウント作成",
        deactivate: "アカウント無効化",
        delete: "アカウント削除"
      },
      automation: {
        provisioning: "アカウント作成",
        deactivate: "アカウント無効化",
        delete: "アカウント削除"
      },
      fetch: {
        User: "ユーザー名",
        Mail: "メールアドレス",
        Role: "ロール",
        Status: "ステータス",
        "2FA": "二要素認証",
        LastActivity: "最終利用日",
        Licenses: "ライセンス"
      },
      capabilities: {
        "employee-master": "従業員マスター連携",
        "identity-provider": "IDプロバイダー連携",
        "cost-aggregation": "コスト管理",
        "file-aggregation": "ファイル管理",
        "file-permissions": "ファイル権限管理",
        "device-aggregation": "MDM連携"
      }
    },
    en: {
      rows: {
        mode: "Integration mode",
        plan: "Verified plan",
        lifecycle: "Account lifecycle",
        automation: "Automation",
        fetch: "Fetched data",
        capabilities: "Capabilities",
        memo: "Notes"
      },
      empty: "-",
      more: "See [Supported SaaS and Capabilities](/en/integrations/supported-saas) for what each item means.",
      mode: {},
      lifecycle: {
        provisioning: "Account creation",
        deactivate: "Account deactivation",
        delete: "Account deletion"
      },
      automation: {
        provisioning: "Account creation",
        deactivate: "Account deactivation",
        delete: "Account deletion"
      },
      fetch: {
        LastActivity: "Last Activity"
      },
      capabilities: {
        "employee-master": "HR master",
        "identity-provider": "Identity provider",
        "cost-aggregation": "Cost management",
        "file-aggregation": "File management",
        "file-permissions": "File permissions",
        "device-aggregation": "MDM integration"
      }
    }
  })[lang === "en" ? "en" : "ja"];
  const BADGE_COLORS = {
    "ID/Password": "yellow",
    "API Key": "cyan",
    OAuth: "red",
    App: "purple",
    User: "blue",
    Mail: "cyan",
    Role: "orange",
    Status: "teal",
    "2FA": "pink",
    LastActivity: "green",
    Licenses: "purple",
    provisioning: "green",
    delete: "red",
    deactivate: "yellow",
    "employee-master": "blue",
    "identity-provider": "teal",
    "cost-aggregation": "yellow",
    "file-aggregation": "cyan",
    "file-permissions": "orange",
    "device-aggregation": "purple"
  };
  const list = value => String(value || "").split(",").map(item => item.trim()).filter(Boolean);
  const badges = (source, labels) => {
    const values = list(source);
    if (values.length === 0) {
      return <span className="integration-capabilities-empty">{TEXT.empty}</span>;
    }
    return values.map(value => <span key={value} className={"integration-catalog-badge integration-catalog-badge--" + (BADGE_COLORS[value] || "gray")}>
        {labels?.[value] ?? value}
      </span>);
  };
  const text = value => value || <span className="integration-capabilities-empty">{TEXT.empty}</span>;
  const ROWS = [["mode", badges(modes, TEXT.mode)], ["plan", text(plan)], ["lifecycle", badges(lifecycle, TEXT.lifecycle)], ["automation", badges(automation, TEXT.automation)], ["fetch", badges(fetch, TEXT.fetch)], ["capabilities", badges(capabilities, TEXT.capabilities)], ["memo", text(memo)]];
  return <div className="integration-capabilities">
      <dl className="integration-capabilities-list">
        {ROWS.map(([key, value]) => <div className="integration-capabilities-row" key={key}>
            <dt>{TEXT.rows[key]}</dt>
            <dd>{value}</dd>
          </div>)}
      </dl>
    </div>;
};

## 連携仕様

<IntegrationCapabilities modes="API Key" lifecycle="provisioning, delete" fetch="User, Mail, Status" capabilities="device-aggregation" memo="App ID / App Access Key は IBM サポートへ申請して発行を受ける必要があります。" />

## 事前準備

### アクセスキーの取得方法

1. [https://login.maas360.com/](https://login.maas360.com/) にログインします。

2. ログイン後、ブラウザのアドレスバーに表示されるURLを確認します。表示されたホスト名（例: `m4.maas360.com`）が、後述の**Base URL**として使用する値です。

   <img src="https://mintcdn.com/moneyforwardi/kA0FOnY0Q_PV5C1Z/images/integrations/ibm-maas360/login-baseuri.png?fit=max&auto=format&n=kA0FOnY0Q_PV5C1Z&q=85&s=fb5d4b0d249c4f6fa4c622ccbe3d135c" alt="ログイン後のアドレスバーに表示されるホスト名の例" width="750" height="110" data-path="images/integrations/ibm-maas360/login-baseuri.png" />

3. **Setup**（設定） > **Web Services API**（Webサービス API） > **Manage Access Key**（アクセスキーの管理） の順に進み、**Generate Access Key**（アクセスキーを生成）をクリックします。

4. **Type**（種類）で「MaaS360 Web Services」を選択し、任意の**Key Name**（キー名）を入力して**Generate**（生成）をクリックします。

   <img src="https://mintcdn.com/moneyforwardi/kA0FOnY0Q_PV5C1Z/images/integrations/ibm-maas360/manage-access-key.png?fit=max&auto=format&n=kA0FOnY0Q_PV5C1Z&q=85&s=fb9d1133dddbd55b88e53a6c4defecc6" alt="Generate Access Keyダイアログ" width="1920" height="578" data-path="images/integrations/ibm-maas360/manage-access-key.png" />

5. 発行された**App ID**（アプリID）・**App Access Key**（アプリアクセスキー）を、それぞれ後述の**クライアントID**・**クライアントシークレット**として使用します。

## インテグレーションのセットアップ

1. インテグレーション画面にて**IBM MaaS360**を検索します。

2. 以下を入力し、**連携する**をクリックします。

   * 手順2で確認したホスト名を含む**Base URL**
   * 前の手順で取得した**クライアントID**・**クライアントシークレット**
   * MaaS360にログインする際の**ユーザー名**・**パスワード**

   <img src="https://mintcdn.com/moneyforwardi/kA0FOnY0Q_PV5C1Z/images/integrations/ibm-maas360/integrate-workspace.png?fit=max&auto=format&n=kA0FOnY0Q_PV5C1Z&q=85&s=afc5a85adc85d3afa3d2a7aa7332991a" alt="連携設定画面" width="648" height="1240" data-path="images/integrations/ibm-maas360/integrate-workspace.png" />

3. IBM MaaS360との連携が成功すると、アカウント一覧に登録済みのユーザー情報が表示されます。正常に完了しない場合は、まず [SaaSとの連携に失敗する場合の対処法](/it-management/saas-management/93nahw45is-trouble) に記載のステップをお試しください。それでも解決しない場合は、[ご提供いただきたい情報](/it-management/saas-management/93nahw45is-trouble#info-to-provide) をご確認のうえ、[サポート窓口](/contact-support)までお問い合わせください。

## MDM連携

デバイス管理機能をご利用の場合、IBM MaaS360とのデバイス同期が可能です。詳細は[4-0.MDM連携に対応SaaSとデバイスを連携する](/it-management/device/k1u975zc6h-mdm)をご覧ください。

<Info>
  IMEI/ESNが取得できないデバイス（Windows / Mac等）は、シリアル番号欄にUDIDが設定されます。当サービス側に事前登録した実際のシリアルナンバーとは一致しないため、既存デバイスとはマージされず新規登録されます。

  デバイス名が空のレコードは同期対象外となり、スキップされます。
</Info>

### 同期対象の項目

| 当サービス側の項目      | 同期パターン      | IBM MaaS360側                            | 補足事項                                                                                                                 |
| -------------- | ----------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| 資産番号           | (2)当サービスベース | `ibm-maas360_<デバイス名>`                   | 新規登録時のみ採番。重複した場合は `_1` などのサフィックスがつきます。                                                                               |
| モデル名           | (2)当サービスベース | Model (model)                           |                                                                                                                      |
| シリアルナンバー(IMEI) | (1)MDMベース   | IMEI/ESN (imeiEsn)。無い場合はUDID (udid)     | マージキーです。IMEI/ESNが無いデバイス（Windows/Mac等）はUDIDがシリアル番号欄に入るため、当サービス側に事前登録した実シリアル番号とは一致せず、新規登録になります。                        |
| Email          | (2)当サービスベース | Username / Email Address (emailAddress) | 従業員が未割り当てのデバイスのみ、メールアドレス一致で従業員に自動紐付けします（シリアル番号が空のデバイスは対象外）。                                                          |
| 種別             | (2)当サービスベース | Device Type (deviceType) の文言から判定        | "phone"→スマートフォン、"laptop"→ラップトップPC、"tablet"→タブレット、"desktop"→デスクトップPC、それ以外→その他（先に一致したキーワード優先。例: "Smartphone"はスマートフォン）。 |
| ステータス          | (2)当サービスベース | Email Address (emailAddress) の有無で判定     | メールアドレスがあれば「利用」、無ければ「在庫」になります。                                                                                       |
| 電話番号           | (1)MDMベース   | Phone Number (phoneNumber)              |                                                                                                                      |
| 製造元            | (1)MDMベース   | Manufacturer (manufacturer)             |                                                                                                                      |
| OS             | (1)MDMベース   | OS Name (osName)                        |                                                                                                                      |
| バージョン          | (1)MDMベース   | OS Version (osVersion)                  |                                                                                                                      |
| ホスト名           | (1)MDMベース   | Device Name (deviceName)                | デバイス名が空のレコードは同期対象外（スキップ）になります。                                                                                       |
| 最終利用(MDM)      | (1)MDMベース   | Last Reported (lastReported)            | MDM連携開始時に自動作成される項目です。                                                                                                |
| MDMリンク         | (1)MDMベース   | -                                       | デバイスURLを設定していないため、「MDMで開く」リンクは空になります。                                                                                |
| 管理対象           | (1)MDMベース   | Managed Status (maas360ManagedStatus)   | "Enrolled" / "Activated" の場合はManaged、それ以外（Not Enrolled, Control Removed, Inactive等）はUnmanagedになります。                  |
| 管理対象           | (3)MDM項目    | 管理対象：MDM有効                              |                                                                                                                      |
