UDSにおけるID認証

UDSにおけるID認証について記載します。

UDSとは

エンドユーザとデバイスとの対話を実現するため、デバイスの登録やエージェントの確認、利用設定、各種アカウントとの連携を行う機能です。

項目 機能
概要 ドコモAIエージェントAPIを利用するユーザがエージェントを管理するためのDashboard
ダッシュボード機能
  • 所有するデバイスを管理
  • 過去の発話の確認
  • サービスのアカウント連動の実行
API提供機能

【上記の全ての機能に加えて】

  • User ID発行
  • Shadow ID発行
  • Device Token発行
提供形式 Webアプリケーション+REST API
認証形式 ログイン・ログアウト実装
dアカウントで実装
UserIDは内部的に発行する
UserIDの発行管理はUDSが実行
現状の実装方式 Flask、Jinja2、Pythonで実装

共通UDS/個社UDSの違い

共通UDS及び個社UDSの違いを説明いたします。

※下記表にも記載しておりますが、共通UDSと個社UDSの共存は不可能なため、
慎重にご検討をお願いいたします。

共通UDS 個社UDS
認証方法 ・dアカウントによるユーザー認証 ・OpenIDによるユーザー認証
機能 ・ドコモの提供する専用Webサイト(API提供無し)
・デバイスID登録、デバイストークン・リフレッシュトークン払い出し
・API提供のため、画面設計は自由。画面無しでも可
・デバイスID登録、デバイストークン
・リフレッシュトークン払い出し
提供システム ・Web画面による提供 ・API提供(Web画面等必要なものは契約企業側にて準備)
用途 ・メインエージェント(音声)や、メインエージェント(テキスト)でTGWを利用する場合に、対話で利用するデバイストークンの払い出し。 ・メインエージェント(音声)や、メインエージェント(テキスト)でTGWを利用する場合に、対話で利用するデバイストークンの払い出し。
・バックグラウンド処理をすることで、エンドユーザにUDSを意識させることなくデバイストークンの払い出し。
・同一のデバイスを複数ユーザーが共用するが、アクセスするユーザーの担保を取りたい場合。
・音声対話を行うが、ユーザー認証が不要な場合。
制限事項 ・Webサイト利用が必須。
・WebViewによる画面引き回しを想定しているため、画面のあるアプリ以外で利用するには、バックグラウンドで払い出されるデバイストークンを取得して、デバイスと連携して登録する仕組みが別に必要となる。
・個社UDSはサーバー設置が必要。
・個社UDSとAPIとの通信には固定IPアドレスが必要。
・共通UDSとの共存NG。
・個社UDSの申込をすれば、マネジメントサイト上の契約全体が個社UDS利用となり、全てのエージェントで共通UDSの利用が不可となります。エージェントによって共通UDSを利用したい場合は、別で新規契約を申し込み、そこでエージェント作成する必要がある。
注意事項 ・同一dアカウント上に複数デバイスIDが登録された場合、同じユーザーの対話として処理されます。
そのため、別デバイス同士で対話が混線する可能性があります。
・同一OpenID上に複数デバイスIDが登録された場合、同じユーザーの対話として処理されます。
そのため、別デバイス同士で対話が混線する可能性があります。
・subを変えることで別ユーザーとしてデバイスID登録が可能です。

※補足
<ユーザー認証について>
音声対話やTGWを利用したテキスト対話にはUDSによるユーザー認証が必要となります。
ユーザー認証が不要な場合、個社UDSの利用をお勧めします。
バックグラウンドでユーザー認証・デバイスID登録を行うことで、エンドユーザーが意識することなく
デバイスID登録・デバイストークン取得が可能です。

UDSを利用した認証

UDSを利用した認証処理の実装手順を説明します。

以下の2種類について説明します。

  • コマンドによる認証
  • Android OS向けの認証

実装方法(コマンド)

1) Git bashなどで下記curlを実行し、UDSよりdevice_idを取得します。

※クライアントシークレットはマネジメントサイトにて取得

curl -X POST -H "Content-Type: application/json" -d '{"client_secret_device": "クライアントシークレット"}' https://doubk.aiplat.jp/v1.0/dvo/doubk/devices

◆取得結果

device_id:"b539b043-88ed-4f30-8151-61b61300a279"

2) ブラウザにて下記URLへログイン
https://doufr.aiplat.jp/

3) ブラウザにて下記URLを実行し、UDSへdevice_idを登録します。

device_id登録

https://doufr.aiplat.jp/device/regist?deviceId=(デバイスID※b539b043-88ed-4f30-8151-61b61300a279)&directAccess=true

※登録完了画面が表示されることを確認

4) Git bashなどで下記curlを実行し、UDSよりdevice_tokenを取得します。

device_token取得

curl -X POST -H "Content-Type: application/json" -d '{"device_id": "デバイスID"}' https://doubk.aiplat.jp/v1.0/dvo/doubk/devices/token

◆取得結果

{"device_refresh_token":"dac7cd8a-26bf-4908-993a-41f3e26b9f8f",
"device_token":"5129f1f6-bea5-455b-9881-7689a5edc4ba","result":{"message":null,"code":"1001","details":null}}

5) device_tokenを音声制御ライブラリのAccessTokenに設定する

実装方法(Android OS)についてはこちらからドキュメントをダウンロードしてご利用ください。

個社UDS構築マニュアル

個社UDSの構築マニュアルを公開しています。
個社UDSの構築をご予定されている方は以下のドキュメントを参照ください。

個社UDS設定マニュアル

※個社UDSをご利用いただく場合は以下に記載する点をご確認の上、お申込みをお願いいたします。

  • 個社UDSをご利用いただくには接続元サーバは固定IPアドレスが必要となります。
  • 個社UDSをご利用いただくには弊社環境の準備期間として2ヶ月間必要となります。
  • 個社UDSは別途初期費用が発生致します。詳しくはこちらをご確認ください。
  • 個社UDSの構築についてはお客様の責任範疇内で実施をお願いいたします。
  • 個社UDSをご利用いただく場合にはUDS機能は個社UDSへ切り替えとなりますので、既設のUDSはご利用いただけなくなります。
  • 個社UDSご利用後に弊社設備のUDSへの切り戻しは実施できませんのでご留意ください。
  • 認証処理について、Androidはこちら、iOSはこちら