スキップしてメイン コンテンツに移動

Omnissa IntelligenceのカスタムコネクタでRedmineのチケット作成を自動化

 

今回はOmnissa Intelligenceのカスタムコネクタを使用してRedmineと連携し、Workspace ONE UEM上の情報をトリガーにRedmineにチケットを起票するところまでを自動化してみたいと思います。

大まかな流れは以下の通りです。
    1.カスタムコネクタの作成
    2.カスタムの自動化アクションを作成
    3.カスタムコネクタを使用したワークフローの作成
    4.動作確認


1.カスタムコネクタの作成

Intelligenceの管理コンソールのメニューから「統合」をクリックします。


左側のメニューから「ワークフローコネクタ」をクリックします。


「追加」をクリックします。
【補足】
デフォルトではビルトインのUEMコネクタやIntelligenceコネクタしかありませんが、カスタムコネクタでは任意のシステムと連携するためのコネクタを自作することができます。


「カスタムコネクタ」タブをクリック後、以下を設定して「設定」をクリックします。
 -名前:任意の名前
 -Base URL:連携先システムのURL
 -Auth Type:認証方法を選択(今回はAPIのクエリ内にAPIキーがあり、認証が不要なシステムのため”No Authentication”)


カスタムコネクタが作成されました。コネクタを作成するだけであれば大した作業ではありませんが、この時点ではアクションが何も存在しないためコネクタができたというだけですので、カスタムのアクションを自分で作成してインポートしてあげる必要があります。
次章でカスタムのアクションを作成します。



2.カスタムの自動化アクションを作成

カスタムコネクタを利用するにあたっての唯一にして最大の山場が自動化アクションの作成です。ここでは例として「Redmineにチケットを起票する」という自動化アクションを作成してみます。

Postmanを起動し、+マーク⇒「Blank Collection」をクリックします。


Collectionに適当な名前を設定して「Add a request」をクリックします。


まずはリクエストの名前を設定し、その他連携先のサービスのAPI実行に必要なパラメータをすべて設定します。
例として、今回RedmineのAPI実行に必要になる設定は以下の通りでしたが、この設定は連携先のサービスごとに異なるため、初めて設定する際は色々試行錯誤が必要になるかもしれません。
 -Request type:POST
 -URL:https://RedmineのFQDN/issues.json?key=[Redmine側のAPIキー]


「Headers」タブで以下を設定します。
 -KEY:Content-Type
 -VALUE:application/json


続いて、「Body」タブで以下を設定します。
 -Rowにチェック
 -データとして以下を設定(Redmineに対してAPIで作成するチケットの中身の設定)
当然ですが、各種idや値などは設定したい内容に応じて異なります。
-----------------
{
    "issue": {
        "project_id": 1,
        "subject": "Created by Postman",
        "tracker_id": 3,
        "status_id": 1,
        "description": ""
    }
}
-----------------


すべての設定が整ったら、いざ「Send」をクリックします。


まずは、「Status」でエラーコードが返ってきていないことを確認し、「Body」タブでレスポンスの中身も確認しておきます。今回はBodyに実行結果の内容が表示されているので、ここからも成功していることがわかります。
リクエストが成功したら、右上の「Save Reponse」をクリックします。
【補足】
レスポンスを保存しておかないと、Intelligenceでの設定時にエラーとなるため、必ず実行後は保存しておきます。


「Save」をクリックしてRequestも保存しておきます。


作成した「Collection」をエクスポートするため、対象のCollectionの三点マークをクリック後、「Export」をクリックします
【補足】
直前に保存したのは「Request」で、いくつかのRequestをひとまとめにしたものが「Collection」です。Exportは「Collection」に対して実行します。


デフォルト(Collection v2.1)のまま「Export」をクリックします。


エクスポートした後は、JSONファイルを少し編集します。
テキストファイルでPostmanからエクスポートしたJSONファイルを開き、Request名に当たる箇所の下に1行追加し、以下を入力します。
-------------
“id” : “一意の値” 
-------------
【補足】
idを追加しない状態でIntelligenceにアップロードするとエラーになります。
また、今回は一つのCollection内にリクエストが1つしか存在しないため以下赤枠の箇所にidを追加しただけですが、もしコレクション内に複数のリクエストを含めている場合は、1リクエストごとに1つずつidを追加してあげる必要があります。


次にJSONファイルをアップロードします。Intelligenceの管理コンソールに戻り、先ほど作成したカスタムコネクタの詳細画面から「アクション」タブをクリック後、「お使いのコンピュータから選択します。」のリンクをクリック後、JSONファイルをアップロードします。


