サードパーティトークンを受け入れるための OAuth OIDC プロバイダーの構成

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:8分
  • 受信 API 呼び出しまたはシングルサインオン (マルチプロバイダー SSO) を使用して OAuth OIDC プロバイダーを構成し、サードパーティ OIDC プロバイダーによって生成された ID トークンを受け入れるように設定できます。

    始める前に

    必要なロール:admin

    このタスクについて

    ServiceNow AI Platform は、受信 API 呼び出しに加えて、外部シングルサインオン (SSO) 実装を通じて OIDC をサポートします。OIDC プロバイダー構成の例については、「Azure AD の設定」を参照してください。OIDC プロバイダー構成の SSO 固有の例については、「「Create an OpenID Connect (OIDC) configuration for Single Sign-On (SSO) (シングルサインオン (SSO) 用の OpenID Connect (OIDC) 構成の作成)」を参照してください。

    手順

    1. 移動先 すべて > システム OAuth > アプリケーションレジストリー.
      • [新規] を選択し、[ID トークンを検証するために OIDC プロバイダーを構成します] を選択して、フォームに記入します。
      • 既存のテンプレートを OIDC プロバイダー (ADFS、Auth0、Azure AD、Google、Okta) に選択して、フォームに入力します。
        注:
        OIDC プロバイダテンプレートは、デモデータを OAuth 2.0 プラグインを使用してロードした後に利用できます。
      フィールド 説明
      名前 OAuth OIDC エンティティを識別する一意の名前。
      クライアント ID サードパーティの OAuth OIDC サーバーに登録されているアプリケーションのクライアント ID。この値は、JWT トークンの aud 要求の値と同じにする必要があります。
      OAuth API スクリプト 外部 OAuth プロバイダーへの要求および応答のカスタマイズに使用されるスクリプト
      OAuth OIDC プロバイダ設定 OIDC プロバイダー (ADFS、Auth0、Azure AD、Google、Okta) を使用して、JWT トークンを検証できます。OIDC プロバイダー構成のレコードを選択して、[ユーザー要求][ユーザーフィールド] が適切に設定されていることを検証します。
      また、以下のフィールドに入力してください。
      • JTI 要求検証を有効化:有効にすると、プロバイダーによって送信された JTI も ServiceNow JWT トークン検証で検証されます。
      • OIDC メタデータ URL:OIDC プロバイダーの既知の構成の詳細。
      注:
      検証がチェックされない場合、jti が JWT トークンに存在するかどうかにかかわらず、検証できなくなります。トークン内の要求名は jti である必要があります。
      クロックスキュー 制約が有効と見なされる秒数。デフォルトは 300 です。
      トークン制限の適用 認証プロファイルを有効にするように設定された API でのみトークンの使用を有効にする場合に選択します。API アクセスポリシーを使用してアクセス許可を設定できます。詳細については、「REST API アクセスポリシーの作成」を参照してください。

      デフォルト:未選択。

      アクティブ チェックボックスをオンにすると、OAuth アプリケーションがアクティブになります。
      クライアントタイプ クライアントのタイプに基づいて、クライアントタイプを選択します。オプション:
      • iFrame 埋め込み
      • ユーザーとして連携
      • サービスとして連携
      詳細については、「OAuth および SSO レコードのクライアントタイプの構成」を参照してください。
    2. [送信] を選択します。
      レコードは、アプリケーションレジストリー [oauth_entity] テーブルに保存されます。
      インスタンスがトークンと認証コードを発行すると、アプリケーションレジストリ [oauth_entity] テーブルに、外部 OIDC プロバイダータイプのレコードが作成されます。詳細については、を参照してください。
    3. オプション: レコードの OAuth エンティティプロファイルの関連リストに移動し、スコープのない新規 OAuth プロバイダーのシステム生成デフォルトプロファイルを検証します。
      名前、権限許可タイプ、OAuth スコープなどの OAuth プロバイダープロファイルを変更または追加できます。
    4. オプション: レコードの OAuth エンティティスコープの関連リストに移動し、この OAuth プロバイダーで利用可能なすべての OAuth スコープを定義します。
      定義されたスコープは、プロファイルを作成または更新するときに選択できます。定義された各 OAuth スコープには、読み取りスコープや書き込みスコープなど、プロバイダーの仕様からの取得が必要な名前とスコープが含まれています。各スコープは個別に定義する必要があります。
    5. オプション: ユーザープロビジョニングレコードの関連リストに移動して、自動ユーザープロビジョニングを有効にします。
      オプション説明
      ユーザーを自動プロビジョニング ユーザーの強制認証を有効にするオプション。
      データソースをプロビジョニング OIDC トークンを ServiceNow ユーザーに変換するために使用するデータソース。ルックアップリストを使用して、事前定義されたデータソーステンプレートを選択し、レコードを開いて変換テーブルのマッピングを構成します。変換マッピングを構成する際に、ソースフィールドは JWT tokenから取得され、ターゲットフィールドは sys_user テーブルから取得されます。
      プロビジョニングされたユーザーに適用されるユーザーロール 新しくプロビジョニングされた ServiceNow ユーザーに適用されるユーザーロール。

    以下に REST API 呼び出しを呼び出す cURL 要求の例を示します。

    REST API 呼び出しを呼び出します。

    次の手順を実行します。

    • OpenID Connect プロバイダーにアプリを登録します。
    • OAuth OIDC エンティティを構成します。
    • OIDC プロバイダーを構成します。
      表 : 1. OIDC プロバイダー
      OIDC プロバイダー OIDC プロバイダーの名前。
      OIDC メタデータ URL OIDC メタデータ URL (既知の構成 URL) を指定します。この情報を使用して、 jwks エンドポイントからトークンを検証するための公開鍵をフェッチします。
      ユーザー要求 ユーザーテーブルに対して検証される要求。
      ユーザーフィールド ユーザーレコードを識別するユーザー要求。
      JTI 要求検証を有効化 有効にすると、ServiceNow JWT トークン検証により、プロバイダーから送信された JTI も検証されます。
      注:
      検証がチェックされない場合、jti が JWT トークンに存在するかどうかにかかわらず、検証できなくなります。トークン内の要求名は jti である必要があります。この情報は、リプレイ攻撃を防ぐために使用されます。
    • JWT トークンを取得します。
    • REST API 呼び出しを呼び出します。
      • テーブル API またはスクリプト Web サービスにアクセスするための認証ヘッダーの ID トークン。
        curl -X GET --header "Accept:application/json" https://<instance_name>.service-now.com/api/now/table/incident/897b04f2dbd4a300a135364e9d961952 -k 
        --header "Authorization: Bearer eyJraWQiOiJjNTZtZTlXU0xPVnY3UFMwcTg4Qzl1b0lzNjFQYTdmUG4yZFVFOW9RNUg4IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIwMHVnZDg1OD
        VkczI1WXpUSjBoNyIsIm5hbWUiOiJpbXJhbiBhbGkiLCJsb2NhbGUiOiJlbi1VUyIsImVtYWlsIjoiaW1yb241NDNAZ21haWwuY29tIiwidmVyIjoxLCJpc3MiOiJodHRwczovL2Rldi05MzQ
        xMjEub2t0YXByZXZpZXcuY29tIiwiYXVkIjoiMG9hZ2Q4bzk3a2lCT3dwd0IwaDciLCJpYXQiOjE1Mzc5MzMzMjYsImV4cCI6MTUzNzkzNjkyNiwianRpIjoiSUQueThVdXpWNUg2bm16SzRs
        OTI1RFVrQnJoR1o1MmJzVVpGVHRVTEphQjg3ayIsImFtciI6WyJwd2QiXSwiaWRwIjoiMDBvZ2Q4NTgycEFqZDZTemcwaDciLCJub25jZSI6InNub3ciLCJwcmVmZXJyZWRfdXNlcm5hbWUiO
        iJpbXJvbjU0M0BnbWFpbC5jb20iLCJnaXZlbl9uYW1lIjoiaW1yYW4iLCJmYW1pbHlfbmFtZSI6ImFsaSIsInpvbmVpbmZvIjoiQW1lcmljYS9Mb3NfQW5nZWxlcyIsInVwZGF0ZWRfYXQiOj
        E1Mzc5MzAxOTcsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdXRoX3RpbWUiOjE1Mzc5Mjk2NjF9.OG87SYxWFgHGlhBYby2H79diRm9rlYZTeEkIINRUatwg-p4739htB8xEY-5_t6yU_6k5w1
        0pdgtt5M5QFZRPXVbQZNoGtY-Bxn0BjaimcFgoWfhY_0ldnGTkzN2RYyIHvrf9-yhxg347zvczmLrgMMa_VwG4rxrtE6rUXaIpIeIK5b-Deq8ADz8UTUTKpF_5RWk4X-oh5xK6BLniFHk4ShO
        Zq2v_mjproXwKk5euJKrVrar2lQ4adZCOSTRuTf3ThMO5WDh0sel-82LngXtLzRJJ51IqxAsXns0kJHLLqLtH1hXNRKfwT1ScQoE_OfWm4t0KryI2j4wSMEanFtLXIw"
      • ユーザーが認証されると、有効なアプリケーション/json 応答が返されます。そうでない場合は、「ユーザーが認証されていません」という エラーメッセージが返されます。
        User Not Authenticated
        {"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}