0 フォロワー · 47 投稿

アプリケーションプログラミングインターフェイス(API)は、アプリケーションソフトウェアを構築するための一連のサブルーチン定義、プロトコルおよびツールです。 一般的には、さまざまなソフトウェアコンポーネント間の通信方法を明確に定義したセットです。 詳細はこちら

新着
記事 Hiroshi Sato · 2月 15 4m read

IRISではCSPタグベースの開発は、非推奨(Deplicated)になっています。

非推奨とはいえ、いますぐ使えなくなることはないと思います。

が、CSP機能に含まれるHyperEventの#server()#呼び出しは、かなりやばいということがわかってきました。

これはChromeを始めとするメジャーなブラウザーが提供しているSynchronous XMLHttpRequestという関数を呼び出しています。

この関数をGoogleは10年前くらいから非推奨機能としていて、いつか完全に機能をドロップすると宣言しています。

Stackoverflowの該当記事

インターシステムズのドキュメントにもさりげなく記載されています。

HyperEventCallメソッド

とはいえ、10年もそのままなので、希望的観測をすれば、今後も使える可能性は高いかもしれません。

しかし、ある日突然なくなるリスクはゼロではありません。

ですので、#server()#呼び出しをお手元のコードからなるべく早く取り除くのが賢明です。

それでは、どうすれば良いのか?

ということですが、今のご時世で考えれば、REST APIに変えましょうというのが美しい世界ですが、おそらく書き換えのコストは、半端じゃないでしょう。

ということで、現実的な解は、#Call()#に置き換えることだと思います。

1
2 24
記事 Toshihiko Minamoto · 1月 14 10m read

Googleフォームは、データ収集、アンケートやクイズへの回答を行うための市場で最も人気のソリューションです。そのため、システムを拡張または開発することなく、患者データや回答を実用的な方法で収集するのに理想的な手段と言えます。本記事では、Google Cloudにアカウントを作成し、Google Forms APIを利用するアプリケーションを登録します。また、APIを利用するためのサービスユーザーを生成して、最後にEmbedded PythonとIRISを用いて新しいフォームを作成し、入力されたデータを自動的に収集する方法ついて詳しく説明します。

Google Cloudアカウントの作成

0
0 34
記事 Toshihiko Minamoto · 1月 7 25m read

FHIRサーバー

FHIRサーバーとは、FHIR(Fast Healthcare Interoperability Resources)標準を実装するソフトウェアアプリケーションであり、医療システムが標準化された方法で医療データを保存アクセス交換、および管理することができるようにします。

Intersystems IRISは、以下のFHIRリソースを保存および取得できます。

  • リソースリポジトリ – IRISネイティブのFHIRサーバーは、FHIRバンドルやリソースをFHIRリポジトリに容易に直接保存することができます。
  • FHIR Facade – FHIRファサードレイヤーは、既存のもの(多くの場合、FHIR以外)の上にFHIRに準拠したAPIを公開するために使用されるソフトウェアアーキテクチャパターンです。 さらに、すべてのデータをFHIRネイティブシステムへ移行せずに、電子健康記録(EHR)、レガシーなデータベース、HL7 v2メッセージストアなどの医療データシステムを合理化します。

FHIRとは?

0
0 41
記事 Hiroshi Sato · 12月 8, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

PythonからIRISにアクセスするためのNative SDK for Pythonと呼ばれるインタフェースが用意されています。

Javaや.Net用に用意されているNative SDKと同等な機能が提供されています。

(一部異なる機能があります)。

また、Python用にはEmbedded Pythonと呼ばれるIRISと密に連携した機能があります。

IRISから最大限の性能を得るためには、Embedded Pythonが適していますが、以下のような場合、Native SDKが適しているケースもあります。

  1. 異なるサーバーでIRISとPythonプログラムが連携する必要がある。
  2. 同一サーバー上でIRISとPythonが稼働するが、システムが異なる(サブシステム間連携など)
  3. システムを別々の開発ベンダーが構築するなど、明確な境界を設けたい場合

Native SDKを利用することで以下のようなことを実装することができます。

  1. ObjectScriptやEmbedded Pythonで作成したメソッドの実行
  2. IRISオブジェクトの操作
  3. IRISグローバルデータの操作
  4. DBI-APIによるデータベースアクセス


以下からこれらのサンプルプログラムを取得することができます。

0
0 48
記事 Kyouhei.Kawanishi · 11月 21, 2025 12m read

