本仕様書には、2020年に向けた社会全体のICT化推進に関する懇談会と、総務省 都市サービス高度化の実現に向けた共通クラウド基盤構築に関する実証に係る調査請負における成果物を含みます。
日付 | 内容 |
---|---|
2019年1月22日 | 一般公開 |
おもてなしクラウド (OPaaS.io) は、利用者が登録したパーソナルデータを、利用者自身がどの情報をどのサービスへ提供するかをきめ細かくコントロールすることができるサービスである。 本ドキュメントでは、その機能を利用するためのAPIを説明している。なお公開しているAPIは、利便性向上等の観点から今後変更する可能性がある。
ここでは、APIの概略と、本ドキュメントで利用している用語を紹介する。
本APIは、パーソナルデータの読み取り、登録、削除や、パーソナルデータ提供先の管理、およびユーザー認証に関連する機能をコントロールするためのAPIを提供する。 また、OpenID Connect 1.0 によって認証を行うためのAPIが用意されており、この認証で得られたトークンを利用してAPIにアクセスする。
特定の個人を識別することができる情報である個人情報に加え、 単独では個人を識別しないが個人に関連する情報(例えば年代、趣味、嗜好等)を含めた情報を指す。 OPaaS.io はこのパーソナルデータを適切に扱うことを実現する。
おもてなしクラウド内のパーソナルデータに、個人の許諾に基づいてアクセス・利用するソフトウェア。
サービスグループは、複数のサービスを集めてグループ化したものであり、利用者はこのグループに対してパーソナルデータ提供の許可・拒否を設定できる。
サービスドメインは、サービスを提供している特定の企業や団体などを表した概念であり、このサービスドメインに対しても、利用者はパーソナルデータの提供の許可・拒否を設定できる。
APIによって表示されるHTMLの画面や、APIによってユーザに送られるメール内では、ユーザー認証を実施することを表す「ログイン」は「サインイン」と表記しているが、本仕様では「ログイン」と表記する。
おもてなしクラウド内のパーソナルデータにアクセスする際に、おもてなしクラウド内部で扱われている形式と異なる形式に変換して取得するためのスクリプトを含む記述。 例えば、おもてなしクラウドで国コードはISO 3166-1 alpha-3 (日本はJPN) というように扱っているが、これをISO 3166-1 alpha-2 (日本はJP)というように表記や値を変換することなどを想定する。
提供するAPIは下記の2つのドメインで提供される。
ドメイン | API概要 |
---|---|
accounts.opaas.io | 主に、ユーザエージェント側で実行するAPI(oauth2/tokenを除く) |
api.opaas.io | 主にRP (OpenID Connect1.0 におけるRelying Party)側で実行するAPI。使用する際には、リクエストパラメータにoauth2/tokenで得たアクセストークンが必要になる。 |
APIの先頭の https:// は省略する
No | Method | API | API概要 |
---|---|---|---|
1 | GET | accounts.opaas.io/oauth2/authorize | ・認証要求受付API。認証プロトコルはOpenID Connectを利用。 |
2 | GET | accounts.opaas.io/oauth2/signup | ・ユーザ登録要求受付API。登録後に accounts.opaas.io/oauth2/authorize を呼び出す。 |
3 | GET | accounts.opaas.io/oauth2/resetpassword | ・ユーザのパスワード変更要求受付API。変更後に oauth2/authorize を呼び出す。 |
4 | GET | accounts.opaas.io/oauth2/logout | ・ログアウト受付API。ログアウト実行後に redirect_uri で指定したアドレスにリダイレクトする。 |
5 | POST | accounts.opaas.io/oauth2/token | ・トークン要求受付API。認証要求受付の結果をトークンとして発行する。OpenID Connectの規約に則る。 |
6 | GET | api.opaas.io/api/v1/users/auth/qr | ・ユーザーの認証用QRコード取得API。 |
7 | GET | api.opaas.io/api/v1/user_attributes | ・パーソナルデータ取得API。 |
8 | GET | api.opaas.io/api/v1/services | ・サービスの一覧取得API。 |
9 | GET | api.opaas.io/api/v1/services/{id} | ・サービスの情報取得API。 |
10 | GET | api.opaas.io/api/v1/rules | ・データ形式変換ルール一覧取得API。(※今後提供予定) |
11 | GET | accounts.opaas.io/.well-known/openid-configuration | ・OpenID Provider Metadata の取得 |
12 | GET | accounts.opaas.io/oauth2/jwks | ・id_token の公開鍵の情報の取得 |
APIのドメインはすべて api.opaas.io なので先頭の https://api.opaas.io は省略する。
No | Method | API | API概要 |
---|---|---|---|
1 | PUT or PATCH | /api/v1/user_attributes | ・パーソナルデータ更新API。 |
2 | PUT or PATCH | /api/v1/user_attributes/image | ・パーソナルデータ passport_image 更新API。 |
3 | DELETE | /api/v1/user_attributes/image | ・パーソナルデータ passport_image 削除API。 |
4 | GET | /api/v1/user_attributes/history | ・パーソナルデータ要求・変更・提供履歴取得API。 |
5 | GET | /api/v1/service_domains | ・サービスドメインの一覧取得API。 |
6 | GET | /api/v1/service_domains/{id} | ・サービスドメインの取得API。 |
7 | GET | /api/v1/service_groups | ・サービスグループの一覧取得API。 |
8 | GET | /api/v1/service_groups/{id} | ・サービスグループの取得API。 |
9 | POST | /api/v1/users | ・ユーザー登録API。 |
10 | GET | /api/v1/users/auth | ・ユーザー認証方式取得API。 |
11 | PUT or PATCH | /api/v1/users/auth | ・ユーザー認証方式変更API。 |
12 | GET | /api/v1/users/permissions | ・サービスへのパーソナルデータ提供ポリシーを取得する。 |
13 | PUT or PATCH | /api/v1/users/permissions | ・サービスへのパーソナルデータ提供ポリシーを書き換える。 |
以下のフローを参考にしてください。
auth_type に IDPW(パスワード認証)を指定した場合の認証の流れは以下の通りである。ただし、リクエストパラメータに正しい(エラーとならない)データを指定して実行したものとする。
本APIの処理が成功した場合は、下記の手順 7 で 認可code を発行するが、どのような流れ(途中でユーザ登録や、パスワードのリセットの処理が間に挟まった場合なども含む)で 7 に至った場合でも、本APIを最初に実行した際に与えたリクエストパラメータに対応する 認可code が発行される(手順6が実行された場合は、そこでユーザが許諾したパーソナルデータのみ許諾する)。
サイネージ利用などのブラウザを利用しない場合には、直接おもてなしクラウドの認証要求受付APIを呼び出してください。認証要求受付API(GET accounts.opaas.io/oauth2/authorize)は以下のパラメータを設定してアクセスします。
auth_type:IDM
authori_screen:OFF
※ICカード認証を実施かつ許諾画面は表示しないとした場合です。
HTTPステータスコードで302でLocationヘッダに認可コード付きの認証後遷移先URLが設定されます。
---------------------------------------------
HTTP/1.1 302 Found
Location: https://serviceA.co.jp/home.jsp?state=statevalue&code=WZHm7cukADLdhkmz
★★ Locationの「https://serviceA.co.jp/home.jsp」部分がredirect_uriです。★★
★★ redirect_uriのクエリ「code」に設定された値が認可コードです。★★
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 0
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
---------------------------------------------
手順2で発行された認可コード利用してトークン要求受付APIへアクセストークンの取得要求を行い、取得したアクセストークンを用いて、パーソナルデータ取得APIへのアクセスを行って下さい。
あらかじめ、GET accounts.opaas.io/oauth2/authorize、POST accounts.opaas.io/oauth2/token を実行して、ユーザの認証済のアクセストークンを発行しておいてください。QRコードを利用した認証では、このアクセストークンを使って、一度だけ有効なユーザを認証するQRコードを発行します。
手順1で得たアクセストークンを使って、GET api.opaas.io/api/v1/users/auth/qr を実行して下さい。ユーザの認証用トークンが入ったQRコードが生成されます。
下記の例ではQRコードの画像が入ったファイルが生成されます。
https://api.opaas.io/api/v1/users/auth/qr?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
QRコード内には、qrtoken=xxxxxxxxx&state=yyyyyyyy のようなデータが格納されているので、これらと auth_type=QR をリクエストパラメータとし、他のリクエストパラメータを設定して GET accounts.opaas.io/auth/authorize を実行して下さい。
QRコードを利用した認証では、パーソナルデータの許諾画面は表示されません(aurhori_screenの設定は必ずOFFとみなされる)。リクエストパラメータ scope に設定されたパーソナルデータのうちユーザがパーソナルデータ許可ポリシーで"許諾"の設定を行っているもののみ提供します。
QRコード内のユーザを認証するトークンは一度使うか、発行後15分経過すると失効します。失効したトークンをリクエストパラメータとして GET accounts.opaas.io/auth/authorize を実行するとエラーとなります。
HTTPステータスコードで302でLocationヘッダに認可コード付きの認証後遷移先URLが設定されます。
---------------------------------------------
HTTP/1.1 302 Found
Location: https://serviceA.co.jp/home.jsp?state=statevalue&code=WZHm7cukADLdhkmz
★★ Locationの「https://serviceA.co.jp/home.jsp」部分がredirect_uriです。★★
★★ redirect_uriのクエリ「code」に設定された値が認可コードです。★★
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 0
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
---------------------------------------------
手順4で発行された認可コード利用してトークン要求受付APIへアクセストークンの取得要求を行い、取得したアクセストークンを用いて、パーソナルデータ取得APIへのアクセスを行って下さい。
認証要求の受付を行い、その後http仕様に則った認証フロー後に認証応答を返却する。認証プロトコルはOpenID Connectを利用。
認証要求の受付の結果、ユーザのログインが必要になった場合はログイン画面のHTMLを返し、そのページからのログインが成功した場合に認証受付を続行する。
認証要求の受付の結果、ユーザからの許諾が必要なパーソナルデータが存在する場合は、許諾画面のHTMLを返し、scopeのうち、そのページでユーザが許諾したパーソナルデータのみを許諾する認可codeを提供する。本APIはユーザからの許諾が必要であるかどうかを下記の手順で確認する。
本APIは、許諾画面でユーザが「If this check box is enabled, the server will save your consent, so that you won't be prompted for the same authorization multiple times.」と表示されたチェックボックスをONにして許諾を行うと、要求されているすべてのパーソナルデータに対して、ユーザが許諾画面で設定した内容に応じたパーソナルデータ提供ポリシーを type=service で自動的に保存する。チェックボックスをOFFにして許諾を行うと、パーソナルデータ提供ポリシーは編集されない。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
scope | Query | 必須 | 〇 | ユーザに要求するパーソナルデータ。複数設定する場合は半角スペース区切りにて連結。"openid" scope 値は必須。要求パーソナルデータは事前におもてなしインフラに登録した情報のみ要求可能。 |
response_type | Query | 必須 | レスポンスタイプ。Authorization Code Flow のため、”code” 固定。 | |
client_id | Query | 必須 | 要求元のサービスID。事前登録が必要。 | |
redirect_uri | Query | 必須 | 応答の返却先。事前登録が必要。 | |
state | Query | 任意 | 要求と応答の間で維持されるランダムな値。設定された場合はそのままの値を返却する。 | |
nonce | Query | 任意 | Client セッションと ID Token を紐づける文字列。設定された場合はそのままの値を返却する。 | |
auth_type | Query | 任意 | 認証方式。IDPW:ID/パスワード認証。IDM:ICカード認証。QR:QRコード認証。未指定の場合は"IDPW"。"IDM"または"QR"を指定した場合、認証要求の度に認証を行う。 | |
IDM | Query | 任意 | 認証に利用するIDm(ICカードのID)を指定する。auth_typeにIDMを指定した場合にこのパラメータが必須となる。 | |
authori_screen | Query | 任意 | 許諾画面の表示有無。 ON:許諾画面表示。"scope"にサービス/サービスドメイン/信頼度全てのアクセス制御設定が"未回答"のパーソナルデータが設定されている場合は許諾画面を表示する。 OFF:許諾画面を表示しない。"scope"に設定されたパーソナルデータのうち"許可"のもののみ提供する。 未指定の場合は"ON"。 ただし、auth_typeがQRの場合は、設定値に関わらず"OFF"となる。 |
|
code_challenge | Query | 任意 | このパラメータを設定すると、token要求受付APIの際に、 code_verifierパラメータによるcode_challengeを実施する。 | |
code_challenge_method | Query | 任意 | code_challenge時のメソッドを指定する。"plain" 又は "S256" を指定する。未指定時の場合は"plain"。 | |
qrtoken | Query | 任意 | auth_typeが QR の場合、GET api.opaas.io/api/v1/users/auth/qr で得られたQRコード内に記載された、qrtoken(ユーザの認証トークン)を設定する。qrtoken の性質に関しては、下記のQRコード認証についてを参照のこと | |
lang | Query | 任意 | ログイン、登録、パスワードリセット時のHTMLの表示言語を設定する(これらの表示言語は、上部にあるメニューから変更することもできる)。ただし、現バージョンでは、許諾画面は英語表記のみ対応。 現バージョンでは下記の値を設定可能。 ・en: 英語 ・ja:日本語 設定しなかった(または上記以外の値を設定した)場合は、ブラウザの言語設定で設定されている言語が設定されたものとみなされる。 |
QRコード認証を行う場合、後述の GET api.opaas.io/api/v1/users/auth/qr によって得られるQRコード内に記載されたユーザのトークンを用いてユーザの認証を行う。 具体的な手順は以下の通り。
QRコード認証を行った場合、ユーザの認証トークンによってユーザが認証されるため、ログイン画面は表示されない。
また、authori_screen はその設定値に関わらず、OFF として実行されるため、許諾画面が表示されることはない。
GET api.opaas.io/api/v1/auth が生成する QRコード内に記載された qrtoken の寿命は 15 分であり、生成後15分経過すると失効する。
qrtokenは一度使用すると失効する。
失効した qrtoken を本APIのリクエストパラメータに指定して実行するとエラーとなる。
2018年10月5日 時点では code のみ対応している。 今後、他の方式も対応予定。
後述の GET,PUT or PATCH api.opaas.io/api/v1/users/permissions を参照。
ログイン、または許諾が必要な場合は、ステータスコード200で、HTMLが返る。
認証要求が成功した場合は、UA経由のリダイレクトで応答を返却する。
パラメータ名 | 必須/任意 | 説明 |
---|---|---|
code | 必須 | ログインした利用者に紐付く認可コード。 |
state | 任意 | 要求パラメータのstate。要求時に設定された場合は必須。 |
ステータスコード | |
---|---|
302 | UA経由のリダイレクトで応答を返却する。エラー時はリダイレクト先のURLクエリに後述のエラーレスポンスパラメータが付与される |
400 | サービス情報が不正、リダイレクトURI が不正のためリダイレクト先が不明な場合の応答。JSONのオブジェクト形式で、statusとmessageにエラーの情報が入る。 |
パラメータ名 | 必須/任意 | 説明 |
---|---|---|
error | 必須 | 下記の表を参照 |
error_description | 任意 | エラー内容 |
state | 任意 | 要求パラメータのstate。要求時に設定された場合は必須。 |
error の詳細説明
error | 意味 | 主な原因 |
---|---|---|
access_denied | アクセス拒否 | ・auth_type に IDM を指定時に、IDM がユーザの登録した IDM と一致しない |
invalid_scope | scope が不正 | ・scope に "openid" が指定されていない |
invalid_request | 要求パラメータが不正 | ・code_challenge 指定時に、不正なcode_challenge_method を指定した ・auth_type に IDM を指定時に、IDM が設定されていない |
invalid_token | qrtokenが が不正 | auth_type が 'QR' の場合に qrtoken が不正または失効(15分以上経過、または2回以上の使用)している |
server_error | サーバエラー | ・サーバにてエラーが発生した |
unsupported_response_type | サポートしていない response_type | ・response_type に "code" 以外を指定した |
パスワード認証の場合
・GET
https://accounts.opaas.io/oauth2/authorize?scope=openid+email+passport_name&response_type=code&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https%3A%2F%2Ftest-rp.co.jp%2F&state=statevalue&nonce=noceXXXXXX&authori_screen=OFF
IDM認証の場合
・GET
https://accounts.opaas.io/oauth2/authorize?scope=openid+email+passport_name&response_type=code&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https%3A%2F%2Ftest-rp.co.jp%2F&state=statevalue&nonce=noceXXXXXX&auth_type=IDM&IDM=xxxxxxxx&authori_screen=OFF
QRコード認証の場合
・GET
https://accounts.opaas.io/oauth2/authorize?scope=openid+email+passport_name&response_type=code&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https%3A%2F%2Ftest-rp.co.jp%2F&state=statevalue&nonce=noceXXXXXX&auth_type=QR&qrtoken=xxxxxxxx
リクエストサンプルで、GET メソッドを使用する場合で、リクエストヘッダに記述する必要のあるデータがない場合は、上記のように、「・GET」の次の行にURLのみを表記する。
302
HTTP/1.1 302 Found
Location: https://test-rp.co.jp?state=statevalue&code=NsjJpaNnH4u9BOnh
302
HTTP/1.1 302 Found
Location: https://test-rp.co.jp?error=invalid_request&error_description=Unsupported%20response_type%20value&state=statevalue
400
{
"status": "Client ID Error",
"message": "The client identifier (client_id) is missing or invalid."
}
{
"status": "invalid_token",
"message": "The request parameter qrcode is expired or invalid."
}
ユーザ登録認証要求の受付を行うWebページを表示する。
本APIは、以下の3種類の方法で実行される。
本APIは上記の 1,2 の方法で実行された場合は、 GET accounts.opaas.io/oauth2/authorizeの処理の流れに組み込まれた API であるため、リクエストパラメータは GET accounts.opaas.io/oauth2/authorize と同じである。従って、リクエストパラメータの一覧は省略する。
上記の 3 の方法で実行された場合は、本APIはリクエストパラメータを必要としない。
不正なリクエストや、パラメータがない場合は、ログインID(メールアドレス)を登録するためのHTMLがステータスコード200で返る。それ以外の場合はすべてエラーである。
ステータスコード | |
---|---|
200 | ログインIDを登録するためのHTML |
302 | エラー発生時、UA経由のリダイレクトで応答を返却する。エラー時はリダイレクト先のURLクエリに後述のエラーレスポンスパラメータが付与される。本APIは正常終了時にリダイレクトで応答が行われることはない。 |
400 | サービス情報が不正、リダイレクトURI が不正のためリダイレクト先が不明な場合の応答。JSONのオブジェクト形式で、statusとmessageにエラーの情報が入る。 |
GET accounts.opaas.io/oauth2/authorize と同じ
正常時に HTML が返る以外は、GET accounts.opaas.io/oauth2/authorize とほぼ同一なので省略
ユーザのパスワード変更要求の受付を行うWebページを表示する。
本APIは、以下の3種類の方法で実行される。
本APIは、パスワード変更完了時に、それまでログイン状態であったとしても、強制的にログアウトする。
本APIは上記の 1,2 の方法で実行された場合は、 GET accounts.opaas.io/oauth2/authorizeの処理の流れに組み込まれた API であるため、リクエストパラメータは GET accounts.opaas.io/oauth2/authorize と同じである。従って、リクエストパラメータの一覧は省略する。
上記の 3 の方法で実行された場合は、本APIはリクエストパラメータを必要としない。
不正なリクエストパラメータがない場合は、パスワードを変更するユーザID(メールアドレス)を入力するためのHTMLがステータスコード200で返る。それ以外の場合はすべてエラーである。
ステータスコード | |
---|---|
200 | パスワードを変更するユーザIDを入力するためのHTML |
302 | エラー発生時、UA経由のリダイレクトで応答を返却する。エラー時はリダイレクト先のURLクエリに後述のエラーレスポンスパラメータが付与される。本APIは正常終了時にリダイレクトで応答が行われることはない。 |
400 | サービス情報が不正、リダイレクトURI が不正のためリダイレクト先が不明な場合の応答。JSONのオブジェクト形式で、statusとmessageにエラーの情報が入る。 |
GET accounts.opaas.io/oauth2/authorize と同じ
正常時に HTML が返る以外は、GET accounts.opaas.io/oauth2/authorize とほぼ同一なので省略
ユーザのログアウト要求の受付を行う。
リクエストパラメータとして、client_id と redirect_uri を受け取り、redirect_uri がclient_id のクライアントに登録されていた場合のみ、ユーザのログアウト処理を行い、redirect_uri にリダイレクトする。
ユーザがログインしていなかった場合は、エラーとはせず、redirect_uriにリダイレクトする。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
client_id | Query・Body | 必須 | 要求元のサービスID。事前登録が必要。 | |
redirect_uri | Query・Body | 必須 | 応答の返却先。事前登録が必要。 |
ログアウトが成功した場合は、UA経由のリダイレクトで応答を返却する。本APIはリダイレクト時に特別なレスポンスパラメータを付与しない。
ステータスコード | |
---|---|
302 | UA経由のリダイレクトで応答を返却する。 |
400 | サービス情報が不正、リダイレクトURI が不正のためリダイレクト先が不明な場合の応答。JSONのオブジェクト形式で、statusとmessageにエラーの情報が入る。 |
・GET
https://accounts.opaas.io/oauth2/logout?client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https%3A%2F%2Ftest-rp.co.jp
302
HTTP/1.1 302 Found
Location: https://test-rp.co.jp
400
client_id が不正な場合
{
"status": "Parameter error",
"message": "Parameter client_id is required or invalid."
}
redirect_uri が不正な場合
{
"status": "Parameter error",
"message": "Parameter redirect_uri is required or invalid."
}
認証要求受付の結果をトークンとして発行する。
下記で、必須/任意の所に(A)と記述されているものは、grant_typeに"authorization_code"を指定した場合、(R)と記述されているものは、grant_typeに"refresh_token"を指定した場合を表す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
grant_type | Body | 必須 | "authorization_code" または "refresh_token"を指定する。 | |
code | Body | 必須(A) | 認証要求受付APIで返却された認可コード。 | |
redirect_uri | Body | 必須(A) | リダイレクトURI。認証要求時のredirect_uri と同じ値。 | |
client_id | Body/Header | 必須 | 要求元のサービスID。事前登録が必要。client_id及び、client_secret は HTTP_AUTHORIZATION リクエストヘッダにBasic認証で記述しても良い。BodyとHeaderの両方で指定した場合は、Headerで指定した値が有効となる。 | |
client_secret | Body/Header | 必須 | 要求元のサービスのパスワード。事前登録が必要。 | |
refresh_token | Body | 必須(R) | grant_typeが"refresh_token"の場合に必須。リフレッシュトークンを指定し、アクセストークンを再発行する。 | |
code_verifier | Body | 任意(A) | code発行時に、リクエストパラメータにcode_challengeを指定した場合は必須。code_challengeで指定した値と異なる値を指定した場合はinvaid_grantエラーとなる。 | |
X_AUTHORIZATION | Header | 任意(A) | code発行時に、auth_typeにIDMを指定した場合に必須。クライアントのpassphrazeをリクエストヘッダに記載する。 | |
scope | Body | 任意(R) | 〇 | 要求するパーソナルデータ。複数設定する場合は半角スペース区切りにて連結。元のアクセストークンに許諾されているscopeと、このリクエストパラメータに記載されたscopeの積集合が、新しく生成されるアクセストークンに許諾されるscopeとなる。 |
初回の認証時には grant_type に authorization_code でトークン(1時間有効)を取得し、その後は grant_type に refresh_token を指定し、リフレッシュトークン(24時間有効)を利用してトークンを再発行することができる。トークンの有効期限が切れた場合には再度認証(GET accounts.opaas.io/oauth2/authorize)が必要となる。
パラメータ名 | 必須/任意 | 説明 |
---|---|---|
access_token | 必須 | 認可コードに紐付く、アクセストークン。 |
token_type | 必須 | 発行されたトークンのタイプ。"Bearer"固定。 |
refresh_token | 必須 | リフレッシュトークン。 |
expires_in | 必須 | アクセストークンの有効期限(秒)。 |
id_token | 必須 | 認可コードに紐付く、IDトークン。JWT 形式で応答される。 |
ステータスコード | |
---|---|
200 | 正常終了 |
400 | 異常終了 |
パラメータ名 | 必須/任意 | 説明 |
---|---|---|
error | 必須 | エラーコード。 |
error_description | 任意 | ・invalid_request:要求パラメータが不正。 ・invalid_client:指定されたサービス 情報が不正。 ・invalid_grant:認可コードが不正、またはリダイレクトURI が不正。 ・unauthorized_client:サービスがグラントタイプauthorization_code の利用を許可されていない。 ・unsupported_grant_type:サポートしていないグラントタイプが指定された。 ・invalid_scope:指定されたスコープが不正。 ・server_error:サーバでエラーが発生 |
POST /oauth2/token HTTP/1.1
Host: accounts.opaas.io
grant_type=authorization_code&code=NsjJpaNnH4u9BOnh&redirect_uri=https%3A%2F%2Ftest-rp.co.jp%2F&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&client_secret=ZJYCqe3GGRvdrudKyZS0XhGv_Z45DuKhCUk0gBR1vZk
codeのauth_typeがIDM の場合
POST /oauth2/token HTTP/1.1
Host: accounts.opaas.io
HTTP-X-AUTHORIZATION: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_id=xxxxxxx&client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&grant_type=authorization_code&redirect_uri=https%3A%2F%2Ftest-rp.co.jp%2F&code=NsjJpaNnH4u9BOnh
200
{
"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": 3600,
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NzA5NzUwMTEsImF6cCI6IkNMSUFOVDk5OTkiLCJzdWIiOiIwMDAwMSIsIm5vbmNlIjoibm9jZVhYWFhYWCIsImF1ZCI6IkNMSUFOVDk5OTkiLCJpc3MiOiJodHRwczpcL1wvMTkyLjE2OC4yMC43OFwvIiwiaWF0IjoxNDcwOTcxNDExfQ.oN4YB5U6m-L-m9bHS1cXVW0DkEAPLtajA0mCGdEs0VU"
}
400
{
"status":"error",
"error_description": "invalid_request"
}
ユーザーの認証用QRコードを取得するAPIである。
認証ヘッダに付与されたアクセストークンに基づき、ユーザIDを割り出し、そのユーザに対する認証トークンを生成する。生成した認証トークンは、GET accounts.opaas.io/oauth2/authorize において、(auth_type=QRを指定して)QRコード認証を行う際に、リクエストパラメータ qrtoken に指定して使用する。
QRコードを用いた認証の手順の詳細については GET accounts.opaas.io/oauth2/authorize の「QRコード認証について」を参照のこと。
本APIは、生成した認証トークンの情報を含んだQRコードの画像を出力する。
本APIで生成した認証トークンの寿命は 15 分であり、生成後15分経過すると失効する。また、認証トークンは一度使用すると失効する。
失効した認証トークンを GET accounts.opaas.io/oauth2/authorize のリクエストパラメータとして使用するとエラーとなる。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が有効となる。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
state | Query | 任意 | 要求と応答の間で維持されるランダムな値。設定された場合はそのままの値がQRコード内に記載される。 | |
html | Query | 任意 | 本パラメータを指定した場合(値は何を設定しても良い)、QRコードをHTMLの中の画像として出力する。 本パラメータを指定しなかった場合は、content-type: image/png でファイル名が qrcode.png のファイルとして出力する。 |
HTML内の画像または、ファイルとしてQRコードが出力される。
QRコード内のデータには以下の内容が記載される。
qrtoken=「ユーザの認証トークン」&state=「リクエストパラメータ state に設定された値」
ステータスコード | |
---|---|
200 | 正常終了 |
401 | トークンの設定が不正である |
500 | サーバー内部エラー |
リスポンスを画像ファイルで取得する場合。
・GET
https://api.opaas.io/api/v1/users/auth/qr?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
リスポンスをHTML内の画像で取得する場合
・GET
https://api.opaas.io/api/v1/users/auth/qr?html&access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
200
HTMLまたはpng形式の画像。
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
401
{
"error": "insufficient_scope",
"error_description": "The request requires higher privileges than provided by the access token"
}
500
技術的な問題が発生しました。ご迷惑をおかけしております。
おもてなしクラウドの提供するパーソナルデータ取得APIである。 ユーザーがおもてなしクラウドへ登録し、サービスへの提供を許可しているパーソナルデータのみを取得可能である。
OpenID Connect 1.0のUserInfoEndpointの仕様に準拠する。 認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。 存在しないパーソナルデータを指定された場合は、無視する。
必須(*)は、それが記載されているうちの、いずれか一つを必ず指定する必要があることを表す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須(*) | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が有効となる。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
rule | Query | 任意 | 〇 | ルールID。複数指定する場合は、カンマ区切りで指定する。 |
filter | Query | 任意 | 〇 | 取得したパーソナルデータ名を指定し、指定がない場合は提供が許可されている全てのパーソナルデータを取得する |
本APIで取得したパーソナルデータ passport_image のURLの有効期限は10分である。取得後10分以上経過した場合は、そのURLから画像にアクセスすることはできなくなるため、必要な場合は再度 GET user_attributes で passport_image のURLを取得する必要がある。
2018年10月5日 時点では rule機能は未提供。 今後対応予定。
レスポンスボディへの返却は、暗号化を実施しない場合は"application/json"形式、暗号化を実施する場合は"application/jwt"形式にて返却される。
”appliaction/json”形式の場合、応答レスポンスボディ内にはJSONプレーンテキスト形式のクレームセットデータのみが返却される。 ”application/jwt”形式の場合、応答レスポンスボディ内にはJWT(Json Web Token)形式のデータのみが返却される。JWT形式はBASE64URLエンコードされる。 JSONプレーンテキストまたはJWTクレームセットより下記応答形式のパラメータ(sub,iss,aud)を取得することができる。
パラメータ名 | 必須/任意 | 説明 |
---|---|---|
sub | 必須 | ユーザ識別子。 |
iss | 必須 | レスポンスの発行者の識別子(URL)。 |
aud | 必須 | サービスID。 |
パーソナルデータ | 必須 | パーソナルデータモデル(user_attributes)にてパラメータの項目を参照。 |
2018年10月5日 時点では application/json形式のみ対応している。 今後、application/jwt形式も対応予定。
ステータスコード | |
---|---|
200 | 正常終了 |
401 | トークンの設定が不正である |
500 | システム内の異常発生 |
ステータスコード500の場合のみ、jsonではなく、HTMLでレスポンス内容が返る(他のすべてのAPIについても同様)。
アクセストークンをヘッダで指定する場合
GET /api/v1/user_attributes?rule=ecDMLZ2F9H4KotFoeI5TTgO1tM9SG1f1,KdMr2Bd1sTniWgf0XOecwRqLhRYxot7w&filter=first_name,family_name,email,gender HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
アクセストークンをクエリで指定する場合
・GET
https://api.opaas.io/api/v1/user_attributes?rule=ecDMLZ2F9H4KotFoeI5TTgO1tM9SG1f1,KdMr2Bd1sTniWgf0XOecwRqLhRYxot7w&filter=first_name,family_name,email,gender&access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
200
・暗号化しない場合
{
"sub":"https://accounts.opaas.io/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"familiy_name":"Taro",
"first_name":"Suzuki",
"gender":"1",
"email":"example@service.opaas.io",
"aud":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"iss":"https://api.opaas.io/"
}
・パーソナルデータを暗号化する場合 ※パーソナルデータの暗号化は今後リリース予定
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
・パーソナルデータを暗号化しない場合
{
"sub":"https://accounts.opaas.io/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"family_name":"Taro",
"email":"example@service.opaas.io",
"aud":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"iss":"https://api.opaas.io/"
}
・パーソナルデータを暗号化する場合
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
※許可されたパーソナルデータのみ取得できる
※「ルール」を利用したパーソナルデータのセマンティクス変換は今後リリース予定
・パーソナルデータを暗号化しない場合
{
"sub":"https://accounts.opaas.io/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"year":"1982" ,
"year_jpn":"S57",
"aud":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"iss":"https://api.opaas.io/"
}
・パーソナルデータを暗号化する場合
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
※西暦(パーソナルデータ:"year")を和暦(パーソナルデータ:"year_jpn")へセマンティクス変換した場合の例
・パーソナルデータを暗号化しない場合
{
"sub":"https://accounts.opaas.io/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"year":"1982" ,
"aud":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"iss":"https://api.opaas.io/"
}
・暗号化する場合
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
※西暦(パーソナルデータ:"year")を和暦(パーソナルデータ:"year_jpn")へセマンティクス変換できない場合の例
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
401
{
"error": "insufficient_scope",
"error_description": "The request requires higher privileges than provided by the access token"
}
500
技術的な問題が発生しました。ご迷惑をおかけしております。
サービスの一覧を取得する。
必須(*)は、それが記載されているうちの、いずれか一つを必ず指定する必要があることを表す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須(*) | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
reg_date_from | Query | 任意 | サービスの登録日付による取得範囲の指定(開始日をYYYY-MM-DD形式で指定)。 | |
reg_date_to | Query | 任意 | サービスの登録日付による取得範囲の指定(終了日をYYYY-MM-DD形式で指定)。 | |
sort_type | Query | 任意 | 〇 | ソート対象のパラメータを指定する。以下の値を設定可能。 複数指定する場合はカンマで区切り、前方指定項目が優先される。 reg_date_asc, reg_date_desc以外は先頭に - をつけることで降順にできる。 name: サービス名称でソートする(昇順) title: サービスの表示用の名称でソートする(昇順) reg_date_asc: サービスの登録日付でソートする(昇順) reg_date_desc: サービスの登録日付でソートする(降順) service_domain_name: サービスが属するサービスドメイン名でソートする(昇順) signage_num: サービスに紐づくサイネージの数でソートする(昇順) require_attr_num: サービスが要求するパーソナルデータ数でソートする(昇順) |
service_id | Query | 任意 | 〇 | 検索対象のサービスID。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
name | Query | 任意 | 検索対象のサービス名称。部分一致による検索を行う。 | |
title | Query | 任意 | 検索対象の表示用の名称。部分一致による検索を行う。 | |
description | Query | 任意 | 検索対象のサービス説明。部分一致による検索を行う。 | |
service_domain_id | Query | 任意 | 検索対象のサービスドメインID。完全一致による検索を行う。 | |
service_groups | Query | 任意 | 〇 | 検索対象が属するサービスグループID。完全一致による検索を行う。複数指定する場合はカンマで区切る |
tag | Query | 任意 | 〇 | 検索対象のタグ。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
has_signage | Query | 任意 | サイネージの有無。サービスに紐付くサイネージの有無を設定。[0:無、1:有] | |
keyword | Query | 任意 | 検索対象のキーワード。表示用の名称、サービスの説明から指定されたキーワードに部分一致するサービスを取得する。 | |
geohash | Query | 任意 | 検索対象のgeohash。前方一致検索を行う。 | |
start_pos | Query | 任意 | 検索結果のうち、start_posで指定した数以降のデータを取得する。最初のデータを1とする。省略した場合は1が設定されたものとみなす。 | |
require_num | Query | 任意 | 取り出し件数の指定。省略時は全件とみなす。 |
パラメータ名 | 説明 |
---|---|
total_num | 条件にヒットした総数 |
start_pos | データの取得開始位置 |
services | サービスに関するデータをリスト形式で返す(以下のserviceの構造参照) |
パラメータ名 | 説明 |
---|---|
service_id | サービスのID |
name | アルファベット表記のサービス名 |
title | ユーザーへの表示用のサービス名称。表示用の名称を多言語対応する場合は、JSON形式で、以下のように記述する。 { "言語名": "その言語の表示用のサービス名称", ・・・ } 現バージョンで対応している言語名は以下の通りである。 ・en:英語 ・ja:日本語 |
description | サービスの説明 |
icon_url | サービスを画面表示する際に利用するアイコンのURL |
tags | タグの名前をリスト形式で格納する |
service_domain_id | サービスが属するサービスドメインのIDを表す |
service_groups | サービスが属するサービスグループのIDをリスト形式で格納する |
geohash | サービスの提供エリアをgeohash 形式で格納する。geohashは次のURLを参照 https://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%AA%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5 |
floor | サービスの提供フロアがある場合は格納する |
attrs | 要求しているパーソナルデータ名をリスト形式で格納する |
reg_date | 登録日を格納する |
ステータスコード | |
---|---|
200 | 正常終了 |
400 | リクエストパラメータの設定が正しくない |
401 | トークンの設定が不正である |
500 | システム内の異常発生 |
アクセストークンをヘッダで指定する場合
GET /api/v1/services/ HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxx
アクセストークンをクエリで指定する場合
・GET
https://api.opaas.io/api/v1/services/?access_token=xxxxxxxxxx
200
{
"total_num": 2,
"start_pos": 1,
"services": [
{
"service_id": "2000000000000000001000000000000a",
"name": "service1",
"title": "サービス1",
"description": "説明1",
"icon_url": "http://test.com",
"tags": [ "abcde" ],
"service_domain_id": "20000000000000000020000000000000",
"service_groups": [ "20000000000000000030000000000000" ],
"geohash": "u4pruydqqvj",
"floor": "1.0",
"attrs": [ "age", "destination" ],
"reg_date": "2018-10-07"
"canmodify_userdata": false,
"client": "567541",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"passphrase": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"redirect_uris": [ "http://example.com/" ]
},
{
"service_id": "2000000000000000001000000000000b",
"name": "service2",
"title": "サービス2",
"description": "説明2",
"icon_url": "http://test.com",
"tags": [],
"service_domain_id": "20000000000000000020000000000001",
"service_groups": [ "20000000000000000030000000000000" ],
"geohash": "u4pruydqqvj",
"floor": "10.0",
"attrs": [ "address_line_1", "address_line_2", "country" ],
"reg_date": "2018-10-07"
},
]
}
サービスが一つも登録されていない場合でも、エラーとはしない。
401
{
"error": "invalid token",
"message": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
401
{
"error": "insufficient_scope",
"message": "The request requires higher privileges than provided by the access token"
}
400
{
"status": "error",
"message": "Parameter error. Parameter has_signage must be 0 or 1. Current value is 2"
}
サービスの情報を取得する。
必須(*)は、それが記載されているうちの、いずれか一つを必ず指定する必要があることを表す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須(*) | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
id | Path | 必須 | 取得するサービスのID |
GET api.opaas.io/api/v1/services/ の個々のサービスのレスポンスパラメータと同じ形式で出力される。
ステータスコード | |
---|---|
200 | 正常終了 |
401 | トークンの設定が不正である |
404 | {id}のサービスが存在しない |
500 | システム内の異常発生 |
アクセストークンをヘッダで指定する場合
GET /api/v1/services/2000000000000000001000000000000a/ HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxx
アクセストークンをクエリで指定する場合
・GET
https://api.opaas.io/api/v1/services/2000000000000000001000000000000a/?access_token=xxxxxxxxxx
200
{
"service_id": "2000000000000000001000000000000a",
"name": "service1",
"title": "サービス1",
"description": "説明1",
"icon_url": "http://test.com",
"tags": [ "abcde" ],
"service_domain_id": "20000000000000000020000000000000",
"service_groups": [ "20000000000000000030000000000000" ],
"geohash": "u4pruydqqvj",
"floor": "1.0",
"attrs": [ "age", "destination" ],
"reg_date": "2018-10-07"
}
404
{
"status": "error",
"message": "service id xxxxxxxxxxxxxxxxxxxxxxxxx does not exist."
}
401
{
"error": "invalid token",
"message": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
401
{
"error": "insufficient_scope",
"message": "The request requires higher privileges than provided by the access token"
}
ルールの情報を取得する。(今後提供予定)
OpenID Connect Discovery (https://openid.net/specs/openid-connect-discovery-1_0.html) の OpenID Provider Metadata の情報を取得する。
なし
OpenID Provider Metadata の情報がJSON形式で返る。
ステータスコード | |
---|---|
200 | 正常終了 |
GET /.well-known/openid-configuration HTTP/1.1
Host: accounts.opaas.io
200
{
"issuer": "https://accounts.opaas.io",
"authorization_endpoint": "https://accounts.opaas.io/oauth2/authorize",
以下略
}
POST accounts.opaas.io/oauth2/token のレスポンスパラメータの id_token の暗号化で使われている公開鍵暗号の公開鍵の情報を取得する。
なし
公開鍵の情報がJSON形式で返る。
ステータスコード | |
---|---|
200 | 正常終了 |
GET /oauth2/jwks HTTP/1.1
Host: accounts.opaas.io
200
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"kid": "b6a08db36ca10a325076003e90a7266d",
"n": "qKoplSEdGtXEiI-wiuHewgbA1vhZiU6-ktVTKHB-LMLoee_1Qpv_TbELx0uXAsCH-z8swabD3kCp9snmIqYQauYediqbuCQEA3K7TVrTcmdChxhg9oRsahqbVqS5LQyhidQJ9wbf_I0kSb_ysC4SADoos0-Uordr19vG7bSwP7FZHmdHdqdb4uJvRfIPSahM3MJk87wU2rmo9u6pUSqWqQTlFtl9BXHt7T2FF3qo0FuWGHhDlRXYJSeuUav5U_2JFxbwawxhrKdY-G4JBr1KENuv7rChIYYp7Td_2lS9_0N_3mBw-euDGLG3SxWgLA0dM4XK35fElCirVvqdxni7LQ",
"e": "AQAB"
}
]
}
おもてなしクラウドの提供するパーソナルデータ更新APIである。 ユーザーがサービスへの提供を許可しているパーソナルデータのみ、 さらにサービスがパーソナルデータの編集権限を持つ場合のみ更新可能である。
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。 存在しないパーソナルデータを指定された場合は、無視する。
本APIは、PUTとPATCHメソッドで同一の動作を行う。
パーソナルデータのうち、 passport_image は後述の PUT or PATCH api.opaas.io/api/v1/user_attributes/image で変更する。また、email については変更できない。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
user_attribute | Body | 必須 | 〇 | ・更新するパーソナルデータを、JSONのオブジェクト形式で下記のフォーマットで指定する。 ・更新するパーソナルデータは、user_attributeの値として、JSONのオブジェクト形式で複数同時に設定できる。 ・PUT、PATCHメソッド共に、指定したパーソナルデータのみ更新する。 ・更新可能なパーソナルデータの種類と、各パーソナルデータが取りうる値については、パーソナルデータのモデルの表を参照。 ・パーソナルデータ passport_image はこのAPIではなく、後述の PUT or PATCH api.opaas.io/api/v1/user_attributes/imageで更新する。 ・パーソナルデータのモデルの表のうち、データ型にArrayが表記されているものは、更新後の値をJSONのリスト形式で設定する。 ・更新後の値に "" (空文字)を設定することで、パーソナルデータの設定値を削除することができる。emailを除くすべてのパーソナルデータ(データ型がArrayのものも含む)をこの方法で削除することができる。 {"user_attribute": { "更新するパーソナルデータ名": 更新後の値, ・・・ }} |
更新したパーソナルデータ名と更新後の値をJSONのオブジェクト形式で返す。
ステータスコード | |
---|---|
200 | 正常終了 |
400 | リクエストパラメータの設定が正しくない |
401 | トークンの設定が不正である |
403 | 許可されていないパーソナルデータを更新しようとした |
500 | システム内の異常発生 |
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"age": 20, "destination": ["Tokyo", "Osaka"]}}
200
{"age": 20, "destination": ["Tokyo", "Osaka"]}
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
403
{
"status": "error",
"message": "Forbidden. Service xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx is not allowed to change user attribute."
}
403
{
"status": "error",
"message": "Forbidden. You are not allowed to change scope age."
}
現状では許可されていないパラメータが複数あった場合でも、messageには最初に見つかったscopeだけを表示する。
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"age": ""}}
200
{"age": null}
データを削除した場合は、レスポンス内容の更新後の値は null となる。
PUT /api/v1/user_attributes
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"age": 20, "dummy": 0}}
200
{"age": 20}
存在しないパーソナルデータを変更しようとした場合は無視され、エラーとはしない。
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":}
400
{
"status": "error",
"message": "Parameter error. Parameter {\"user_attribute\":} is not JSON format"
}
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"dummy":{"age": 0}}
400
{
"status": "error",
"message": "Parameter error. Parameter user_attribute is required."
}
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"gender": 5}}
400
{
"status": "error",
"message": "Parameter error. {'gender': [\"Value '5' is not a valid choice.\"]}"}
}
複数のパーソナルデータを同時に更新しようとした場合、一つでもパーソナルデータの設定値が不正であった場合は、他のパーソナルデータの更新値が適切であったとしても、パーソナルデータは一切更新されない。
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"priority_language": "aaa"}}
400
{
"status": "error",
"message": "Parameter error. {'priority_language': ['Value aaa must be list.']}"
}
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"email": ""}}
400
{
"status": "error",
"message": "Parameter error. Scope email can not be modified."
}
PUT /api/v1/user_attributes HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"user_attribute":{"passport_image": ""}}
400
{
"status": "error",
"message": "Parameter error. Please use PUT or PATCH user_attributes/image to change passport_image."
}
おもてなしインフラの提供するパーソナルデータ passport_image の更新を行うAPIである。 ユーザーが passport_image への提供を許可している場合のみ、 さらにサービスがパーソナルデータの編集権限を持つ場合のみ更新が可能である。
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。
本APIは、PUTとPATCHメソッドで同一の動作を行う。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
upload_file | Body | 必須 | 更新する画像ファイルのデータを Content-Type: multipart/form-data でBodyに記述する。 | |
なし
ステータスコード | |
---|---|
201 | 正常終了 |
401 | トークンの設定が不正である |
403 | 許可されていないパーソナルデータを更新しようとした |
500 | システム内の異常発生 |
PUT /api/v1/user_attributes/image HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx
Content-Length: xxxxxxx
Content-Type: multipart/form-data; 以下省略
curlでリクエストした場合の例
curl "https://api.opaas.io/api/v1/user_attributes/image" -L -X PATCH -H "Authorization: Bearer xxxxxxxxxxxxxxx" -F upload_file=@C:\Users\xxxxx\xxxxxx.jpg
201
なし
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
403
{
"status": "error",
"message": "Forbidden. Service xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx is not allowed to change user attribute."
}
403
{
"status": "error",
"message": "Forbidden. Scope passport_image is required."
}
おもてなしクラウドの提供するパーソナルデータ passport_image の削除を行うAPIである。 ユーザーが passport_image への提供を許可している場合のみ、 さらにサービスがパーソナルデータの編集権限を持つ場合のみ削除が可能である。
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
item_key | Body | 必須 | Content-Type: application/x-www-form-urlencoded で itemkey=passport_image をBodyに記述する。 |
なし
ステータスコード | |
---|---|
201 | 正常終了 |
401 | トークンの設定が不正である |
403 | 許可されていないパーソナルデータを更新しようとした |
500 | システム内の異常発生 |
DELETE /api/v1/user_attributes/image HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
item_key=passport_image
204
なし
パーソナルデータに passport_image が存在しない場合もエラーとはならず、正常終了する。
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
403
{
"status": "error",
"message": "Forbidden. Service xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx is not allowed to change user attribute."
}
400
{
"status": "error",
"message": "Parameter error. Parameter item_key is required."
}
400
{
"status": "error",
"message": "Parameter error. Parameter item_key dummy is not passport_image."
}
403
{
"status": "error",
"message": "Forbidden. Scope passport_image is required."
}
パーソナルデータをサービスへ要求・提供した記録およびパーソナルデータを変更した履歴を取得する。 サービスが許可されているパーソナルデータに関する記録のみ取得できる。
必須(*)は、それが記載されているうちの、いずれか一つを必ず指定する必要があることを表す。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須(*) | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
service_id | Query | 任意 | 検索対象のサービスID。完全一致による検索を行う。 | |
per_page | Query | 任意 | レスポンスに格納される1ページあたりの履歴の件数。未指定の場合は全件格納される。 | |
page | Query | 任意 | レスポンスのページ。per_pageが設定された場合のみ有効となる。未指定の場合は1。 | |
date_from | Query | 任意 | 履歴の日付による取得範囲の指定(開始日をYYYY-MM-DD形式で指定) | |
date_to | Query | 任意 | 履歴の日付による取得範囲の指定(終了日をYYYY-MM-DD形式で指定) | |
sort_order | Query | 任意 | 日付による履歴の並び順(ASC: 古い順、 DESC: 新しい順 を指定可能) | |
action | Query | 任意 | パーソナルデータへの提供・変更等の種類を指定して履歴を絞り込む(OFFER: 要求、READ: 提供、UPDATE: 変更) |
結果はJSONのオブジェクト形式で下記の表の内容を返す。
パラメータ名 | 説明 |
---|---|
total_count | 条件にヒットする履歴の総数 |
history | 履歴に関するデータをリスト形式で返す |
per_page | リクエストパラメータにper_pageを設定した場合のみ、per_pageの値が設定される。 |
page | リクエストパラメータにper_pageを設定した場合のみ、pageの値が設定される。 |
historyの構造
パラメータ名 | 説明 |
---|---|
action | アクションの種類(OFFER: 要求、READ: 提供、UPDATE: 変更) |
status | trueを返す |
service_id | パーソナルデータを要求・提供・変更したサービスのID |
item_text | パーソナルデータを変更した場合(action=UPDATE)、変更したパーソナルデータ名とその値をオブジェクトとして格納。それ以外の場合は {} を格納。 |
key_list | 要求・変更・提供したパーソナルデータ名のリスト(リスト形式) |
created_at | 履歴が作成された日時(ISO 8601形式) |
ステータスコード | |
---|---|
200 | 正常終了 |
400 | リクエストパラメータの設定が正しくない |
401 | トークンの設定が不正である |
500 | システム内の異常発生 |
アクセストークンをヘッダで指定する場合
GET /api/v1/user_attributes/history HTTP/1.1
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
アクセストークンをクエリで指定する場合
・GET
GET https://api.opaas.io/api/v1/user_attributes/history?access_token=xxxxxxxxxx
200
{
"total_count": 185,
"history": [
{
"action": "OFFER",
"status": true,
"service_id": "2000000000000000001000000000000a",
"item_text": {},
"key_list": [
"accessibility", "address_line_1", "address_line_2", "age", "city", "country", "day_of_birth", "destination", "email", "entry_date", "family_name", "first_name", "food_and_drink_prohibition", "food_preference", "gender", "issue_date", "month_of_birth", "native_language", "original_address", "original_name", "passport_birth", "passport_country", "passport_gender", "passport_image", "passport_mrz", "passport_name", "passport_nationality", "passport_number", "priority_language", "qualification_for_stay", "state", "telephone", "term_of_validity", "user_interface", "year_of_birth", "zip"]
"created_at": "2018-09-16T06:07:36.943Z"
},
{
"action": "UPDATE",
"status": true,
"service_id": "2000000000000000001000000000000a",
"item_text": {"destination": "Tokyo"},
"key_list": ["destination"],
"created_at": "2018-09-16T06:22:29.080Z"
},
以下略
]
}
401
{
"error": "invalid_token",
"error_description": "The access token provided is expired, revoked, malformed, or invalid for other reasons"
}
・GET
GET https://api.opaas.io/api/v1/user_attributes/history?access_token=xxxxxxxxxx&per_page=a
400
{
"status": "error",
"message": "Parameter error. Parameter per_page a must be positive integer value."
}
サービスドメインの一覧を取得する。
サービスドメインは、特定の企業、団体などが扱う複数のサービスを集めたものであり、サービスは必ず一つのサービスドメインに属する必要がある。
認証ヘッダに付与されたアクセストークンに基づき、ユーザーIDを割り出す。
サービスドメイン一覧の取得を行うにはアクセストークンから割り出したユーザがサービスドメインに対する管理者権限を持つ必要がある。インフラ管理者はすべてのサービスドメインを、サービスドメインの管理者は自身が管理するサービスドメインの一覧を取得できる。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | httpヘッダ | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
service_domain_id | Query | 任意 | 〇 | 検索対象のサービスドメインID。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
name | Query | 任意 | 検索対象のサービスドメイン名称。部分一致による検索を行う。 | |
title | Query | 任意 | 検索対象の表示用の名称。部分一致による検索を行う。 | |
description | Query | 任意 | 検索対象のサービス説明。部分一致による検索を行う。 | |
service_id | Query | 任意 | 検索対象に属するサービスID。完全一致による検索を行う。 | |
tag | Query | 任意 | 〇 | 検索対象のタグ。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
keyword | Query | 任意 | 検索対象のキーワード。表示用の名称、サービスドメインの説明から指定されたキーワードに部分一致するサービスドメインを取得する。 | |
reliability_from | Query | 任意 | 信頼度による取得範囲の下限の指定 | |
reliability_to | Query | 任意 | 信頼度による取得範囲の上限を指定 | |
reg_date_from | Query | 任意 | 履歴の日付による取得範囲の指定(開始日をYYYY-MM-DD形式で指定) | |
reg_date_to | Query | 任意 | 履歴の日付による取得範囲の指定(終了日をYYYY-MM-DD形式で指定) | |
start_pos | Query | 任意 | 検索結果のうち、start_posで指定した数以降のデータを取得する。最初のデータを1とする。省略した場合は1が設定されたものとみなす。 | |
require_num | Query | 任意 | 取り出し件数の指定。省略時は全件とみなす。 | |
sort_type | Query | 任意 | 〇 | ソート対象のパラメータを指定する。以下の値を設定可能。 複数指定する場合はカンマで区切り、前方指定項目が優先される。 reg_date_asc, reg_date_desc以外は先頭に - をつけることで降順にできる。 name: サービスドメインのアルファベット表記でソートする(昇順) title: サービスドメインのユーザへの提示用の名前でソートする(昇順) reliability: サービスドメインの信頼度でソートする(昇順) reg_date_asc: サービスドメインの登録日付でソートする(昇順) reg_date_des: サービスドメインの登録日付でソートする(降順) service_domain_id: サービスドメインのIDでソートする(昇順) service_num: サービスドメインに属するサービスの数でソートする(昇順) |
パラメータ | 説明 |
---|---|
total_num | サービスドメインの総数 |
start_pos | 結果の取得開始位置 |
service_domains | サービスドメインのリスト |
サービスドメインのデータ構造
パラメータ | 説明 |
---|---|
service_domain_id | サービスドメインのID |
name | サービスドメインのアルファベット表記の名前 |
title | ユーザーへの提示用のサービスドメインの名前 |
description | サービスドメインの説明 |
icon_url | サービスドメインのアイコン |
tags | サービスドメインのタグのリスト |
reliability | サービスドメインの信頼度 |
サービスドメインのメールアドレス | |
telephone | サービスドメインの電話番号 |
division | サービスドメインの部署 |
address | サービスドメインの住所 |
website | サービスドメインのウェブサイトのURL |
reg_date | サービスドメインの登録日 |
services | サービスドメインに属するサービスのIDのリスト |
ステータスコード | |
---|---|
200 | 正常終了 |
403 | 認証エラー |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/service_domains/?access_token=xxxxxxxxxxx
200
{
"total_num": 1,
"start_pos": 1
"service_domains": [{
"service_domain_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name":"service domain 1",
"title": "サービスドメイン1",
"description": "サービスドメイン1の説明",
"icon_url":"http://test.com",
"tags": [ "test tag1", "test tag2" ],
"reliability": 1,
"email": "a@test.com",
"telephone": "012-345-6789",
"division": "test",
"address": "Nagoya",
"website": "http://web.com",
"reg_date": "2018-09-08",
"services": [
"00000000000000000000010000000003",
"00000000000000000000010000000007",
]
}]
}
403
)
{
"status":"error",
"message": "Request user is not administrator."
}
サービスドメインの情報を取得する
認証ヘッダに付与されたアクセストークンに基づき、ユーザーIDを割り出す。
サービスドメインの取得を行うにはアクセストークンから割り出したユーザがサービスドメインに対する管理者権限を持つ必要がある。インフラ管理者または、サービスドメインの管理者のみがサービスドメインの情報を取得できる。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | httpヘッダ | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
id | Path | 必須 | 取得するサービスドメインのID |
GET api.opaas.io/service_domains/ の個々のサービスドメインのパラメータと同じ。
ステータスコード | |
---|---|
200 | 正常終了 |
403 | 認証エラー |
404 | {id}のサービスドメインが存在しない |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/service_domains/{id}/?access_token=xxxxxxxxx
200
{
"service_domain_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name":"service domain 1",
"title": "サービスドメイン1",
"description": "サービスドメイン1の説明",
"icon_url":"http://test.com",
"tags": [ "test tag1", "test tag2" ],
"reliability": 1,
"email": "a@test.com",
"telephone": "012-345-6789",
"division": "test",
"address": "Nagoya",
"website": "http://web.com",
"reg_date": "2018-09-08",
"services": [
"00000000000000000000010000000003",
"00000000000000000000010000000007",
]
}
403
)
{
"status":"error",
"message": "Request user is not administrator."
}
サービスグループの一覧を取得する。サービスグループを利用することで、複数のサービスに対してパーソナルデータの提供を一括で設定できる。
認証ヘッダに付与されたアクセストークンに基づき、ユーザーIDを割り出す。
サービスグループ一覧の取得を行うにはアクセストークンから割り出したユーザがサービスグループに対する管理者権限を持つ必要がある。インフラ管理者はすべてのサービスグループを、サービスグループの管理者は自身が管理するサービスグループの一覧を取得できる。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | httpヘッダ | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
service_group_id | Query | 任意 | 〇 | 検索対象のサービスグループID。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
name | Query | 任意 | 検索対象のサービスグループ名称。部分一致による検索を行う。 | |
title | Query | 任意 | 検索対象の表示用の名称。部分一致による検索を行う。 | |
description | Query | 任意 | 検索対象のサービス説明。部分一致による検索を行う。 | |
services | Query | 任意 | 〇 | 検索対象に属するサービスID。完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
keyword | Query | 任意 | 検索対象のキーワード。表示用の名称、サービスグループの説明から指定されたキーワードに部分一致するサービスグループを取得する。 | |
reg_date_from | Query | 任意 | 履歴の日付による取得範囲の指定(開始日をYYYY-MM-DD形式で指定) | |
reg_date_to | Query | 任意 | 履歴の日付による取得範囲の指定(終了日をYYYY-MM-DD形式で指定) | |
start_pos | Query | 任意 | 検索結果のうち、start_posで指定した数以降のデータを取得する。最初のデータを1とする。省略した場合は1が設定されたものとみなす。 | |
require_num | Query | 任意 | 取り出し件数の指定。省略時は全件とみなす。 | |
sort_type | Query | 任意 | 〇 | ソート対象のパラメータを指定する。以下の値を設定可能。 複数指定する場合はカンマで区切り、前方指定項目が優先される。 reg_date_asc, reg_date_desc以外は先頭に - をつけることで降順にできる。 name: サービスグループのアルファベット表記でソートする(昇順) title: サービスグループのユーザへの提示用の名前でソートする(昇順) reg_date_asc: サービスグループの登録日付でソートする(昇順) reg_date_des: サービスグループの登録日付でソートする(降順) service_group_id: サービスグループのIDでソートする(昇順) service_num: サービスグループに属するサービスの数でソートする(昇順) |
パラメータ | 説明 |
---|---|
total_num | サービスグループの総数 |
start_pos | 結果の取得開始位置 |
service_groups | サービスグループのリスト |
サービスグループのデータ構造
パラメータ | 説明 |
---|---|
service_group_id | サービスグループのID |
name | サービスグループのアルファベット表記の名前 |
title | ユーザーへの提示用のサービスグループの名前 |
description | サービスグループの説明 |
icon_url | サービスグループのアイコン |
reg_date | サービスグループの登録日 |
services | サービスグループに属するサービスのIDのリスト |
ステータスコード | |
---|---|
200 | 正常終了 |
403 | 認証エラー |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/service_groups/?access_token=xxxxxxxxxxx
200
{
"total_num": 1,
"start_pos": 1
"service_groups": [{
"service_group_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name":"service group 1",
"title": "サービスグループ1",
"description": "サービスグループ1の説明",
"icon_url":"http://test.com",
"reg_date": "2018-09-08",
"services": [
"00000000000000000000010000000003",
"00000000000000000000010000000007",
]
}]
}
403
)
{
"status":"error",
"message": "Request user is not administrator."
}
サービスグループの情報を取得する
認証ヘッダに付与されたアクセストークンに基づき、ユーザーIDを割り出す。
サービスグループの取得を行うにはアクセストークンから割り出したユーザがサービスグループに対する管理者権限を持つ必要がある。インフラ管理者または、サービスグループの管理者のみがサービスグループの情報を取得できる。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | httpヘッダ | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が優先される。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 | |
id | Path | 必須 | 取得するサービスグループのID |
GET api.opaas.io/service_groups/ の個々のサービスグループのパラメータと同じ。
ステータスコード | |
---|---|
200 | 正常終了 |
403 | 認証エラー |
404 | {id}のサービスグループが存在しない |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/service_groups/{id}/?access_token=xxxxxxxxx
200
{
"service_group_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name":"service group 1",
"title": "サービスグループ1",
"description": "サービスグループ1の説明",
"icon_url":"http://test.com",
"reg_date": "2018-09-08",
"services": [
"00000000000000000000010000000003",
"00000000000000000000010000000007",
]
}
403
)
{
"status":"error",
"message": "Request user is not administrator."
}
ユーザー登録を行うAPIである。 認証ヘッダに付与されたアクセストークンに基づき、サービスIDを割り出し、 サービスがパーソナルデータの編集権限を持つ場合のみ登録が可能である。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
Content-Type | Header | 必須 | application/jsonを指定する | |
(パラメーター名無し) | Body | 必須 | 登録するユーザの情報をJSON形式で格納する。指定するユーザの情報は以下の通り。 ・login_id ユーザのログインIDをメールアドレス形式で設定する。 ・password 登録するユーザのパスワード ・user_status 登録するユーザのステータス。0と1を指定可能だが、現状ではこのパラメータは使用されない。 |
GET accounts.opaas.io/oauth2/signup と異なり、本APIを実行することで直接ユーザの登録が行われる。その際に、login_id のメールアドレスの実在性のチェックは行われない。また、パスワードもこのAPIで直接設定する。
本APIはユーザのICカードの情報 (IDm) を設定することはできない。ユーザの IDm は PUT or PATCH api.opaas.io/api/v1/users/auth で編集する。
目的地等のパーソナルデータは PUT or PATCH api.opaas.io/api/v1/user_attirbutes で設定するため、本APIでは受け付けない
登録に成功した場合、下記のパラメータがJSONのオブジェクト形式で返される。 なお、レスポンスパラメータにパスワードの情報は表示されない。
パラメータ | 説明 |
---|---|
org_id | 登録したユーザーのID (Ucode) |
login_id | 登録したユーザーのログインID(メールアドレス) |
user_status | 登録したユーザーの状態(現時点では未使用) |
ステータスコード | |
---|---|
201 | 正常終了 |
400 | パラメータエラー |
401 | トークンの設定が不正である |
403 | 認証エラー |
500 | サーバー内部エラー |
POST /api/v1/users
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type:application/json
Content-Length: 61
{"login_id":"a@test.com","password":"xxxxxx","user_status":0}
201
{
"org_id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"login_id": "a@test.com",
"user_status": "0"
}
403
{
"error": "error",
"message": "Forbidden. Service xxxxxxx is not allowed to change user attribute."
}
400
{
"status": "error",
"message": "{'login_id': ['Authori User with this xxxxxxxxxxxxxxxxxxxx already exists.']}"
}
400
{
"status": "error",
"message": "{'login_id': ['Enter a valid email address.']}"
}
ユーザーの認証情報である、IDm と user_status(現時点ではこのパラメータは未使用) の情報を取得するAPIである。本APIでパスワードを取得することはできない。
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出し、割り出したユーザの認証情報を変更する。
サービスがパーソナルデータの編集権限を持つ場合のみ情報の取得が可能である。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
access_token | Query | 必須(*) | アクセストークンはQueryとして指定することも可能。httpヘッダと同時に指定した場合は、httpヘッダの値が有効となる。Queryで指定する場合は、token_typeがBearerのもののみを受け付け、access_token取得値のみ指定する。 |
idm と user_status の値がJSONのオブジェクト形式で返される。
パラメータ | 説明 |
---|---|
user_status | ユーザのステータス情報(現時点では未使用) |
idm | IDm |
ステータスコード | |
---|---|
200 | 正常終了 |
401 | トークンの設定が不正である |
403 | 認証エラー |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/users/auth?access_token=xxxxxxxxxx
200
{
"idm": "zzzzzzzz",
"user_status": "0"
}
ユーザーの認証情報である、パスワードとIDmを設定するAPIである。パスワードのみ、IDmのみの変更も可能である。
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出し、割り出したユーザの認証情報を変更する。
サービスがパーソナルデータの編集権限を持つ場合のみ登録が変更である。
GET accounts.opaas.io/oauth2/resetpassword と異なり、本APIを実行することで直接ユーザのパスワードの変更が行われる。
本APIは、PUTとPATCHメソッドで同一の動作を行う。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
Content-Type | Header | 必須 | application/jsonを指定する | |
(パラメーター名無し) | Body | 必須 | 変更するユーザの情報をJSON形式で格納する。指定するユーザの情報は以下の通り。 ・old_password ユーザーの古いパスワードを指定する。指定された場合は古いパスワードが正しいかチェックするが、指定されなかった場合はチェックしない。 ・new_password ユーザーの新しいパスワードを指定する。 ・idm ユーザーの新しいIDmを指定する。現在のユーザが設定している値も含め、既存のユーザが設定しているIDmと同じ値を設定した場合はエラーとなる。 |
変更した場合、変更後のパラメータがJSONのオブジェクト形式で返される。
パラメータ | 説明 |
---|---|
new_password | 新しいパスワード |
idm | 新しいIDm |
ステータスコード | |
---|---|
200 | 正常終了 |
400 | パラメータエラー |
401 | トークンの設定が不正である |
403 | 認証エラー |
500 | サーバー内部エラー |
PUT /api/v1/users
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type:application/json
Content-Length: 70
{"old_password":"xxxxxxxx","new_password":"yyyyyyyy","idm":"zzzzzzzz"}
200
{
"idm": "zzzzzzzz"
}
パスワードを変更した場合、レスポンス内容には表示されない。
PUT /api/v1/users
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type:application/json
Content-Length: 2
{}
200
{}
パラメータを一つも設定しない場合でも、エラーとはしない。
400
{
"status": "error",
"message": "Parameter error. Parameter old_password is invalid."
}
400
{
"status": "error",
"message": "Parameter error. IDm xxx already exist."
}
自分自身のパーソナルデータをどのサービスに提供するかに関する設定状況を取得するAPIである。(ポータルアプリ等から呼び出されることを想定)
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。
サービスがパーソナルデータの編集権限を持つ場合のみ取得が可能である。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | httpヘッダ | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
service_id | Query | 任意 | 〇 | 検索対象のうち、type が service のものについて、IDによる完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
service_domain_id | Query | 任意 | 〇 | 検索対象のうち、type が service_domain のものについて、IDによる完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
service_group_id | Query | 任意 | 〇 | 検索対象のうち、type が service_group のものについて、IDによる完全一致による検索を行う。複数指定する場合はカンマで区切る。 |
reliability | Query | 任意 | 検索対象のうち、type が reliability のものについて、完全一致による検索を行う。 | |
min_reliability | Query | 任意 | 検索対象のうち、type が reliability のものについて、指定した値以上のものの検索を行う。 | |
reliability | Query | 任意 | 検索対象のうち、type が reliability のものについて、指定した値以下のものの検索を行う。 | |
sort_type | Query | 任意 | ソート対象のパラメータを指定する。auth_num または -authnum を設定可能。auth_num を設定した場合、許可するパーソナルデータの数でソートする(昇順)。-authnum の場合は降順でソートする。 |
結果はJSONのオブジェクト形式で下記の表の内容を返す。
パラメータ名 | 説明 |
---|---|
user_authorities | 設定状況を表す配列。配列の各要素のデータ構造は下記の表を参照 |
user_authorities の配列の各要素(オブジェクト)の構造
パラメータ名 | 説明 |
---|---|
type | 設定の種類。service, service_domain, service_group, reliablity のいずれかの値を取り、type_id で設定される対象に、attrs で許諾されているパーソナルデータが提供される。同じパーソナルデータに対して複数の提供ポリシーが設定されている場合は、service > service_domain > service_group > reliability の順で優先度が最も高いものが使われる。 |
type_id | 提供の対象。type が service の場合は service_id, service_domain の場合は servie_domain_id, service_group の場合は service_group_id、reliability の場合は、service_domain の信頼度の下限値が得られる |
attrs | パーソナルデータのアクセス権限の情報を表す配列。配列の各要素のデータ構造は下記の表を参照 |
attrs の配列の各要素(オブジェクト)の構造。attrs に表示されないパーソナルデータは、すべてtype, type_id の条件では許諾されていないものとみなされる。
パラメータ名 | 説明 |
---|---|
attr_id | パーソナルデータ名 |
authority | パーソナルデータのアクセス権限。0:未設定、1: 許諾する、2:許諾しない のいずれかの値を取る。現時点の実装では、0と2は同義である。 |
ステータスコード | |
---|---|
200 | 正常終了 |
400 | パラメータエラー |
401 | トークンの設定が不正である |
403 | 認証エラー |
500 | サーバー内部エラー |
・GET
GET https://api.opaas.io/api/v1/users/permissions/?access_token=xxxxxxxxx
200
{
"user_authorities": [
{
"type": "reliability",
"type_id": "1",
"attrs": [
{
"attr_id": "gender",
"authority": "1"
},
{
"attr_id": "age",
"authority": "0"
}
]
}
]
}
403
{
"status": "error",
"message": "Forbidden. Service xxxxxxxx is not allowed to change user attribute."
}
自分自身のパーソナルデータをどのサービスに提供するか設定する (ポータルアプリ等から呼び出されることを想定)
認証ヘッダに付与されたアクセストークンに基づき、サービスID、ユーザーIDを割り出す。
サービスがパーソナルデータの編集権限を持つ場合のみ設定が可能である。
本APIは、PUTとPATCHメソッドで同一の動作を行う。
パラメータ名 | Path/Query/ Body/Header |
必須/任意 | 複数指定可否 | 説明 |
---|---|---|---|---|
Authorization | Header | 必須 | トークン要求受付API (POST accounts.opaas.io/oauth2/token) で発行されたアクセストークン。トークン要求受付APIで発行されたtoken_typeとaccess_tokenを利用する。指定する値は、”[token_type取得値] [access_token取得値]”とする。 | |
Content-Type | Header | 必須 | application/jsonを指定する | |
(パラメーター名無し) | Body | 必須 | どのサービスに提供するかを表すポリシーをJSON形式で格納する。指定する形式は、GET api.opaas.io/api/v1/users/permissions のレスポンスパラメータと同じである。 本APIは、user_authorities の配列で指定された以外の type の設定状況には影響を与えない。 user_authorities の配列内に、同じ type のデータを複数設定した場合は、最後に設定されたものが有効となる。 |
変更した場合、変更後のパラメータがJSONのオブジェクト形式で返される。
ステータスコード | |
---|---|
200 | 正常終了 |
400 | パラメータエラー |
401 | トークンの設定が不正である |
403 | 認証エラー |
500 | サーバー内部エラー |
PUT /api/v1/users/permissions
Host: api.opaas.io
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type:application/json
Content-Length: 144
{"user_authorities":[{"type":"reliability", "type_id":"1", "attrs":[{"attr_id":"gender", "authority": "1"},{"attr_id":"age", "authority": 2}]}]}
200
{
"user_authorities": [
{
"type": "reliability",
"type_id": "1",
"attrs": [
{
"attr_id": "gender",
"authority": "1"
},
{
"attr_id": "age",
"authority": 2
}
]
}
]
}
上記の例の場合、type が reliability の設定状況のみ更新される(type が service, service_domain, service_group の設定状況には影響を与えない)。
403
{
"status": "error",
"message": "Forbidden. Service xxxxxxxx is not allowed to change user attribute."
}
400
{
"status": "error",
"message": "Parameter user_authorities is required"
}
おもてなしパーソナルデータのモデルを記載します。
項目名 | データ型 | 複数 | 説明 |
---|---|---|---|
gender | String | 性別。とりうる値は、ISO 5218 で規定された区分を利用。 | |
age | String | 年代。 とりうる値は、00,10,20,30,40,50,60,70,80,90。 | |
native_language | String | 母国語。とりうる値は、IETF言語タグで規定された区分を利用。 | |
priority_language | Array[String] | 〇 | 優先言語。とりうる値は、IETF言語タグで規定された区分を利用。 |
destination | Array[String] | 〇 | 目的地のリスト。とりうる値は","を含まない文字列。 |
arrival_airport | String | 到着空港。とりうる値は、IATA空港コード(3レターコード)とする。 | |
departure_airport | String | 出発空港。とりうる値は、IATA空港コード(3レターコード)とする。 | |
arrival_date | String | 到着日。"YYYY-MM-DD"形式で登録。 | |
departure_date | String | 出発日。"YYYY-MM-DD"形式で登録。 | |
user_interface | Array[String] | 〇 | 希望するユーザーインタフェース。とりうる値は、コード表"希望するユーザーインタフェースに関わるコード"参照。 |
accessibilty | Array[String] | 〇 | アクセシビリティに関する情報。とりうる値は、コード表"アクセシビリティに関する情報"参照。 |
food_and_drink_prohibition | Array[String] | 〇 | 食の禁忌。とりうる値は、コード表"食の禁忌に関わるコード"参照。 |
food_preference | Array[String] | 〇 | 食の嗜好。とりうる値は、コード表"食の嗜好に関わるコード"参照。2次リリースで追加予定。 |
String | メールアドレス。 | ||
first_name | String | アルファベット表記の名。 | |
family_name | String | アルファベット表記の姓。 | |
original_name | String | 母国語表記の名前。 | |
country | String | 国。とりうる値は、ISO 3166-1(Alpha-3) で規定された区分を利用。 | |
zip | String | 郵便番号。 | |
state | String | アルファベット表記の都道府県。または、州。 | |
city | String | アルファベット表記の市区町村。 | |
address_line_1 | String | アルファベット表記の住所1(番地など)。 | |
address_line_2 | String | アルファベット表記の住所2(アクセスなど)。 | |
original_address | String | 母国語表記の住所。 | |
year_of_birth | String | 生年月日の西暦年。 | |
month_of_birth | String | 生年月日の月。 | |
day_of_birth | String | 生年月日の日。 | |
telephone | String | 電話番号。 | |
passport_country | String | パスポートの発行国。とりうる値は、国際民間航空機関(ICAO)で発行されている“ICAO Doc9303“で規定されている内容に準拠した国を示すコード(3-letter code)である。MRZからの読み取り値のみ提供する。 | |
passport_name | String | パスポート記載の氏名。MRZからの読み取り値のみ提供する。 | |
passport_number | String | パスポート記載の旅券番号。MRZからの読み取り値のみ提供する。 | |
passport_gender | String | パスポート記載の旅券者の性別。MRZからの読み取り値のみ提供する。 | |
passport_birth | String | パスポート記載の旅券者の生年月日。"YYYY-MM-DD"形式で登録。MRZからの読み取り値のみ提供する。 | |
passport_nationality | String | パスポート記載の国籍情報。とりうる値は、国際民間航空機関(ICAO)で発行されている“ICAO Doc9303“で規定されている内容に準拠した国を示すコード(3-letter code)である。MRZからの読み取り値のみ提供する。 | |
issue_date | String | パスポート記載の旅券発行年月日。とりうる値は、"YYYY-MM-DD"形式で登録。 | |
term_of_validity | String | パスポート記載の旅券有効期限年月日。とりうる値は、MRZからの読み取り値のみ提供し、"YYYY-MM-DD"形式で登録。 | |
entry_date | String | パスポート記載の上陸年月日。とりうる値は、"YYYY-MM-DD"形式で登録。 | |
qualification_for_stay | String | パスポート記載の在留資格。 | |
passport_mrz | String | パスポート記載のパスポートの旅券情報(機械読み取り部分)。とりうる値は、国際民間航空機関(ICAO)で発行されている“ICAO Doc9303“で規定されている44桁2行で構成される旅券情報部分の文字列情報(MRZ)を提供する。 | |
passport_image | String | パスポートの写しファイル。とりうる値は、取得可能なURLを発行。取得したURLの有効期限は10分で、それ以降は再度 GET user_attributes でURLを取得する必要がある。 | |
common_id | String | パーソナルデータを他のサービスにリンクさせる際に使用するID |
ルール情報のモデルを記載します。
ルール項目名 | データ型 | 複数 | 説明 |
---|---|---|---|
rule_id | String | ルールID。ルール情報を識別するコード。 | |
service_domain_id | String | サービスドメインID。ルール情報を登録・使用できるサービスドメインID。 | |
name | String | ルールを識別する名称。 | |
description | String | ルールの説明内容。 | |
source | String | 変換元のパーソナルデータの項目名。 | |
destination | String | 変換先のパーソナルデータの項目名。 | |
type | String | ルール変換する属性タイプ。とりうる値は、same(無変換)、eval(スクリプト)、url(外部のAPI使用)を設定。 | |
request_option | Object | リクエストオプションモデル。type=urlのときのみ返す。 | |
script | String | スクリプト。type=evalのときのみ返す。とりうる値は、ルール変換のJavaScriptコードを取得。 |
ルール情報の中で外部サービスのAPI使用でセマンティクス変換する際に利用するリクエストオプションのモデルを記載します。
ルール項目名 | データ型 | 複数 | 説明 |
---|---|---|---|
method | String | メソッド。とりうる値は、GETのみ。 | |
requestBody | String | リクエストボディ。 | |
location | String | 変換URL。とりうる値は、プロトコル(http)を含むルール変換URL。${source}で変換元パーソナルデータを埋め込む。 |
コード | ユーザーインタフェース | 英語名 | 備考 |
---|---|---|---|
screen | 画面表示 | screen information | |
voice | 音声案内 | voice guidance | |
sign_language | 手話案内 | sign language |
コード | アクセシビリティの条件 | 英語名 | 備考 |
---|---|---|---|
wheelchair | 車いす | wheelchair | |
deafness | 聾 | deafness | |
blindness | 盲 | blindness | |
stroller | ベビーカー | stroller | |
senior | 高齢者 | senior citizens | |
pregnant | 妊婦 | pregnant woman | |
injured | 負傷者 | injured person | 松葉杖など、歩行に困難な方 |
コード | アレルギー種類 | 英語名 | 備考 |
---|---|---|---|
NO-ASHR | えび | no shrimp | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ACRA | かに | no crab | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AWHE | 小麦 | no wheat | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ABUC | そば | no buck wheat | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AEGG | 卵 | no egg | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ADAI | 乳製品 | no Dairy products | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-PEAN | 落花生 | no peanut | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AABA | あわび | no abalone | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ASQU | いか | no squid | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-SALR | いくら | no salmon roe | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AORA | オレンジ | no orange | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ACAS | カシューナッツ | no cashew nut | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AKIW | キウイフルーツ | no kiwi | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ABEE | 牛肉 | no beef | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AWAL | くるみ | no walnut | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ASES | ごま | no sesame | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-SALM | さけ | no salmon | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AMAC | さば | no mackerel | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ASOY | 大豆 | no soy | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ACHI | 鶏肉 | no chicken | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ABAN | バナナ | no banana | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-APOR | 豚肉 | no pork | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AMAT | まつたけ | no matsutake mushroom | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-PEAC | もも | no peach | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-ATAR | やまいも | no taro | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AAPP | りんご | no apple | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
NO-AGEL | ゼラチン | no gelatin | 農林水産省で指定されている特定原材料等27品目で指定されている品物 |
VLML | ベジタリアン | vegetarian | 肉類や魚類は使用しない食事(卵や乳製品は使用する) |
VGML | ビーガン | vegan | 肉、魚、卵、乳製品、蜂蜜など動物由来の食品は一切使用しない食事 |
HNML | ヒンズー教 | hindu | 牛肉の他、豚肉も避けますが、茹でた魚、鶏肉、羊肉、魚介類、米、フルーツ等を使用する食事(調理の際のアルコールは使用しない) |
MOML | イスラム教 | islam | 豚肉を使用した製品、ゼラチン、お酒、アルコールより抽出された香味成分、うろこやひれの無い海洋生物の肉は使用しない食事 |
JUML | ユダヤ教 | judaism | ユダヤの掟によって調理され、祈りを捧げられたユダヤ正教信者の食事 |
VJML | ジャイナ教 | jainism | 肉・魚・卵・乳製品など動物性のものに加え、根菜も使用していない食事 |
DBML | 糖尿病 | diabetes | 糖尿病患者向けに調理された食事 |
LSML | 低塩 | Low salt | 減塩調理された食事を好む人向けに調理された食事 |
LFML | 低脂肪 | low fat diet | 低脂肪調理された食事を好む人向けに調理された食事 |
LCML | 低カロリー | low calory | 低カロリー調理された食事を好む人向けに調理された食事 |
GFML | グルテンフリー | gluten-free | グルテンを含まない食材で調理された食事 |
コード | 嗜好の種類 | 英語名 | 備考 |
---|---|---|---|
DL-SPCI | 辛いもの(苦手) | spicy (dislike) | 辛い食べ物が苦手な方が選択する項目 |
DL-BITT | 苦いもの(苦手) | bitter (dislike) | 苦い食べ物が苦手な方が選択する項目 |
DL-SOUR | 酸っぱいもの(苦手) | sour (dislike) | 酸っぱい食べ物が苦手な方が選択する項目 |
DL-RAWF | 生もの(苦手) | raw food(dislike) | 生もの(加熱調理されていない)の食べ物が苦手な方が選択する項目 |