先ほどPostmanでエクスポートしたCollectionに含まれるRequestがアクションとして追加されます。
【補足】
「アクション名」に表示される名前はPostmanにて「Request」につけた名前です。
「Collection」は「Request」をひとまとめにしたものと前述しました。
今回はRequestを一つしか作成してないので、アクションも一つしか出来上がりませんが、Collectionに複数のRequestを含めるとアクションも複数出来上がるイメージです。


テスト実行ができるため、追加後は念のため動きを見ておきます。
アクションの「︙」をクリック後、「テスト」をクリックします。


Intelligenceからの実行だとわかるようにSubjectを変更して置き、「テスト」をクリックします。すると「テスト結果を表示」にアクションの実行結果が表示されます。ここでエラーコードが返ってこなければOKです。


Redmine管理コンソールも確認し、Intelligenceに入力した内容でチケットが作成されていることを確認します。
ここまでできれば、あとはIntelligenceのワークフロー機能で、何らかの情報をトリガーにRedmineのチケットを作成することができます。



3.カスタムコネクタを使用したワークフローの作成

山場は越えたので、Custom Connectorを使用したワークフローを作成します。
今回はシナリオとして、「企業情報ワイプを実行したものの、実行が確認されず長期間経過してしまっているデバイスを検出し、デバイスに紐付くユーザーに状況を確認する」というアクションを促すチケットを作成するワークフローを作成してみます。

WS1 UEMでは企業情報ワイプを実行すると、一度デバイスのステータスは「企業情報ワイプ実行待機中」という状態になります。その後デバイス側で企業情報ワイプが実行されたことが管理コンソールに報告されると「加入解除済み」という状態になります。

なので、「企業情報ワイプ実行待機中」のまま長期間経過している状態デバイスは、実際にワイプが実行されたのか(実行されたものの管理コンソールにその状態が連携されていないだけなのか)、実行されないままオフラインになったままなのかが判別できない状態のため、デバイスの状態を確認したほうがよい状況と言えます。


Intelligenceの管理コンソールを開き、「ワークスペース」>「Freestyle」をクリック後、「ワークフローを追加」をクリックします。


データソースは「デバイスデータ」を選択し、トリガールールは以下のように設定します。
 -デバイスタイプ|含む|Desktop
 -加入状態|含む|EnterpriseWipePending
 -最終検出|範囲外|過去28日間


アクションでRedmineのチケット作成を追加して、チケットのSubjectやDescriptionにそれっぽい文言を設定します。
ここでは変数が利用できるため、デバイスフレンドリ名や紐付くユーザー名などを変数で設定しておき、対象が分かりやすいようにしておきます。


最後にワークフローを有効化して。「保存」をクリックします。


「保存して有効化」をクリックします。



4.動作確認

実際に28日待つと時間が掛かってしまうので、今回はたまたま28日以上オフラインのデバイスがあったので、このデバイスに対して企業情報ワイプを実行して疑似的に状況を再現します。


企業情報ワイプを実行後、しばらく待つとワークフローのアクティビティに実行された履歴が表示されます。これは、先ほど設定したトリガールールに合致するデバイスが現れたため、ルールに従いアクションが実行されたためです。


Redmineを見るとIntelligenceのワークフローで設定した内容で自動的にチケットが作成されています。緑枠内は変数指定をしたため、該当するデバイスのフレンドリ名とそのデバイスが紐付くユーザー名が表示されています。


今回はお試しとして疑似的なシナリオを作成してみましたが、Intelligenceのワークフローのトリガーではデバイスの様々な情報をトリガーとすることができるので、柔軟にワークフローを組むことで日々の手動運用の一部を自動化することができるかもしれません。



コメント

このブログの人気の投稿

Workspace ONE Accessに証明書認証でログイン

Workspace ONE AccessではSaaSなどのサービスへのアクセス管理ができますが、クライアント証明書認証の機能も備わっています。 ここでは、Workspace ONE UEMから配信した証明書を使用して、Workspace ONE Accessに証明書認証でログインする、ということをやってみます。 まずは、Workspace ONE UEMコンソールでの作業です。 すべての設定>システム>エンタープライズ統合>Workspace ONE Access>構成 へ移動し、「 エクスポート 」をクリックしてAirWatch認証局のルート証明書をエクスポートします。 次に、Windows向けにWorkspace ONE Access認証用証明書プロファイルを作成してデバイスに対して配信します。 SCEPペイロードを選択し、「 資格情報ソース 」は「 AirWatch認証局 」を選択します。証明書テンプレートは「 証明書(クラウド展開) 」です。 【補足】 上記のプロファイルで配信した証明書は 秘密キーのエクスポートができない ようになっているため、使い回しを防ぐことができます。つまり、私用のデバイスにインポートし直してログインしてしまおう...ということはできない仕組みになっているワケですね。 次はWorkspace ONE Accessの管理コンソールでの作業です。 IDとアクセス管理>管理>認証方法をクリックし、「 証明書(クラウドデプロイ) 」の設定を変更します。(UEMのプロファイルで選択した証明書テンプレートと同じ名前ですね。若干の誤差はありますが...) 始めに、「 証明書アダプタを有効にする 」にチェックを入れ、「 ルートおよび中間CA証明書 」のところには先ほどWorkspace ONE UEMからエクスポートした証明書をアップロードし、「 証明書の失効を有効にする 」にもチェックを入れておきます。 【補足】 公的認証局であっても、ここでルート証明書をアップロードしない限り証明書認証はできないので、今回の例では Workspace ONE UEM内部の認証局から発行されている証明書以外では認証できない 構成にすることができます。 少し下にスクロールして「 OCSPの失効を有効にする 」にチェックを入れ、「 OCSPレスポンダの署名証明書 」には...