開発者の皆さん、はじめまして!

普段はサーバーレス環境での開発をしていて、AWS Lambda を使ったアプリケーション構築を主に行っています。IRIS についての実装経験はまだ浅いのですが、その高速で柔軟なデータベース機能の素晴らしさはよく知っています。

「このパワフルな IRIS を、使い慣れたサーバーレスアプリから呼び出せたらいいのにな...」

そんな思いから、今回 AWS Lambda と IRIS Native API を組み合わせた実装に挑戦してみました。これを通して、IRIS のことをもっと好きになれたらいいなと思っています。まだ IRIS の実装経験が浅いため、もっと良いアプローチや最適な方法があるかもしれません。もし改善点や間違いがあれば、ぜひコメントで教えていただけると嬉しいです!

この記事では、AWS Lambda から IRIS Native API を使用してデータを取得する方法を実装例とともに解説します。この基本実装をベースに、S3 トリガーや他の AWS サービスとの連携も可能です。ぜひ最後までお付き合いいただけると嬉しいです!

前提条件

  • Node.js / TypeScript の基本的な知識
  • AWS Lambda の基礎知識。

AWS環境の構成イメージ

今回扱う実装は、以下のような AWS 環境での利用を想定しています。 image

0
0 95
記事 Hiroshi Sato · 9月 3, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

ダイナミックオブジェクトの%ToJSONメソッドを利用することで簡単にJSONデータを送信することができます。

但し、標準的な方法では、出力するJSONのデータがIRIS文字列の最大長(約32万文字 正確には$SYSTEM.SYS.MaxLocalLength()が返す値)を超えると<MAXLENGTH>エラーとなります。

これを回避するためには、文字列として返すのではなく、%ToJSONメソッドの出力先としてStreamを指定し、その結果作成されたそのStreamデータを順次読み取って、出力先に書き出すようにする必要があります。

以下のように処理できます。

0
0 87
質問 Koji Yamamoto · 5月 5, 2025

次のようなプログラムです。

<a href=# onclick='Js_StageCNG(3)'>ステージ3に進む</a>
・・・
    Set Stage=%session.Get("STAGE")
    if Stage="" set Stage=1
   ・・・
if Stage=3 {
  動かなかったので、すべてコメントに変えたがやはり動かなかった
}
<script language=javascript>
  function Js_StageCNG(key) {
       ans=#server(..StageCNG(key))#
       window.location.href="...csp"
}
</script>
<script language=cache method="StageCNG" arguments="key:%Library.String" returntype="%Boolean">
    do %session.Set("STAGE",key)
    quit 1
</script>

この現象は、最近、突然に起こるようになりました。

3
0 87
記事 Toshihiko Minamoto · 5月 20, 2025 7m read

Django フレームワークは長年学習したいと思ってきましたが、いつも他の差し迫ったプロジェクトが優先されてきました。 多くの開発者と同様に、機械学習においては Python を使用していますが、初めてウェブプログラミングについて学習したころは、PHP がまだまだ優勢でした。そのため、機械学習の作品を公開する目的でウェブアプリケーションを作成するための新しい複雑なフレームワークを選択する機会が訪れても、私は依然として PHP に目を向けていました。 ウェブサイトの構築には Laravel と呼ばれるフレームワークを使用してきましたが、この PHP フレームワークから最新の MVC(モデルビューコントローラー)というウェブプログラミングのパターンに出会いました。 さらに複雑なことに、私は最新の JavaScript フレームワークを使用してフロントエンドを構築するのを好んでいます。 React を使用するのがより一般的のようですが、私は Vue.js に一番慣れているため、このプロジェクトではそれを使用することにしました。

なぜ複雑なフレームワークを使用するのでしょうか? Django、Laravel、React、または Vue などのフレームワークを学習する際の最大の難関は何でしょうか?

0
0 92
記事 Toshihiko Minamoto · 4月 11, 2025 10m read

説明

これは、ネイティブウェブアプリケーションとして IRIS にデプロイできる Django アプリケーションのテンプレートです。

インストール

  1. リポジトリをクローンする
  2. 仮想環境を作成する
  3. 要件をインストールする
  4. docker-compose ファイルを実行する
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

使用法

ベース URL は http://localhost:53795/django/ です。

