---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# GitHub アプリの OAuth 2.0 認証情報 - JWT

# GitHub アプリの OAuth 2.0 認証情報 - JWT {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：12分

JWT ベアラートークンを使用して GitHub アプリを統合するには、次の手順を実行します。

事前準備

必要なロール：

* oauth_admin DevOps チェンジベロシティ。
* GitHub のアドミンアカウント。

{#dev-ops-github-apps-oath-jwt__ul_rxd_mpy_jsb}  
注:  
GitHub Enterprise Server (オンプレミスインスタンス) の場合、MID サーバーを使用して接続している場合、OAuth はサポートされません。

## GitHub アカウント (JWT) での GitHub アプリの構成 {#ariaid-title2}

GitHub アカウントからカスタム GitHub アプリを作成し、ServiceNow インスタンスで OAuth 2.0 認証を有効にします。

### 始める前に

GitHub 要件: GitHub と統合するように構成されたアプリ ServiceNow

必要なロール：インスタンスロールは不要

### このタスクについて

GitHub アカウントから、次の手順を完了します。「」を参照してください。 [建物 GitHub アプリ](https://developer.github.com/apps/building-github-apps/) カスタムアプリケーションの作成と構成の手順については、 GitHub 開発者サイトを参照してください。

### 手順

1. GitHub アカウントから、次の場所に移動して GitHub アプリを作成します 開発者設定GitHub アプリ.
2. \[ホームページ URL (Homepage URL)\] フィールドに「<kbd class="ph userinput">https://&lt;instance-name&gt;.service-now.com</kbd>」と入力します。
3. \[ユーザー認証コールバック URL (User authorization callback URL)\] フィールドに、「<kbd class="ph userinput">https://&lt;instance-name&gt;.service-now.com/oauth_redirect.do</kbd>」と入力します。
4. \[ユーザーの識別と認証 (Identifying and authorizing users)\] セクションで、\[ユーザー認証トークンの有効期限 (Expire user authorization tokens)\] フィールドの選択を解除します。
5. \[Webhook\] セクションで、\[アクティブ\] フィールドを選択します。
6. \[Webhook URL\] フィールドに「<kbd class="ph userinput">https://&lt;instance-name&gt;.service-now.com/api/sn_devops/v2/devops/tool/apps?toolId=&lt;Tool ID&gt;</kbd>と入力します。ここで、ツール ID は\<c3/\>からの\<c2/\>ツール ID (sys_id) です。GitHubDevOps チェンジベロシティ  
   注:  
   ツールを新しく作成していて、ツール ID がない場合は、ツール ID なしで Webhook URL を入力し、後で構成できます。後で構成するには:
   1. 接続されたツールのツールレコードページに移動します。
   2. \[ GitHub アプリの構成\] を選択し、 \[ 既存のトークンを使用して自動構成\] を選択します。

   {#dev-ops-config-github-acct-jwt__ol_nmg_pk4_ybc}これにより、GitHub アプリの Webhook URL が自動的に構成されます。  
   ツール ID は、次のいずれかの方法で取得できます。
   * DevOps チェンジベロシティ でツールに接続しているときに、ページ URL でツール ID を使用できます。例: `https://<instance-name>.service-now.com/.../sn_devops_tool/<Tool ID>/...`。
   * Webhook URL は、DevOps チェンジベロシティ の GitHub ツールレコードページからコピーできます。 Configure (構成)手動で構成Webhook URL.
   {#dev-ops-config-github-acct-jwt__ul_qbv_2j4_ybc}
7. 残りのフィールドは空のままにします (デフォルト)。
8. \[リポジトリの権限 (Repository permissions)\] セクションで、次の設定を構成します。  

   |-|-|
   | アクション | 読み込み専用 |
   | チェック | 読み込み専用 |
   | コンテンツ | 読み込み専用 |
   | 展開 | 読み取りと書き込み |
   | 環境 | 読み込み専用 |
   | メタデータ | 読み込み専用 |
   | プル要求 | 読み込み専用 |
   | シークレット | 読み込み専用 |
   | Webhook | 読み取りと書き込み 注: ServiceNow から Webhook を構成するには、読み取りおよび書き込み権限が必要です。 |
   [ ]

   {#dev-ops-config-github-acct-jwt__table_j5m_wcs_4mb}  
   注:  
   すでに GitHub アプリを使用していて、いずれかの権限を更新する場合は、GitHub アプリのそれらの権限を確認して受け入れる必要があります。アプリに移動して、\[構成\] \> \[レビュー要求\] \> \[新しい権限を承認 (Accept new permissions)\] を選択できます。
9. 残りの権限は <kbd class="ph userinput">[アクセスなし]</kbd> (デフォルト) のままにします 。
10. \[イベントのサブスクライブ (Subscribe to events)\] セクションで、\[展開保護ルール (Deployment protection rule)\] オプションを選択します。
11. 変更内容を保存します。
12. GitHubアプリを作成したら、新しい秘密鍵を生成してマシンに保存します。
13. 新しく作成した GitHub アプリを選択したアカウントにインストールします。
    1. GitHub アプリの設定ページからアプリを選択します。
    2. 左のサイドバーで、\[アプリのインストール (Install App)\] を選択します。
    3. 正しいリポジトリを含む組織または個人アカウントの横にある \[インストール\] を選択します。
    4. すべてのリポジトリまたは選択したリポジトリにアプリをインストールします。  
       詳細については、「[GitHub アプリのインストール](https://docs.github.com/en/developers/apps/managing-github-apps/installing-github-apps)」を参照してください。
    {#dev-ops-config-github-acct-jwt__substeps_v31_znx_qvb}

## DevOps プロパティにクライアント ID を追加 {#ariaid-title3}

GitHub アプリを構成したら、クライアント ID プリフィックス (ID の最初の 3 文字以上) が DevOps プロパティに追加されていることを確認する必要があります: GitHub アプリのクライアント ID 指定子。

### 始める前に

必要なロール:sn_devops.admin

### 手順

1. 移動先 ワークスペースDevOps 変更ワークスペース管理システム構成プロパティ.
2. アプリケーションスコープを DevOps データモデルに変更します。
3. プロパティを検索します: GitHub アプリのクライアント ID 指定子 \[sn_devops.github_oauth_client_id_specifier\]。
4. GitHub アプリのクライアント ID プレフィックス (ID の最初の 3 文字以上) をプロパティに入力します。
5. \[保存\] を選択します。

## の Java KeyStore 証明書の生成 GitHub {#ariaid-title4}

JWT 認証用の Java KeyStore (JKS) 証明書を生成します。

### 始める前に

必要なロール：admin

### 手順

1. GitHub アプリの秘密鍵を使用して、CA 署名済み証明書を作成します。  

       openssl req -new -x509 -key <file-name>.pem -out <certificate-name>.pem -days 1095

2. 必要な詳細を入力します。
3. GitHub アプリの秘密鍵と CA 署名済み証明書を使用して、PKCS 12 ファイルを作成します。  

       openssl pkcs12 -export -in <certificate-name>.pem -inkey <file-name>.pem -certfile <certificate-name>.pem -out <PKCS-12-file-name>.p12 

4. エクスポートパスワードを入力します。
5. JKS ファイルを作成します。  

       keytool -importkeystore -srckeystore <PKCS-12-file-name>.p12 -srcstoretype pkcs12 -destkeystore <JKS-certificate-filename>.jks -deststoretype JKS

6. 宛先とソースのキーストアのパスワードを入力します。
{#dev-ops-generate-jks-cert-github__steps_jhr_rpr_4mb}

## GitHub Java KeyStore 証明書をインスタンスに添付する {#ariaid-title5}

有効な GitHub Java KeyStore (JKS) 証明書を ServiceNow インスタンスに添付して、JWT ベアラー権限許可トークン認証を有効にします。

### 始める前に

有効な Java KeyStore 証明書が利用可能であることを確認します。

必要なロール：admin

### 手順

1. 移動先 すべてシステム定義証明書.
2. \[新規\] を選択します。
3. フォームのフィールドに入力します。  
   {#dev-ops-attach-jks-cert-github__table_hvh_4tt_xgb__entry__2}

   | フィールド | 説明 |
   |-|-|
   | 名前 | レコードを一意に識別する名前。たとえば、 <kbd class="ph userinput">My GitHub App Certificate</kbd> です。 |
   | 有効期限切れを通知する | 証明書の有効期限が切れたときに通知するユーザーを指定するオプション。 |
   | 有効期限切れ前に警告 | 証明書の有効期限が切れる前に通知を送信する日数。 |
   | アクティブ | 証明書を有効にするオプション。 |
   | タイプ | 証明書のタイプを選択するオプション。\[Java キーストア\] を選択します。 |
   | 数日中に期限切れ | 証明書の有効期限が切れるまでの日数。 |
   | キーストアパスワード | 証明書に関連付けられたパスワード (ヒント：以前に作成した宛先キーストアのパスワード)。 |
   | 簡単な説明 | 証明書の概要です。 |
   [表 : 1. X.509 証明書フォームのフィールド]

   {#dev-ops-attach-jks-cert-github__table_hvh_4tt_xgb}
4. 添付ファイルアイコン ( ![添付ファイルアイコン]()) を選択し、JKS 証明書を添付します。
5. \[ストア/証明書を検証\] を選択します。
{#dev-ops-attach-jks-cert-github__steps_ifm_5dw_bhb}

## GitHub JKS 証明書の JWT 署名キーの作成 {#ariaid-title6}

GitHub Java KeyStore 証明書にアサインする JSON Web トークン (JWT) 署名キーを作成します。

### 始める前に

必要なロール:admin、sn_devops.admin

### 手順

1. 移動先 すべてシステム OAuthJWT キー.
2. \[新規\] を選択します。
3. フォームのフィールドに入力します。  
   {#dev-ops-create-jwt-key-github__table_jky_dk5_xgb__entry__2}

   | フィールド | 説明 |
   |-|-|
   | 名前 | JWT 署名キーを一意に識別する名前です。例: <kbd class="ph userinput">My GitHub App JWT Key</kbd>。 |
   | 署名キーストア | 前のタスクで添付された有効な JKS 証明書です。たとえば、 <kbd class="ph userinput">My GitHub App Certificate</kbd> です。 |
   | キー ID | 複数のキーを使ってトークンに署名する際に、どのキーを使用するかを識別する一意の ID。 |
   | 署名アルゴリズム | JWT キーで署名するアルゴリズム (ヒント:RSA 256)。 |
   | 署名キーパスワード | 署名キーに関連付けられたパスワード (ヒント:以前に作成したソースキーストアのパスワード)。 |
   | アクティブ | キーを有効にするオプション。 |
   [表 : 2. JWT キーフォームのフィールド]

   {#dev-ops-create-jwt-key-github__table_jky_dk5_xgb}
4. \[送信\] を選択します。
{#dev-ops-create-jwt-key-github__steps_zjg_4tr_4mb}

## GitHub署名キーの JWT プロバイダーの作成 {#ariaid-title7}

GitHub の ServiceNow インスタンスに JSON Web トークン (JWT) プロバイダーを追加します。

### 始める前に

必要なロール:admin、sn_devops.admin

### 手順

1. 移動先 すべてシステム OAuthJWT プロバイダー.
2. \[新規\] を選択します。
3. フォームのフィールドに入力します。  
   {#dev-ops-create-jwt-prov-github__table_l5g_3m5_xgb__entry__2}

   | フィールド | 説明 |
   |-|-|
   | 名前 | JWT プロバイダーを一意に識別する名前。例: <kbd class="ph userinput">My GitHub App JWT Provider</kbd>。 |
   | 有効期限の間隔 (秒) | JWT プロバイダートークンの有効期間を設定する秒数 (ヒント:デフォルトのままにしておくことができます)。 |
   | 署名構成 | 以前に作成された有効な JWT 署名キー。例: <kbd class="ph userinput">My GitHub App JWT Key</kbd>。 |
   [表 : 3. JWT プロバイダーフォームのフィールド]

   {#dev-ops-create-jwt-prov-github__table_l5g_3m5_xgb}
4. フォームヘッダーを右クリックし、\[保存\] を選択します。
5. \[標準要求\] 関連リストに、GitHub アプリのアプリ ID (GitHub の GitHub アプリ構成の \[バージョン情報\] セクションで利用可能) を iss 要求の値として入力します。
6. aud と sub の値は空白のままにします (デフォルト)。
{#dev-ops-create-jwt-prov-github__steps_ung_p5r_4mb}

## OAuth プロバイダー (JWT) として GitHub を登録 {#ariaid-title8}

GitHub アプリアカウントの構成中に生成された情報を使用し、GitHub を OAuth プロバイダーとして登録して、インスタンスが OAuth 2.0 トークンを要求できるようにします。

### 始める前に

必要なロール:admin、sn_devops.admin

### 手順

1. 移動先 すべてシステム OAuthアプリケーションレジストリ.
2. \[新規\] を選択します。  
   「OAuth アプリケーションの種類は？」というメッセージが表示されます。
3. \[サードパーティ OAuth プロバイダーに接続します\] を選択します。
4. フォームのフィールドに入力します。  
   {#dev-ops-reg-github-oauth-prov-jwt__table_fd2_2xr_4mb__entry__2}

   | フィールド | 説明 |
   |-|-|
   | 名前 | レコードを一意に識別する名前。たとえば、「 <kbd class="ph userinput">My GitHub App Provider</kbd>」と入力します。 |
   | クライアント ID | GitHub アプリのクライアント ID (ヒント:GitHub の GitHub アプリ構成の \[バージョン情報\] セクションで利用可能)。 |
   | クライアントシークレット | GitHub アプリのクライアントシークレット (ヒント:GitHub の GitHub アプリ構成の \[バージョン情報\] セクションで利用可能)。 |
   | OAuth API スクリプト | 修正済み OAuthUtil スクリプトインクルードを参照できるようにするオプション。\[OAuthDevOpsGitHubJWTHandler\] を選択します。 |
   | デフォルトの権限許可タイプ | アプリケーションレジストリに関連付けられた権限許可のタイプ。\[JWT ベアラー\] を選択します。 |
   | トークン URL | トークンを取得および更新するためにインスタンスが使用するトークンエンドポイントの場所。 クラウドバージョンの場合は、「 <kbd class="ph userinput">https://api.github.com/app/installations/&lt;installation_id&gt;/access_tokens</kbd>」と入力します。 Enterprise バージョンの場合は、「 <kbd class="ph userinput">https://&lt;HOST_URL&gt;/api/v3/app/installations/&lt;installation_id&gt;/access_tokens</kbd>」と入力します。 インストール ID については、GitHub の GitHub アプリ構成の \[アプリのインストール\] セクションに移動し、歯車アイコンを選択してアプリを構成します。インストール ID は Web ページの URL に含まれます。たとえば、https://github.com/settings/installations/\<installation_id\> などです。 |
   [表 : 4. アプリケーションレジストリフォームのフィールド]

   {#dev-ops-reg-github-oauth-prov-jwt__table_fd2_2xr_4mb}
5. フォームの残りのフィールドはデフォルトのままにします。  
6. フォームヘッダーを右クリックし、\[保存\] を選択します。
7. \[OAuth エンティティプロファイル\] 関連リストに作成されたデフォルトプロファイルを開きます。
8. 以前に作成した JWT プロバイダーを \[JWT プロバイダー\] フィールドに入力し、フォームを保存します。
9. \[ Key Management\] \> \[モジュールアクセスポリシー\] \> \[All\] に移動します。
10. \[暗号化モジュール (Crypto module)\] フィールドの値としてcom_snc_platform_security_oauth_glideencrypterポリシーを選択し、\[ターゲットスクリプト (Target script)\] フィールドの値として \[スクリプトインクルード:OAuthDevOpsGitHubJWTHandler\] を選択します。
11. \[ 結果 \] フィールドが \[ 追跡\] に設定されていることを確認し、変更を保存します。  
{#dev-ops-reg-github-oauth-prov-jwt__steps_ed2_2xr_4mb}

## GitHubアプリプロバイダー (JWT) の認証情報レコードの作成 {#ariaid-title9}

アクションを許可するために、以前に作成した GitHub アプリプロバイダーに認証情報レコードを作成します。

### 始める前に

必要なロール:admin、sn_devops.admin

### 手順

1. 移動先 すべて接続 \& 認証情報認証情報.
2. \[新規\] を選択します。  
   「作成する認証情報のタイプは?」というメッセージが表示されます。
3. \[OAuth 2.0 認証情報\] を選択します。
4. フォームのフィールドに入力します。  
   {#dev-ops-create-cred-github-jwt__table_sxv_zgp_gfb__entry__2}

   | Field (フィールド) | 必要な値 |
   |-|-|
   | 名前 | レコードを一意に識別する名前。たとえば、「 <kbd class="ph userinput">My GitHub App Credential</kbd>」と入力します。 |
   | アクティブ | レコードを有効にするオプション。 |
   | OAuth エンティティプロファイル | アプリケーションレジストリに作成されたデフォルトの OAuth エンティティプロファイル。 |
   [表 : 5. OAuth 2.0 認証情報フォームのフィールド]

   {#dev-ops-create-cred-github-jwt__table_sxv_zgp_gfb}
5. レコードを保存します。
6. \[ OAuth トークンを取得 \] 関連リンクを選択して、OAuth トークンを生成します。
{#dev-ops-create-cred-github-jwt__steps_o5h_52j_qfb}
**関連概念**   

* [GitHub Actions構成](https://servicenow-prod.fluidtopics.net/Ikv9aMPIyISZ1YQdAtoH~Q#github-actions-integration-with-devops "シークレット、ワークフロー、制限など、 GitHub Actionsに関する構成情報。")
* [GitHub マーケットプレイスの ServiceNow DevOps カスタムアクション](https://servicenow-prod.fluidtopics.net/BLZBEZcnY8xw78JBsvkMxQ#servicenow-devops-custom-actions-from-github-marketplace "GitHub マーケットプレイスのカスタムアクションを使用して、SonarQube スキャンデータ、セキュリティデータの収集、ワークフローの一時停止または再開、インスタンスで変更要求が承認または却下されるまでのワークフローの再開、変更要求の詳細の取得と更新などを行います。")  
**関連タスク**   

* [ServiceNow DevOps 変更の GitHub 展開ゲート](https://servicenow-prod.fluidtopics.net/LqZvUmzJW6~u0GiQRxtU2g "GitHub デプロイメントゲート機能を使用して、新しいデプロイを続行するか停止するかを決定します。")