Workspace ONE AccessでOpenID Connect連携

Workspace ONE Accessはその名の通りSaaSなどへのアクセス管理をすることができる製品ですが、Identity Providerの役割を果たすことも可能で、以下のフェデレーションプロトコルに対応しています。  -WS-Federation  -SAML  -OpenID Connect WS-FederationはOffice365と連携する際などに利用したりするヤツですね。 個人的な感覚では、クラウドサービスはSAML認証に対応しているものが多いのでWorkspace ONE Accessと認証連携する場合、SAMLを利用するケースが一番多い気がします。 また、設定ガイド( SAML ベース SSO 統合のドキュメント センター )なんかも公開されており、連携のハードルは比較的低いと思います。 一方で、OpenID Connectの利用に関してはかなり情報が少ない気がしてます... ただ、OpenID Connectも認証連携の仕組みとしては代表的なものの一つではありますので、今回はOpenID Connectを使用してWorkspace ONE Accessと認証連携をしてみたいと思います。(連携先のサービスにはRedmineを使用します。) まずはWorkspace ONE Accessの管理コンソールでの作業です。 カタログ>Webアプリケーション とクリックして、Workspace ONE Accessのアプリカタログに載せるWebアプリの一覧を開き、「 新規 」をクリックします。 「 名前 」に入力した値はそのままユーザーのアプリカタログに表示されるので、わかりやすい名称にします。入力したら次に進みます。 【補足】 いくつかのサービスは連携用のテンプレートがあり、「 またはカタログから参照 」をクリックすることで利用が可能です。今回使用するRedmineについても、SAML連携であればテンプレートがあるので比較的カンタンに設定できると思います。 まずは、「認証タイプ」で「 OpenID 接続 」を選びます。(おそらくOpenID Connectが訳されているのでしょうが、何か違うような...) すると、OpenID Connect連携用の設定項目が現れるので、各設定を入れていきます。 「 クライアントID 」と「 クライアント シークレ...

Workspace ONE AccessからServiceNowにシングルサインオン(SAML)

以前、Workspace ONEと他システム間で、 OpenID Connect で連携する内容をポストしましたが、今回は SAML を利用したシングルサインオンの構成を検証してみました。 ServiceNow と SAML連携 して、WS1のポータルからシングルサインオンする構成を試してみます。 大枠の流れとしては以下の通りです。      1.ServiceNow(SP)のSAML認証設定          1.1. WS1 AccessからSAML連携に必要な情報を取得           1.2.SAML認証設定      2.WS1 Access(IDP)でSAML認証設定      3.動作確認 1.ServiceNow側(SP)でSAML認証設定 まずは、今回の構成ではSP(Service Provider)となるServiceNow側でSAMLによるシングルサインオンを可能とするように構成します。 1.1.WS1 Accessから S AML連携に必要な情報を取得 まずは、WS1 AccessのIDPメタデータのURLを取得します。 [カタログ]>[Webアプリケーション]をクリック後、[設定]をクリックします。 左ペインから[SAMLメタデータ]をクリック後、IDPメタデータの[URLをコピー]をクリックします。 クリップボードにコピーされるので、テキストエディタにでも貼り付けておきます。 次に、WS1 AccessのIDP署名証明書を取得します。 左ペインから、[SAMLメタデータ]をクリック後、署名証明書の[ダウンロード]をクリックします。 こんなファイルがダウンロードされます。 1.2.SAML認証設定 続いて、ServiceNow側のSAML認証設定を行います。 ServiceNowの管理コンソールにログインし、検索バーに[saml]と入力後、[SAML2 Single Sign-On]配下の[Certificate]をクリックします。 後で、使用するため先ほどダウンロードした、[signingCertificate.cer]をテキストエデ...