エンドポイント

  • /iris - IRISAPP ネームスペースに存在する上位 10 個のクラスを持つ JSON オブジェクトを返します。
  • /interop - IRIS の相互運用性フレームワークをテストするための ping エンドポイント。
  • /api/posts - Post オブジェクトの単純な CRUD エンドポイント。
  • ``/api/comments` - Comment オブジェクトの単純な CRUD エンドポイント。

このテンプレートからの開発方法

WSGI 導入記事をご覧ください: wsgi-introduction

0
0 63
記事 Hiroshi Sato · 3月 4, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

ObjectScriptの%Netパッケージのライブラリクラスを利用して、ファイルを他のサーバーにアップロードすることができます。

以下のCurl コマンドと同じことを ObjectScript で実現する方法を紹介します。

curl -X POST "http://localhost/api/upload/csv?a=123&b=999" -F file=@"C:/temp/a.csv":/temp/a.csv"

クライアントのObjectScriptコードを以下の様に作成します。

0
0 126
記事 So Ochi · 10月 13, 2024 10m read

はじめに

生成AIを活用したアプリケーション開発は、Python、JavaScriptなどのメジャー言語による体験記事がよく見られます。一方、IRISのObjectScriptの開発に言及された記事は比較的少ないのが現状です。そこで、本記事では生成AIがObjectScriptの開発にどこまで活用できるのかを検証しました。

特にDevOpsのプロセスにおいて、生成AIは様々なシーンでの活用が期待できます。今回は開発工程に注目し、以下の観点から生成AIの有効性を調査しました。

  • 開発
    • コードの自動生成
    • 環境構築のアシスタント(テーブルの作成)
  • 検証
    • テストデータ生成のサポート

環境

本記事の検証は以下の環境で行いました。

開発環境

  • OS: macOS Sonoma
  • IRIS: 2023.4 (linux)

開発ツール IRISの開発にはStudioやVSCodeなどが利用可能ですが、今回は生成AIの活用に特化したエディタ「Cursor」を使用しました。

Cursorを選定した理由 Cursorは、生成AIによる支援機能に特化したコードエディタで、以下の特徴があります:

0
0 297
記事 Hiroshi Sato · 9月 12, 2024 1m read

これは InterSystems FAQ サイトの記事です。
 

messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。

その既定値は1000ミリ秒です。

WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。

またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。

変更方法は以下を参照ください

ヘルスモニタのセンサー値をコマンドで変更する方法 

0
0 95
記事 Toshihiko Minamoto · 4月 1, 2024 5m read

大規模言語モデル(OpenAI の GPT-4 など)の発明と一般化によって、最近までは手動での処理が非現実的または不可能ですらあった大量の非構造化データを使用できる革新的なソリューションの波が押し寄せています。 データ検索(検索拡張生成に関する優れた紹介については、Don Woodlock の ML301 コースをご覧ください)、センチメント分析、完全自律型の AI エージェントなど、様々なアプリケーションが存在します。

この記事では、IRIS テーブルに挿入するレコードに自動的にキーワードを割り当てる単純なデータタグ付けアプリケーションの構築を通じて、IRIS の Embedded Python 機能を使って、Python OpenAI ライブラリに直接インターフェース接続する方法をご紹介します。 これらのキーワードをデータの検索と分類だけでなく、データ分析の目的に使用できるる単純なデータタグ付けアプリケーションを構築します。ユースケースの例として、製品の顧客レビューを使用します。

要件

  • IRIS の実行インスタンス
  • OpenAPI API キー(こちらで作成できます)
  • 構成済みの開発環境(この記事では VS Code を使用します)

Review クラス

0
0 194
記事 Toshihiko Minamoto · 2月 26, 2024 10m read

   

Hello, community!

IrisApiTester アプリを作成した後、それにもっと可能性があることに気付き、いくつか調整することで強力なコラボレーションツールになるのではないかと考えました。

そこで、以下の事について検討してみました。

  • API コレクションをチーム全体で共有できるか?
  • ユニットテストの実行に使用できるか?
  • 統合テストにはメリットがあるか?
  • CI/CD 継続的インテグレーションレイヤーを追加するとどうなるか?

可能な答えを考えた末、試してみることにしました。 作業を終えると、すべての回答が(ある程度)肯定であることがわかりました。 最終的には、この記事を書いて、この経験を皆さんと共有することに決めました。 知識の交換に役立ち、できればアプリケーションを一緒に改善していければと思います。

この記事は役に立つと思います。 新しいアプリケーションを検討するきっかけになるかもしれませんし、アジャイルな方法で実行できることを知らなかったテストを、このヒントでやっと実行できるようになることに気付くでしょう。

簡潔にするために、この記事を複数のセクションに分けています。 そのため、直接必要な箇所を読むことも、全文を読むこともできるように構成されています。

0
0 158
記事 Toshihiko Minamoto · 2月 16, 2024 3m read

コミュニティの皆さん、こんにちは!

IrisApiTester の新しいバージョンを公開しました。以下のようないくつかの新機能が含まれています。

  • 外部リポジトリ: コレクションのファイルをウェブページに手動でドラッグする代わりに、リポジトリ(GitHub または Bitbucket)のコレクションを使用できる機能を追加しました。
  • プルして実行: リポジトリの変更を自動的にプルしてテストを実行する新しいエンドポイントを作成しました。
  • ユニットテスト / 統合テスト: ユニットテストと統合テストで IrisApiTester を使用する例を追加しました。
  • CI/CD: GitHub などのワークフローでコミットの完了ごとにコレクションのリポジトリの変更を自動的にプルし、テストを実行して Google Chat に結果を送信するための新しいエンドポイントを追加しました。

外部リポジトリ:

Postman のコレクションテストが格納される外部リポジトリを構成できるようになりました。

- プルして実行:
リポジトリの最新バージョンをプルし、テストを通過させてブラウザにレポートを表示します(ファイルをドラッグすなどの手動操作は不要です):
http://localhost:52773/pull_and_run_tests

-ユニットテスト / 統合テスト

0
0 118
記事 Toshihiko Minamoto · 2月 7, 2024 2m read

コミュニティの皆さん、こんにちは!

私の IRIS Api Tester というアプリで使用する Postman コレクションのテストを作成する方法を説明します。

Newman とは?

Newman は、Postman コレクションを拡張可能な方法で自動的に実行できるコマンドラインツールです。 Newman でテストを作成することで、API エンドポイントの信頼性と正確性を確実にすることができます。 この記事では、Postman で Newman のテストを作成する方法と開始に役立つ実用的な例を紹介します。

Postman コレクションを作成したら:

テストスクリプトを書き始めることができます。

Postman のテストは、Postman スクリプトサンドボックスを使って JavaScript で記述します。 テストスクリプトを作成するには、リクエストを開いて「Test」タブに移動します。 ここで、API レスポンスを評価してその正確さを検証するカスタム JavaScript コードを作成できます。

例 1: レスポンスのステータスコードを確認する:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

 

例 2: レスポンスの特定のフィールドの有無を検証する:

0
0 585
記事 Toshihiko Minamoto · 1月 31, 2024 3m read

コミュニティの皆さん、こんにちは!!

Open Exchange に最新の「IRIS Api Tester」アプリケーションをアップロードしました。

InterSystems IRIS と Newman を使用した Docker プロジェクトで、素早く簡単に Postman コレクションをテストできます。

リポジトリをクローンするだけで、初期状態で使用できるようになっています: https://github.com/daniel-aguilar-garcia/irisapitester

docker-compose ファイルを実行します。

この URL をブラウザで開きます。

http://localhost:52773/csp/user/index.html

テストを Postman コレクションに追加します。

この例では、テストをコレクションの Test セクションに追加することでコレクションのすべてのエントリにグローバルテストを追加していますが、個別のテストを項目ごとに追加することもできます。

ここでは、リクエストのステータスコードが 200 になることをテストしています。ステータスコードが 200 でない場合には、レポートにエラーとして表示されます。

テストを追加したら、コレクションを JSON 形式でエクスポートします。

0
0 114
記事 Toshihiko Minamoto · 7月 28, 2023 1m read

ターミナルにライセンス期限切れの警告メッセージ(「*\* Warning: This Cache license will expire in 3 days **」)が表示されており、そのメッセージを表示したくない場合は、以下のコマンドを実行すると、メッセージの表示を無効(または有効)にできます。

Do ExpirationMessageOff^%SYS.LICENSE - Disable

Do ExpirationMessageOn^%SYS.LICENSE - Enable

 

0
0 169
記事 Toshihiko Minamoto · 6月 27, 2023 13m read

はじめに

今日の相互運用性分野に従事する多くの人にとって、REST は最高峰にあります。 REST API 開発用のツールとアプローチが溢れかえる中、コードを書き始める前に、どのツールを選び、何を計画する必要があるでしょうか? この記事では、堅牢性、適応性、および一貫性に優れた REST API を構築できるようにする設計パターンと考慮事項を焦点としています。 CORS サポートと認証管理の課題に他する実行可能なアプローチについて、REST API 開発の全段階に適用できる様々なヒントとテクニック、最適なツールを織り交ぜながら説明します。 InterSystems IRIS Data Platform で利用できるオープンソース REST API と複雑化し続ける API の課題にどのように取り組むかについてお読みください。 これは、同じトピックに関する最近のウェビナーを記事にしたものです。

0
1 434
記事 Toshihiko Minamoto · 9月 10, 2022 49m read

このフォーメーション私の GitHub にあり、30 分で csv ファイルと txt ファイルの読み取りと書き込み方法、Postgres を使ったIRIS データベースリモートデータベースの挿入とアクセス方法、FLASK API の使用方法について説明します。これらすべてに、PEP8 命名規則に従った、Python のみのインターオペラビリティフレームワークを使用します。

このフォーメーションは、ほとんどをコピー&ペースト操作で実行でき、グローバル演習を行う前に、ステップごとの操作が説明されています。
記事のコメント欄、Teams、またはメール(lucas.enard@intersystems.com)でご質問にお答えします。

このフォーメーションに関するあらゆる点において、ご意見やご感想をお送りいただけると幸いです。

1. Ensemble / Interoperability のフォーメーション

このフォーメーションでは、Python および特に以下を使用した InterSystems のインターオペラビリティフレームワークを学習することを目標としています。

  • 本番環境
  • メッセージ
  • ビジネスオペレーション
  • アダプター
  • ビジネスプロセス
  • ビジネスサービス
  • REST サービスと運用

目次:

0
0 266
記事 Toshihiko Minamoto · 7月 26, 2022 5m read

ObjectScript カーネルのロゴJupyter Notebook は、多数の異なるマークアップ言語とプログラミング言語でコードを実行できるセルで構成された対話型環境です。

Jupyter はこれを実現するために適切なカーネルに接続しなければなりませんが、 ObjectScript カーネルがなかったため、それを作成することにしました。

こちらから試すことができます。

結果を少し覗いてみましょう。

Jupyter カーネルの基礎

Jupyter カーネルはいくつかの方法で作成できます。 ここでは、Python ラッパーカーネルを作成することにしましょう。

ipykernel.kernelbase.Kernel のサブクラスを作成して、特定の言語で実行されるコードを受け取る do_execute メソッドを実装する必要があります。

つまり、ある ObjectScript コードを取得して、何らかの方法で実行し、ノートブックにその結果を返すという概念です。

でも、実際にはどうすればよいのでしょうか。 では、その方法をさらに噛み砕いて説明しましょう。

ObjectScript コードを IRIS に送る

まず初めに、コードを IRIS に送る必要があります。 ここで使用するのが、Python 用の IRIS Native API です。

ここでは、irisnative パッケージをインポートして、接続を確立するだけです。

0
0 196
記事 Toshihiko Minamoto · 1月 27, 2022 11m read

はじめに

バージョン2019.2より、InterSystems IRISは、高性能データアクセス手法としてPython用のネイティブAPIを提供してきました。 ネイティブAPIを使用すると、ネイティブのIRISデータ構造と直接対話することができます。

0
0 526
記事 Toshihiko Minamoto · 12月 14, 2021 5m read

着想: @Evgeny Shvarovとその記事より
Deploying InterSystems IRIS Embedded Python Solutions with ZPM Package Manager
このアイデアを発展させ、同じことを**Node.js.**のモジュールで行ってみました。
このケースは、私の「IRIS Native API for Node.js」の例に基づいています。

InterSystems IRIS はクライアントとしてネイティブでWebSocketsをサポートしているというわかりきった返答を期待して:
その通りです。そして、私がその昔書いた関連記事OEXのサンプルへのリンクはこちらです。

0
0 163
記事 Toshihiko Minamoto · 8月 18, 2021 13m read

PHP はその公開当初から、多くのライブラリや市場に出回っているほぼすべてのデータベースとの統合をサポートしていることでよく知られています(またそのことで批判を受けてもいます)。 にもかかわらず、何らかの不可解な理由により、グローバル変数については階層型データベースをサポートしませんでした。

グローバル変数は階層情報を格納するための構造です。 Key-Value型データベースにある程度似ていますが、キーを次のようにマルチレベルにできるという点で異なっています。

0
0 267
記事 Toshihiko Minamoto · 8月 9, 2021 4m read

1 年ほど前、私のチーム(多数の社内アプリケーションの構築と管理、および他の部署のアプリケーションで使用するツールやベストプラクティスの提供を担う InterSystems のアプリケーションサービス部門)は、Angular/REST ベースのユーザーインターフェースを元々 CSP や Zen を使って構築された既存のアプリケーションに作りこむ作業を開始しました。 この道のりには、皆さんも経験したことがあるかもしれない興味深いチャレンジがありました。既存のデータモデルとビジネスロジックに新しい REST API を構築するというチャレンジです。

このプロセスの一環として、REST API 用に新しいフレームワークを構築しました。あまりにも便利であるため、自分たちだけに取っておくわけにはいきません。 そこで、Open Exchange の https://openexchange.intersystems.com/package/apps-rest で公開することにしました。 今後数週間または数か月の間に、これに関する記事がいくつか掲載される予定です。それまでは、GitHub のプロジェクトドキュメント)https://github.com/intersystems/apps-rest)に用意されたチュートリアルをご利用ください。

0
0 258
記事 Toshihiko Minamoto · 7月 28, 2021 7m read

この 3 部構成の記事では、IAM を使って、以前に IRIS にデプロイされた認証されていないサービスに OAuth 2.0 標準に従ったセキュリティを追加する方法を説明します。

パート 1 では、サービスを保護するプロセス全体を理解しやすくするために、IRIS と IAM の基本的な定義と構成を示しながら OAuth 2.0 の背景を説明しました。

パート 2 では、着信リクエストに存在するアクセストークンを検証し、検証が成功した場合にはそのリクエストをバックエンドに転送するように IAM を構成する手順について詳しく説明しました。

連載の最後となるこのパートでは、IAM がアクセストークンを生成(承認サーバーとして機能します)してそれを検証するために必要な構成と、重要な最終考慮事項を説明します。

IAM をお試しになりたい方は、InterSystems 営業担当者にお問い合わせください。

シナリオ 2: 承認サーバーとアクセストークンのバリデーターとしての IAM

このシナリオでは、最初のシナリオとは異なり、「OAuth 2.0 Authentication」というプラグインを使用します。

0
0 241
記事 Toshihiko Minamoto · 7月 26, 2021 5m read

この 3 部構成の記事では、IAM を使って、以前に IRIS にデプロイされた認証されていないサービスに OAuth 2.0 標準に従ったセキュリティを追加する方法を説明します。

パート 1 では、サービスを保護するプロセス全体を理解しやすくするために、IRIS と IAM の基本的な定義と構成を示しながら OAuth 2.0 の背景を説明しました。

このパートでは、着信リクエストに存在するアクセストークンを検証し、検証が成功した場合にはそのリクエストをバックエンドに転送するように IAM を構成する手順について詳しく説明します。

この連載の最後のパートでは、IAM でアクセストークンを生成し(承認サーバーとして機能します)、それを検証するようにするための構成を説明し、重要な最終考慮事項を示します。

IAM をお試しになりたい方は、InterSystems 営業担当者にお問い合わせください。

シナリオ 1: アクセストークンのバリデーターとして機能する IAM

このシナリオでは、JWT(JSON Web トークン)形式でアクセストークンを生成する外部承認サーバーを使用します。 この JWT はアルゴリズム RS256 と秘密鍵を使用して署名されています。 JWT 署名を検証するには、ほかのグループ(この場合 IAM)に承認サーバーが提供する秘密鍵が必要です。

0
0 204
記事 Toshihiko Minamoto · 7月 19, 2021 5m read

はじめに

近年、オープン認証フレームワーク(OAuth)を使って、あらゆる種類のサービスから信頼性のある方法で安全かつ効率的にリソースにアクセスするアプリケーションが増えています。 InterSystems IRIS はすでに OAuth 2.0 フレームワークに対応しており、事実コミュニティには、OAuth 2.0 と InterSystems IRIS に関する素晴らしい記事が掲載されています。

しかし、API 管理ツールの出現により、一部の組織はそのツールを単一の認証ポイントとして使用し、不正なリクエストが下流のサービスに到達するのを防ぎ、サービスそのものから承認/認証の複雑さを取り除いています。

ご存知かもしれませんが、InterSystems は、IRIS Enterprise ライセンス(IRIS Community Edition ではありません)で利用できる InterSystems API Management(IAM)という API 管理ツールを公開しています。 こちらには、InterSystems API Management を紹介する素晴らしい別のコミュニティ記事が掲載されています。

0
0 212